Heap Handle Reduction via Pointer Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The use of heap handles in memory-constrained devices, such as those running Java 2 Platform, Micro Edition (J2ME), incurs additional costs and inefficiencies due to the need for managing linked lists, increased memory usage, and suboptimal garbage collection performance, as compilers unaware of garbage collection semantics cannot efficiently handle these structures.

Innovation Solution

A system that analyzes a program's intermediate representation to identify and replace heap handles with ordinary pointers where safe, reducing the number of heap handles by converting them when they are not needed, thereby optimizing garbage collection operations and memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If heap handles are used to manage pointers to heap objects, then garbage collection can accurately track and manage memory, but memory usage increases and management complexity increases

Engineering Contradiction:
Improvegarbage collection accuracyVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the heap handle structure from the pointer representation, separating the handle management overhead from the actual pointer data. By using a compact handle index instead of full heap handle structures, the patent removes unnecessary memory consumption while preserving garbage collection tracking capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies different representation qualities to different contexts: full heap handles are used where needed for garbage collection tracking, while compact pointer representations are used where full handle functionality is not required. This local differentiation optimizes memory usage while maintaining reliability where necessary.

Inventive Principle:
Principle #3Local quality

2Reliability

If heap handles are used to manage pointers to heap objects, then garbage collection can accurately track and manage memory, but management complexity and code overhead increase

Engineering Contradiction:
Improvegarbage collection accuracyVSAvoidmanagement complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the complex heap handle management logic from the normal pointer usage path. By separating handle creation, insertion, and removal operations into dedicated compiler mechanisms, the patent reduces the complexity visible in the generated code while maintaining accurate garbage collection tracking.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements self-service mechanisms where the compiler automatically manages heap handle lifecycle (creation, insertion to root set, removal) without requiring explicit programmer intervention. This automation reduces management complexity while ensuring garbage collection accuracy.

Inventive Principle:
Principle #25Self-service

3Reliability

If heap handles are used in the program, then pointers to heap objects can be tracked, but execution speed decreases due to additional management operations

Engineering Contradiction:
Improvememory trackingVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by pre-computing and caching handle indices during compilation. By preparing handle representations in advance and eliminating runtime handle management operations where possible, the patent reduces execution overhead while maintaining memory tracking accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses compact copies of pointer information (handle indices) instead of full heap handle structures in most contexts. These simplified copies provide sufficient information for execution while eliminating the overhead of managing complete handle structures, thus improving execution speed.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8181177B1Reducing the number of heap handles in a program
Publication Date: 2012.05.15 ORACLE AMERICAN INC
  • US8181177B1 patent drawing
  • US8181177B1 patent drawing
  • US8181177B1 patent drawing

AI summary

One embodiment of the present invention provides a system that reduces the number of heap handles in a program. First, the system builds an intermediate representation of the program. The system then analyzes the intermediate representation to determine whether executing a function may cause a garbage-collection operation. If so, the system further analyzes the program to determine whether a heap handle in the program is defined and/or used in proximity to a call to the function. Next, the system determines whether the heap handle can be replaced by an ordinary pointer, in order to facilitate subsequently converting the heap handle to an ordinary pointer, if possible. Note that converting a heap handle to an ordinary pointer reduces the space requirements for the program and increases the speed and efficiency of the program and garbage collection operations.