JIT Compiler Invariant Flag Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Java JIT compilation of applications with run-time determined software routines results in a large footprint and increased runtime overhead due to the inclusion of conditional checking statements, which prevents optimization by the JIT compiler when variant flags are used, leading to inefficient execution.

Innovation Solution

Employing an invariant flag to make conditional checking statements determinate and using a run-time code replacement facility to change the flag's value, allowing the JIT compiler to optimize and exclude run-time determined software routines from native machine code when deactivated, and include them when activated, utilizing features like Hotswap or Hot Code Replace.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If variant flags are used to determine run-time activation status of software routines, then run-time flexibility is improved, but the application program footprint increases and runtime overhead increases due to conditional checking statements

Engineering Contradiction:
Improverun-time flexibilityVSAvoidapplication program footprint
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent applies preliminary action by evaluating the variant flag at compile-time to determine whether to include or exclude run-time determined software routines from the application program. This allows the JIT compiler to make optimizations based on the flag's initial state, reducing the program footprint when routines are deactivated while maintaining the ability to activate them at run-time through code replacement.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If variant flags are used to determine run-time activation status of software routines, then run-time flexibility is improved, but runtime overhead increases due to conditional checking statements

Engineering Contradiction:
Improverun-time flexibilityVSAvoidruntime overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by evaluating the variant flag at compile-time to determine whether to include or exclude run-time determined software routines from the application program. This allows the JIT compiler to make optimizations based on the flag's initial state, reducing the program footprint when routines are deactivated while maintaining the ability to activate them at run-time through code replacement.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If conditional checking statements are included for run-time determined software routines, then run-time activation control is improved, but JIT compilation optimization is prevented due to indeterminate conditions

Engineering Contradiction:
Improverun-time activation controlVSAvoidJIT compilation optimization
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by evaluating the variant flag at compile-time to determine whether to include or exclude run-time determined software routines from the application program. This allows the JIT compiler to make optimizations based on the flag's initial state, reducing the program footprint when routines are deactivated while maintaining the ability to activate them at run-time through code replacement.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies parameter changes by using a variant flag that can change its value at run-time to control the inclusion or exclusion of software routines. The flag's value is evaluated at compile-time to determine optimization strategy, but can be changed at run-time to activate or deactivate routines as needed.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7665076B2Method and apparatus for activating/deactivating run-time determined software routines in Java compiled bytecode applications
Publication Date: 2010.02.16 X CORP
  • US7665076B2 patent drawing
  • US7665076B2 patent drawing
  • US7665076B2 patent drawing

AI summary

Provided is a JIT compiler that changes the status of run-time determined software routines between being activated and deactivated in an application program. Conditional statements which are used at run-time to determine whether such a routine has been activated or deactivated are presented as discrete conditions that always evaluate to a known result by using an invariant flag in the compiled bytecode. The JIT compiler optimises an application program by excluding discrete condition checks. Consequently, if the branch of the discrete condition that will never execute includes a run-time determined software routine, then the routine will be excluded from the JIT compilation and will not form part of the JIT compiled native machine code. A run-time class or code replacement facility is used as a means of activating or deactivating a run-time determined software routine at run-time by changing the value of the invariant flag of said routine.