Runtime Environment Size Reduction via Function Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional runtime environments are larger than necessary due to inclusion of unused function definitions, leading to increased storage requirements, resource consumption, and costs, as they provide all available function definitions to ensure functionality, even if not all are used by the computer program.

Innovation Solution

A customized runtime environment is generated by analyzing the computer program and its execution patterns to identify and remove unused function definitions, using an analyzer to determine required function bindings and a component reducer to create a smaller, tailored environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional runtime environments provide all available function definitions to ensure functionality, then reliability is improved, but device size increases

Engineering Contradiction:
ImprovefunctionalityVSAvoidruntime environment size
Core Design Contradiction:
ReliabilityVSVolume of moving object

Solution Approach 1:

The patent extracts and removes unused function definitions from the runtime environment by analyzing the computer program to identify which functions are actually called during execution. This selective extraction maintains only the necessary functions while eliminating redundant ones, thereby reducing runtime environment size without compromising the functionality required by the program.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary analysis of the computer program before generating the runtime environment to determine which function definitions are needed. By conducting this analysis in advance (during program development or deployment preparation), the system can pre-filter and select only the necessary functions, avoiding the need to include all possible function definitions and thus reducing the overall runtime environment size.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If all function definitions are included in the runtime environment, then adaptability is improved, but loss of substance increases

Engineering Contradiction:
ImprovefunctionalityVSAvoidunused components
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

Solution Approach 1:

The patent extracts and removes unused function definitions from the runtime environment by analyzing the computer program to identify which functions are actually called during execution. This selective extraction maintains only the necessary functions while eliminating redundant ones, thereby reducing runtime environment size without compromising the functionality required by the program.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent discards unused function definitions that would waste storage space and resources, while recovering and retaining only the function definitions that are actually needed by the computer program. This approach optimizes the runtime environment by eliminating unnecessary components while preserving essential functionality.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS9740505B2Accurate static dependency analysis via execution-context type prediction
Publication Date: 2017.08.22 MATHWORKS INC
  • US9740505B2 patent drawing
  • US9740505B2 patent drawing
  • US9740505B2 patent drawing

AI summary

Exemplary embodiments provide methods, mediums, and systems for generating a runtime environment that is customized to a particular computer program, particularly in terms of the function definitions that support function calls made in the computer program. The customized runtime environment may therefore be smaller in size than a conventional runtime environment. To create such a customized runtime environment, an analyzer may be provided which monitors test executions of the computer program and/or performs a structural analysis of the source code of the computer program. The analyzer may determine a list of probabilistically or deterministically required function definitions, and provide the list to a component reducer. The component reducer may eliminate any function definitions not deemed to be required from a runtime environment, thereby producing a customized runtime environment that is built to support a particular computer program.