Managed Object Memory Pressure Configuration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Efficient memory management in managed execution environments is hindered by the lack of effective methods to balance native and managed memory allocations, leading to memory pressure issues that can cause delays and resource inefficiencies.

Innovation Solution

Implementing a memory management configuration that associates managed objects with native memory pressure, using a garbage collector to allocate and deallocate memory efficiently, and employing concurrent garbage collection strategies to manage both managed and unmanaged memory allocations concurrently with application execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If garbage collection is performed to manage memory allocations, then memory management efficiency is improved, but execution delays increase due to garbage collection cycles

Engineering Contradiction:
Improvememory management efficiencyVSAvoidexecution delays
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-allocating native memory buffers and pre-configuring memory pressure parameters before garbage collection cycles are triggered. This allows the garbage collector to operate more efficiently without causing significant execution delays, as the memory management infrastructure is already in place and optimized.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically changes memory management parameters including native memory buffer sizes, garbage collection thresholds, and memory pressure levels. By adjusting these parameters based on application needs and system state, the system optimizes the balance between memory management efficiency and execution performance, reducing unnecessary garbage collection cycles.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If native memory allocation is increased for managed objects, then memory availability is improved, but memory pressure and resource inefficiency worsen

Engineering Contradiction:
Improvememory availabilityVSAvoidmemory pressure
Core Design Contradiction:
Quantity of substanceVSObject-generated harmful factors

Solution Approach 1:

The system implements dynamic native memory buffer allocation where buffer sizes and memory pressure parameters are adjusted based on application requirements and system state. Memory buffers are created, modified, or removed dynamically throughout application execution, allowing the system to maintain optimal memory availability while preventing excessive memory pressure through adaptive parameter changes.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8701095B2Add/remove memory pressure per object
Publication Date: 2014.04.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8701095B2 patent drawing
  • US8701095B2 patent drawing
  • US8701095B2 patent drawing

AI summary

Based on a requested allocation of a managed object, a native memory required with the managed object is determined. A portion of native memory is allocated and a portion of managed memory is allocated based on requirements of the managed object. A memory management strategy is implemented based on the allocation of native memory and unmanaged memory. For example, the memory management strategy can comprise garbage collection of first managed objects that have only managed heap associated therewith is performed before garbage collection of second managed objects that have both managed heap and native memory associated therewith.