Memory Allocation Tracking via Automated Tagging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for detecting memory leaks in software applications are labor-intensive, inefficient, and often inaccurate, particularly in garbage-collected systems, as they require manual matching of memory allocations and releases, and existing tools like UMDH and SOS.DLL are limited in their functionality and compatibility.

Innovation Solution

An architecture that intercepts memory allocation and release instructions, creating tags with call stacks, thread IDs, and sequence numbers to track memory transactions, allowing for automated matching and tracking of memory allocations and releases, even in managed memory environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual matching of memory allocations and releases is performed, then memory leak detection can be achieved, but the process becomes labor-intensive and inefficient

Engineering Contradiction:
Improvememory leak detection accuracyVSAvoiddetection efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system automatically performs memory allocation tracking and matching without requiring manual developer intervention. The memory tracking subsystem autonomously captures allocation events, maintains call stack information, and identifies leaks through automated analysis, eliminating the labor-intensive manual matching process while maintaining detection accuracy.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the manual mechanical process of matching memory allocations and releases with an automated computational system. The memory tracking subsystem uses data structures and algorithms to automatically correlate allocations with their corresponding frees, substituting human effort with automated information processing.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Adaptability or versatility

If existing tools like UMDH and SOS.DLL are used, then some memory analysis capability is provided, but they are limited in functionality and compatibility

Engineering Contradiction:
Improvememory tool compatibilityVSAvoidleak detection accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The memory tracking subsystem is designed to work across multiple memory management paradigms including native memory allocation, managed memory systems with garbage collection, and hybrid environments. It provides universal tracking capabilities that adapt to different allocation strategies and memory management approaches, enhancing compatibility while maintaining reliable leak detection through its automated matching algorithm.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9141510B2Memory allocation tracking
Publication Date: 2015.09.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9141510B2 patent drawing
  • US9141510B2 patent drawing
  • US9141510B2 patent drawing

AI summary

The subject disclosure relates to tracking and/or auditing memory allocations for one or more computer-implemented processes. In particular, memory allocation commands as well as memory free commands, both native and managed, can be intercepted. As such, a tag can be created that can be associated with a particular memory allocation. This tag can include various information that can more robustly describe the current state of system memory. Moreover, the tag can be deleted as an associated memory free command is received. Thus, as memory is freed and therefore no longer relevant to the current state of system memory, such does not clutter present examination.