Memory Region Bitmask Allocation for Lower Garbage Collection Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face inefficiencies in memory management, particularly in garbage collection processes, due to the lack of clear differentiation between private and shared memory regions, leading to increased contention and overhead.

Innovation Solution

A system determines memory allocation constraints based on calling relationships between caller and target methods, designating objects to be instantiated in either shared or private memory regions, and utilizes graph coloring algorithms to configure bitmasks for efficient garbage collection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If objects are instantiated in shared memory regions, then memory utilization is improved, but garbage collection contention and overhead increase

Engineering Contradiction:
Improvememory utilizationVSAvoidgarbage collection contention
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The memory space is segmented into private memory regions (thread-local) and shared memory regions (common heap). This segmentation allows different garbage collection strategies for different memory types, improving overall memory utilization while reducing contention by isolating thread-local object reclamation from global garbage collection operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different quality characteristics are applied to different memory regions: private memory regions use thread-local garbage collection with no synchronization overhead, while shared memory regions use global garbage collection. This local differentiation optimizes garbage collection efficiency for each region's specific access patterns.

Inventive Principle:
Principle #3Local quality

2Productivity

If thread-local garbage collection is used, then garbage collection efficiency is improved, but memory regions must be clearly differentiated

Engineering Contradiction:
Improvegarbage collection efficiencyVSAvoidmemory region differentiation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis of calling relationships between methods to determine memory allocation constraints before object instantiation. This preliminary action classifies objects as thread-local or shared based on their access patterns, enabling efficient garbage collection while maintaining clear memory region differentiation through runtime constraints rather than complex static analysis.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If memory allocation constraints are enforced, then memory utilization is optimized, but system complexity increases

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

Solution Approach 1:

The system automatically analyzes calling relationships and determines memory allocation constraints without manual intervention. The garbage collection process self-adjusts based on the classified memory regions, and the system self-optimizes memory utilization by enforcing allocation constraints through runtime monitoring and constraint-based allocation decisions.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20260017100A1Designating Memory Regions For Instantiating Objects In Accordance With Memory Allocation Constraints
Publication Date: 2026.01.15 ORACLE INT CORP
  • US20260017100A1 patent drawing
  • US20260017100A1 patent drawing
  • US20260017100A1 patent drawing

AI summary

A system defines memory allocation constraints for calls from various caller methods to various target methods and then executes a process for configuring a memory allocation bitmask for designating memory regions for instantiating objects in accordance with the memory allocation constraints. The memory allocation constraints require different target methods to utilize different memory regions from one another for instantiating objects in response to calls from various caller methods. The process for configuring the memory allocation bitmask includes determining, based on the memory allocation constraints, that calls from a particular caller method to a particular target method do not require utilization of different memory regions for instantiating objects. Additionally, the process includes designating a memory allocation bit position of the memory allocation bitmask for indicating a memory region to be utilized for instantiating objects in response to the calls from the particular caller method to the particular target method.