Profile-Guided Compilation Using Composite Application Execution Information
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current runtime systems face challenges in efficiently initializing and optimizing the execution of software applications, particularly due to the need for accumulating application execution information (AEI) over time, which can lead to increased power usage, latency, and sluggish performance, as well as longer installation times when waiting for AEI to be generated.
Innovation Solution
A method and system that involve determining composite application execution information (AEI) from multiple computing devices, extracting relevant compiler hints, and generating software packages that include this information, allowing for profile-guided compilation and verification, thereby reducing the time required to accumulate AEI and enhancing installation and execution performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If the runtime system waits to accumulate application execution information (AEI) over time, then the compilation and verification can be more optimized, but the installation time and initial execution latency increase
Solution Approach 1:
The patent applies preliminary action by collecting and storing AEI from multiple computing devices before the actual software installation. The server computing device accumulates execution information from various sources in advance, creating a pre-computed profile that can be immediately applied during installation, eliminating the need to wait for AEI to accumulate on the individual device.
Solution Approach 2:
The patent merges AEI from multiple computing devices to create a composite profile. By combining execution information from various sources, the system generates a more comprehensive and accurate AEI set that can be used for optimized compilation and verification, while reducing the time any single device needs to wait for sufficient data.
2Manufacturing precision
If the runtime system accumulates AEI by executing the software application, then compiler hints can be generated for optimization, but power usage increases during the accumulation period
Solution Approach 1:
The patent uses copying by retrieving and reusing AEI from other computing devices instead of generating it locally through execution. The server computing device collects execution information from multiple sources and provides it to the target device, eliminating the need for the device to consume power during AEI accumulation while still obtaining accurate compiler hints.
3Measurement precision
If the system waits for AEI to be generated before installation, then the verification can be more accurate, but the user-perceptible latency increases
Solution Approach 1:
The patent applies preliminary action by performing AEI accumulation and profile generation before the user initiates installation. The server computing device prepares the verification data in advance from multiple computing devices, so that when the user installs the software, the accurate AEI is already available, eliminating perceptible latency while maintaining verification accuracy.
4Ease of operation
If the runtime system uses interpreter software to execute bytecodes, then the system can start quickly without compilation, but execution speed is slower compared to compiled machine-language instructions
Solution Approach 1:
The patent applies preliminary action by performing the compilation process during installation time using pre-collected AEI. This allows the system to start with compiled machine-language instructions already available, eliminating the need to choose between interpreter startup ease and compiled execution speed. The compilation happens in advance, so both startup and execution performance are optimized.
Data Source
AI summary
Apparatus and methods related providing application execution information (AEI) are provided. A server can receive a request to provide a software package for a particular software application. The server can determine composite AEI (CAEI) for the particular software application. The CAEI can include a composite list of software with data about software methods of the particular software application executed by a computing device other than the server. The server can extract particular AEI related to the particular software application from the CAEI. The particular AEI can provide compiler hints for compiling at least one software method predicted to be executed by the particular software application. The server can generate the software package, where the software package can include the particular software application and the particular AEI. The server can provide the software package.


