Virtual Machine Code Memory Optimization via Extraneous Data Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machine code requires significant memory resources, especially in memory-constrained devices like PDAs and smartphones, necessitating efficient memory optimization techniques to enhance software performance.

Innovation Solution

The method involves partitioning extraneous information from executable code, storing it separately, and using a key to lazily load it only when needed, thereby reducing memory footprint while maintaining accessibility for debugging and other processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If extraneous information is included in virtual machine code, then debugging and other processes can access the information, but memory footprint increases

Engineering Contradiction:
ImprovedebuggabilityVSAvoidmemory footprint
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments virtual machine code into two distinct parts: executable code and extraneous information (such as debug symbols, source code, and metadata). This segmentation allows the system to load only the essential executable code into memory, while storing extraneous information separately. When debugging or other processes require access to extraneous information, the system can retrieve it from external storage without permanently loading it into memory, thus resolving the contradiction between maintaining debuggability and reducing memory footprint.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts extraneous information from the virtual machine code package and stores it separately in external storage. The executable code retains only minimal references to the extraneous information. This extraction enables the system to eliminate unnecessary data from the memory-resident code, significantly reducing the memory footprint while preserving the ability to access extraneous information when needed for debugging or analysis purposes.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If all code information is loaded into memory, then complete functionality is available, but performance degrades in memory-constrained systems

Engineering Contradiction:
ImprovefunctionalityVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a dynamic memory management strategy where the system adapts its memory usage based on runtime requirements. Essential executable code remains permanently loaded in memory for continuous execution, while extraneous information is dynamically loaded from external storage only when required by debugging tools or analysis processes. This dynamic approach ensures that the system maintains complete functionality when needed while optimizing memory usage during normal execution, thereby improving performance in memory-constrained environments.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by differentiating between code sections that require constant memory residency (executable instructions) and those that can be stored externally (extraneous information). By assigning different storage characteristics to different parts of the code based on their specific requirements, the system achieves both complete functionality and improved performance, as only the critical executable portion occupies precious memory resources while extraneous information resides in external storage.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8627303B2Memory optimization of virtual machine code by partitioning extraneous information
Publication Date: 2014.01.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8627303B2 patent drawing
  • US8627303B2 patent drawing
  • US8627303B2 patent drawing

AI summary

A method, computer program product, and system for memory optimization by partitioning extraneous information from executable virtual machine code or interpreted code. The extraneous information may be stored separately, or accessed from the original code if needed for debugging or servicing the code in the field. This approach optimizes memory usage by reducing memory footprint while maintaining accessibility of the non-executable information for debugging and other processes necessary for servicing code in the field.