Dynamic Compiler Virtual Call Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamic compilation of computer program code with virtual calls complicates optimization due to unpredictable class hierarchies and call graphs, as the state of affected sections is not known at compilation time, leading to potential adverse program performance if assumptions about the state are invalid.

Innovation Solution

A method and system for optimizing computer program code with virtual calls by identifying unpredictable sections, making assumptions about their state, creating tests for validity, and monitoring the state during execution to ensure proper operation, using a dynamic compiler and operating environment with mechanisms for section optimization, test creation, and assumption maintenance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If virtual calls are used in dynamically compiled code, then adaptability and flexibility are improved, but optimization becomes difficult due to unpredictable class hierarchies and call graphs

Engineering Contradiction:
ImproveadaptabilityVSAvoidcomplexity of optimization
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic optimization by making optimization decisions at runtime based on actual class hierarchy and call graph information. The system transitions from static compilation assumptions to dynamic adaptation, where the compiler observes runtime behavior and adjusts optimization strategies accordingly, resolving the contradiction between adaptability and optimization complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent performs preliminary optimization actions by making assumptions about the state of virtual call sections during compilation, then validates and refines these assumptions during runtime execution. This preliminary action allows optimization to proceed despite uncertainty, with subsequent runtime monitoring ensuring correctness.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If assumptions are made about the state of sections affected by virtual calls, then optimization can proceed, but program performance deteriorates if assumptions are invalid

Engineering Contradiction:
Improveoptimization efficiencyVSAvoidprogram performance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms by monitoring runtime execution to verify assumptions made during optimization. The system observes actual program behavior, compares it against assumed states, and uses this feedback to validate or correct optimization decisions, ensuring both efficiency and reliability.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent prepares compensatory measures in advance by creating fallback optimization strategies that can be activated if initial assumptions prove invalid. This cushioning approach ensures that if an assumption fails, the system can switch to an alternative strategy rather than suffering performance degradation.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Adaptability or versatility

If the class hierarchy and call graphs change between compilation and execution, then dynamic incorporation of classes is enabled, but known optimization techniques become invalid

Engineering Contradiction:
Improvedynamic class incorporationVSAvoidoptimization accuracy
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent addresses this contradiction by implementing dynamic optimization that adapts to changing class hierarchies and call graphs at runtime. Rather than relying on static assumptions, the system continuously updates its understanding of the program structure based on actual execution patterns, maintaining optimization accuracy despite dynamic changes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The optimization system serves itself by automatically adapting to dynamic class incorporation without external intervention. The compiler monitors runtime behavior and self-adjusts optimization strategies based on observed class hierarchy changes, enabling the system to maintain precision while supporting dynamic flexibility.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7661098B2Computer program optimization in a dynamic compilation environment
Publication Date: 2010.02.09 X CORP
  • US7661098B2 patent drawing
  • US7661098B2 patent drawing
  • US7661098B2 patent drawing

AI summary

Dynamically compiled computer program code containing virtual calls can reduce the options for optimization during compilation. A virtual call can affect sections of the program code that are compiled subsequent to the virtual call. Therefore, the state under which the effected sections are to be executed may not be known at the time of compilation thus complicating optimization of these sections. If assumptions are made about the state of an effected section, then this section can be optimized. In order to provide proper operation of the executing program code given the optimization, a check of the validity of the assumptions is performed prior to execution of the optimized section. If an assumption does not hold true then the original un-optimized section can be executed to reduce adverse program performance.