Mobile App Bootup Speed via Persistent JIT Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The bootup speed of Java application programs on mobile equipment is hindered by their interpretive execution, with existing methods like JIT compilation failing to accelerate the initial bootup process as they only compile codes when executed multiple times and discard results upon exit, leaving no compilation results for subsequent runs.

Innovation Solution

A bootup method and device that utilize a virtual machine module to load and execute Just in Time (JIT) compilation results and local JIT compiled codes during the bootup process, storing these results for direct execution, thereby bypassing interpretive execution and enhancing speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If JIT compilation is used to compile Java codes into local language, then execution speed is improved, but bootup speed is not improved because JIT only compiles codes when executed multiple times and discards results upon exit

Engineering Contradiction:
Improveexecution speedVSAvoidbootup time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing JIT compilation during the application's initial bootup process rather than waiting for multiple executions. The virtual machine module compiles bootup process codes into local JIT compiled codes during the first run, stores these compilation results, and then executes the pre-compiled codes during subsequent bootup operations, thereby eliminating the need to wait for multiple executions before achieving compilation speedups.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies discarding and recovering by changing the traditional JIT behavior of discarding compilation results upon application exit. Instead, the system recovers and retains the JIT compilation results by storing them in a storage module, making them available for subsequent bootup operations. This transforms the temporary compilation results into persistent assets that accelerate future bootup processes.

Inventive Principle:
Principle #34Discarding and recovering

2Adaptability or versatility

If interpretive execution is used for Java application programs, then portability and development ease are improved, but bootup speed deteriorates

Engineering Contradiction:
ImproveportabilityVSAvoidbootup speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent applies segmentation by dividing the Java application codes into different segments: bootup process codes and runtime codes. The virtual machine module specifically identifies and processes the bootup process codes segment, compiling them into local JIT compiled codes during initial execution. This segmented approach allows interpretive execution to maintain for runtime codes while applying compilation optimization specifically to the bootup segment, thereby improving bootup speed without sacrificing portability.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If JIT compilation results are discarded upon application exit, then memory management is simplified, but subsequent bootup operations must recompile codes

Engineering Contradiction:
Improvememory management complexityVSAvoidrecompilation time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent applies copying by creating and storing copies of the JIT compilation results in a storage module. Instead of discarding the compiled codes upon application exit, the system makes copies of these compilation results and stores them for future use. When the application is restarted, these stored copies are retrieved and executed, eliminating the need for recompilation and significantly reducing subsequent bootup times.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8726249B2Bootup method and device for application program in mobile equipment
Publication Date: 2014.05.13 ZTE CORP
  • US8726249B2 patent drawing
  • US8726249B2 patent drawing
  • US8726249B2 patent drawing

AI summary

A bootup device and method for an application program on a mobile equipment to improve the bootup speed of the application program on the mobile equipment. The bootup device has an application management module, that boots up a virtual machine module based on the application program to be run. A virtual machine module, loads codes of the application program and Just in Time (JIT) compilation results of a bootup process of the application program into a memory, search, in the JIT compilation results, for local JIT compiled codes corresponding to the bootup process code segment to be executed, and executes the found local JIT compiled codes when executing each bootup process code segment of the application program. A storage management module, store and reads the codes of the application program and the JIT compilation results obtained from the JIT compilation of the bootup process of the application program.