Memory Leak Identification via Data Structure Bookkeeping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software platforms with implicit memory management struggle to identify the source of memory leaks, as memory deallocation is hindered by dangling pointers, leading to indefinite memory allocation and leaks, which are difficult to trace back to their program elements.

Innovation Solution

Injecting data-structure bookkeeping code into object-adding and object-removing program elements to track changes in the data structure's size and location, allowing for the identification of memory leak sources by summing cumulative changes and comparing them to a threshold, thereby pinpointing locations with imbalances between insertions and deletions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If implicit memory management is used to provide dynamic flexibility, then memory allocation flexibility is improved, but memory leak detection capability deteriorates

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidmemory leak detection capability
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies preliminary action by injecting bookkeeping code into program elements before execution to track memory allocations and deallocations. This code records insertion and deletion operations in advance, enabling the system to proactively monitor memory usage patterns and identify potential memory leaks before they become critical issues, thus maintaining detection capability while preserving implicit memory management flexibility

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of bookkeeping code that acts as a mediator between the implicit memory management system and the memory leak detection requirement. This intermediary code tracks memory operations without interfering with the normal memory allocation and deallocation processes, allowing the system to maintain flexibility while enabling detection through the intermediary's recorded data

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If bookkeeping code is injected to track memory changes, then memory leak identification capability is improved, but program complexity increases

Engineering Contradiction:
Improvememory leak identification capabilityVSAvoidprogram complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the bookkeeping code into modular components that are injected into specific program elements (insertion and deletion operations). Each segment tracks specific memory operations independently, and the results are aggregated to identify memory leaks. This modular approach improves identification capability while managing complexity through organized, separable code segments

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The bookkeeping code serves as an intermediary layer that adds tracking functionality without fundamentally altering the original program structure. By inserting this intermediary code at strategic points (memory insertion and deletion operations), the system achieves precise memory leak identification while minimizing impact on the core program logic and maintaining relative simplicity

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If cumulative changes are tracked for all locations, then memory leak source identification accuracy is improved, but computational overhead increases

Engineering Contradiction:
Improvememory leak source identification accuracyVSAvoidcomputational overhead
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent applies local quality by focusing tracking efforts on specific locations where memory operations occur rather than uniformly monitoring all program locations. The bookkeeping code is strategically injected into insertion and deletion operations, concentrating computational resources on critical areas where memory leaks are most likely to occur, thus improving identification accuracy while reducing overall computational overhead through localized monitoring

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9104567B2Memory-leak identification
Publication Date: 2015.08.11 SAP SE
  • US9104567B2 patent drawing
  • US9104567B2 patent drawing
  • US9104567B2 patent drawing

AI summary

A memory-leak source in a data structure can be identified by counting insertions into the data structure and deletions from the data structure for locations in the execution path of a computer program. These insertion and deletion values can be used to identify at least one location as a memory-leak source that corresponds to an imbalance between insertions and deletions during the execution of the computer program.