Memory Allocation Analysis via Tagging and Interception

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional tools are inadequate in detecting inefficient memory use, such as memory fragmentation, duplicate allocations, and over-allocation, which lead to wasted memory and inefficiencies in computer systems, making it difficult for developers to optimize memory usage.

Innovation Solution

An architecture that includes an accounting component to access memory tags, an analysis component to analyze memory usage, and an interface to present output, allowing for the detection of inefficient memory use by intercepting memory allocation transactions, tagging memory allocations, and analyzing memory with a predetermined signature to identify wasted or duplicate allocations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional tools are used for memory analysis, then the system is simple and easy to operate, but memory allocation inefficiencies cannot be detected

Engineering Contradiction:
Improvedetection capabilityVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary analysis tool that sits between the memory allocation instructions and the memory heap. This intermediary component intercepts allocation transactions, tags memory allocations with metadata (including predetermined signatures), and analyzes memory usage patterns without requiring changes to the underlying system architecture or memory management mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces manual memory analysis mechanisms with an automated analysis system that uses predetermined signatures and algorithmic patterns to detect memory allocation inefficiencies. Instead of relying on developers to manually inspect memory usage, the system automatically intercepts, tags, and analyzes memory allocations using computational methods.

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

2Measurement precision

If memory allocation transactions are intercepted and tagged, then memory allocation inefficiencies can be detected, but the system complexity increases

Engineering Contradiction:
Improvememory analysis accuracyVSAvoidanalysis architecture complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the memory analysis function into distinct components: an accounting component that intercepts and tags memory allocation transactions, and an analysis component that examines the tagged memory for inefficiencies. This segmentation allows each component to perform its specific function independently, making the overall system more manageable and analyzable despite the increased complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by tagging memory allocations with predetermined signatures at the time of allocation, before the actual memory usage patterns emerge. This preliminary tagging enables later analysis of memory usage efficiency without requiring real-time intervention or complex runtime analysis mechanisms.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If predetermined signatures are used to tag memory, then wasted allocations can be identified, but the overhead of tagging increases

Engineering Contradiction:
Improvewasted memory detectionVSAvoidtagging overhead
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The patent uses parameter changes by employing predetermined signatures (specific byte patterns) as tags for memory allocations. These signatures are simple numerical or byte-pattern parameters that can be efficiently written to and read from memory, enabling detection of wasted allocations while minimizing the overhead of the tagging mechanism itself.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10963374B2Memory allocation analysis
Publication Date: 2021.03.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10963374B2 patent drawing
  • US10963374B2 patent drawing
  • US10963374B2 patent drawing

AI summary

The subject disclosure relates to analyzing memory allocations for one or more computer-implemented processes. In particular, in conjunction with employing tags for tracking memory allocation commands, currently allocated memory can be examined for various characteristics of inefficient memory use. For example, as memory is initially allocated, a predetermined bit pattern can be written to the newly allocated memory. Thus, detection of the predetermined bit pattern can be indicative of wasted memory use. Moreover, additional features can be provided to both analyze data and present views associated with that analysis relating to identification of memory fragmentation, over-allocation, sparse memory use, duplication of allocations, multiple module loads, and so forth.