JVM Hot Method Optimization via Stack Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software applications often suffer from performance inefficiencies due to code being compiled at lower tiers or interpreted states, leading to suboptimal execution and increased CPU usage, as traditional compilers fail to identify and optimize 'hot' methods effectively.

Innovation Solution

A system that monitors JVM call stacks to identify and optimize code compilation tiers and methods, using metadata to determine the compiled state of each code frame, and generates reports to recommend compilation tier adjustments and inlining opportunities, thereby improving application performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If code is compiled at lower compilation tiers or interpreted, then device complexity is reduced and ease of operation is improved, but execution speed and performance efficiency deteriorate

Engineering Contradiction:
Improveexecution speedVSAvoidcompilation management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system automatically monitors JVM call stacks, identifies hot methods, and determines compilation states without manual intervention. The optimization report is generated autonomously, allowing the system to self-diagnose and self-optimize compilation tiers, eliminating the need for complex manual compilation management while improving execution speed

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system continuously monitors execution performance metrics and compilation states, then uses this feedback to generate optimization reports that recommend specific compilation tier adjustments. This closed-loop feedback mechanism automatically identifies performance bottlenecks and proposes targeted optimizations without increasing operational complexity

Inventive Principle:
Principle #23Feedback

2Productivity

If traditional compilers are used, then device complexity is minimized, but ability to identify and optimize hot methods deteriorates

Engineering Contradiction:
Improveapplication performanceVSAvoidmonitoring system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary optimization analysis layer between the JVM and the application code. This intermediary monitors call stacks and compilation states, then generates optimization reports that guide compilation tier adjustments, enabling hot method optimization without significantly increasing overall system complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary analysis of execution patterns and compilation states before making optimization recommendations. By pre-identifying hot methods and their current compilation states, the system prepares targeted optimization strategies that improve productivity without requiring complex real-time decision-making

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10922062B2Software application optimization
Publication Date: 2021.02.16 SALESFORCE INC
  • US10922062B2 patent drawing
  • US10922062B2 patent drawing
  • US10922062B2 patent drawing

AI summary

Embodiments of the present disclosure relate to software application optimization. Other embodiments may be described and/or claimed.