Native Image Bootstrapping for Faster Application Startup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems face slow startup times and increased memory usage due to the processing of application metadata at runtime, particularly in cloud environments where hundreds to thousands of application instances are deployed, leading to significant overhead and resource consumption.

Innovation Solution

The system generates a static initialization method at compilation time to initialize classes and start frameworks, serializing the framework container into a native image, which is then run directly at runtime without additional processing, reducing memory footprint and startup time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If application metadata is processed at runtime, then the application can be deployed flexibly, but startup time increases and memory usage increases

Engineering Contradiction:
Improvedeployment flexibilityVSAvoidstartup time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by initializing classes and starting frameworks at compilation time rather than at runtime. The compiler performs static initialization, bootstraps frameworks, and serializes the framework container into a native image before the application runs. This pre-computation approach eliminates runtime initialization overhead while preserving deployment flexibility through the use of serialization and native image generation.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If application metadata is processed at runtime, then the application can be deployed flexibly, but memory usage increases

Engineering Contradiction:
Improvedeployment flexibilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent reduces memory usage by performing all necessary initialization, class loading, and framework bootstrapping at compilation time. The resulting native image contains pre-processed metadata and serialized framework containers, eliminating the need for runtime memory allocation during startup. This approach maintains deployment flexibility while significantly reducing the memory footprint during application execution.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If framework container is serialized into native image at compilation time, then startup time decreases, but compilation time increases

Engineering Contradiction:
Improvestartup timeVSAvoidcompilation time
Core Design Contradiction:
Loss of timeVSDuration of action of moving object

Solution Approach 1:

The patent accepts increased compilation time as a trade-off for dramatically reduced startup time. The compiler performs extensive preprocessing including class initialization, framework bootstrapping, and container serialization during the build phase. This shifts the computational burden from runtime to compile time, enabling the native image to execute directly without runtime initialization overhead.

Inventive Principle:
Principle #10Preliminary action

4Quantity of substance

If classes are initialized at compilation time, then runtime memory usage decreases, but compilation complexity increases

Engineering Contradiction:
Improveruntime memory usageVSAvoidcompilation complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent implements a two-phase compilation process that separates class initialization from runtime execution. The compiler performs static initialization of classes, resolves dependencies, and generates optimized native code during compilation. This preprocessing reduces runtime memory requirements by embedding initialized class data in the native image, though it increases compilation complexity through the need for advanced compiler infrastructure.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11663020B2Bootstrapping frameworks from a generated static initialization method for faster booting
Publication Date: 2023.05.30 RED HAT INC
  • US11663020B2 patent drawing
  • US11663020B2 patent drawing
  • US11663020B2 patent drawing

AI summary

A system includes a memory, a processor in communication with the memory, and a compiler. The compiler is configured to initialize at least one class for an application at compilation time, start a framework at compilation time, and serialize a framework container of the framework into a native image at compilation time. The processor is configured to run the native image to start the application.