Online Method Handle Deduplication via Equivalence Pool

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current JVM solutions fail to effectively manage equivalent method handles, leading to increased memory usage and decreased Just-In-Time (JIT) performance due to redundant JIT compilations and native code generation, as they do not address method handle duplication.

Innovation Solution

An online method handle deduplication system that compares newly created method handles to existing ones in an equivalence pool, returning the existing unique method handle when equivalence is found, thereby reducing memory usage and unnecessary JIT compilations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If method handles are created for each method invocation in JVM, then dynamic language support and flexibility are improved, but memory usage increases and JIT performance deteriorates due to redundant compilations

Engineering Contradiction:
Improvedynamic language supportVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges equivalent method handles by maintaining an equivalence pool that stores unique method handle representations. When a new method handle is created, the system checks if an equivalent one already exists in the pool and reuses it, thereby combining multiple equivalent handles into a single unique representation and reducing memory consumption.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system changes the parameter representation of method handles by using equivalence classes instead of individual handle instances. Method handles with equivalent parameters (same method, same arguments, same method handle map) are grouped together and represented by a single unique handle, effectively changing how handles are parameterized and stored.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If equivalent method handles are created separately, then method handle operations are simplified, but the number of JIT compilations increases and native code generation becomes redundant

Engineering Contradiction:
Improvemethod handle operationsVSAvoidJIT compilation efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges equivalent method handles into a single unique representation in the equivalence pool. This consolidation ensures that JIT compilation is performed only once for each unique method handle equivalence class, eliminating redundant compilations and improving overall JIT compilation efficiency while maintaining simple handle operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Instead of creating separate method handle instances for each invocation, the system creates a single unique handle in the equivalence pool and provides references or copies to this unique handle. This approach maintains operational simplicity while avoiding the proliferation of duplicate handles that would trigger redundant compilations.

Inventive Principle:
Principle #26Copying

3Quantity of substance

If method handle equivalence checking is implemented, then memory usage and JIT compilation count are reduced, but system complexity increases

Engineering Contradiction:
Improvememory volumeVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary equivalence pool that mediates between method handle creation and memory storage. This pool acts as a buffer that automatically checks for equivalence using hashing and comparison logic, thereby reducing memory usage without significantly increasing overall system complexity, as the intermediary handles the complex equivalence checking internally.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The equivalence pool implements self-service mechanisms by automatically checking for equivalent method handles using internal hashing and comparison algorithms. This self-service approach to equivalence checking reduces the need for external complexity management, as the system autonomously handles deduplication and memory optimization without requiring complex external control mechanisms.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10228957B2Online method handle deduplication
Publication Date: 2019.03.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10228957B2 patent drawing
  • US10228957B2 patent drawing
  • US10228957B2 patent drawing

AI summary

Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.