Memory Fragmentation Diagnosis via Allocation Feedback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory management systems struggle to diagnose and prevent external fragmentation, which leads to performance issues like long execution times and increased memory requirements, as they cannot determine the causes of small free memory chunks and suggest changes to alleviate this problem.
Innovation Solution
A method and system that collect and analyze information about memory allocation and deallocation, including identifiers for the code that creates and destroys objects, to identify the causes of external fragmentation, allowing for statistical profiling and potential adjustments to reduce fragmentation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If memory allocation and deallocation operations are performed dynamically, then system flexibility and adaptability are improved, but external fragmentation occurs causing performance degradation
Solution Approach 1:
The patent implements feedback by having the memory allocator collect and analyze information about allocation patterns, object lifetimes, and deallocation behaviors. This feedback mechanism enables the system to identify fragmentation causes and adjust allocation strategies accordingly, resolving the contradiction between dynamic flexibility and allocation efficiency
Solution Approach 2:
The patent changes parameters by tracking object creation locations, destruction locations, and lifetime characteristics. By analyzing these parameters, the system can identify patterns causing external fragmentation and modify allocation behavior to prevent fragmentation while maintaining dynamic memory management flexibility
2Ease of operation
If the freelist is traversed to find suitable memory holes, then memory allocation can be performed, but execution time increases due to traversal costs
Solution Approach 1:
The patent applies preliminary action by collecting and analyzing information about memory allocation patterns and object lifetimes in advance. This allows the system to pre-identify potential fragmentation issues and optimize the freelist structure before allocation requests occur, reducing traversal time while maintaining allocation capability
3Quantity of substance
If objects of different lifetimes are allocated within the same memory area, then memory utilization is improved, but external fragmentation is caused by short-lived objects dying before long-lived objects
Solution Approach 1:
The patent uses feedback by tracking object lifetimes and allocation patterns to identify when short-lived objects are allocated alongside long-lived objects. This information feedback enables the system to adjust allocation strategies to prevent fragmentation while maintaining high memory utilization through mixed lifetime allocations
Solution Approach 2:
The patent changes parameters by analyzing object lifetime characteristics and allocation patterns. By modifying allocation behavior based on these parameter analyses, the system can prevent external fragmentation while maintaining efficient memory utilization across objects of different lifetimes
4Measurement precision
If information about allocation and deallocation is collected and stored, then fragmentation causes can be identified, but memory overhead increases
Solution Approach 1:
The patent extracts only the essential information needed for fragmentation analysis - allocation locations, destruction locations, and object lifetimes. By taking out only these critical data elements rather than complete allocation histories, the system achieves accurate fragmentation diagnosis while minimizing memory overhead
Data Source
AI summary
A method of determining causes of external fragmentation in a memory. The method includes collecting information associated with release of an area of the memory by an application, storing the information in the area of the memory, and analyzing the information to determine why the area of the memory has not been reallocated to any application. In embodiments wherein a first portion of an area of a memory is allocated to an application by an allocator and a second portion of the area of the memory is released by the allocator, the method includes storing in the second portion of the area of the memory an indicator indicating that the second portion is a remaining portion, collecting information associated with release of the second portion, storing the information in the second portion, and analyzing the information to determine why the second portion is not reallocated to any application.


