System-Wide Memory Leak Detection via Administrative Client

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory leaks in multi-process environments go undetected, leading to reduced system memory availability and potential system crashes, especially in embedded systems where inter-process communication can cause memory leaks across processes.

Innovation Solution

An administrative client transmits commands to multiple processes to track and compare memory allocations before and after a test case, generating a list of potential memory leaks by identifying differences in system-wide memory allocations, using a custom memory tracking library that overrides standard allocation and deallocation APIs with user-defined tags.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If memory allocation tracking is implemented at the process level, then memory leak detection capability is improved, but detection coverage deteriorates due to inter-process communication hiding leaks

Engineering Contradiction:
Improvememory leak detection capabilityVSAvoiddetection coverage
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent merges memory tracking across multiple processes by having an administrative client collect memory allocation data from all processes and combine them into a unified system-wide memory allocation view. This allows detection of memory leaks that occur due to inter-process communication by aggregating individual process memory states into a comprehensive system-level assessment.

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If system-wide memory tracking is implemented, then detection coverage is improved, but system complexity increases

Engineering Contradiction:
Improvedetection coverageVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an administrative client as an intermediary component that mediates between individual processes and the memory leak detection system. The administrative client collects memory allocation information from all processes, combines it into system-wide memory allocations, and performs comparison operations, thereby simplifying the overall system architecture while achieving comprehensive coverage.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If memory tracking is performed before and after test cases, then memory leak identification accuracy is improved, but time consumption increases

Engineering Contradiction:
Improvememory leak identification accuracyVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary memory allocation tracking before executing test cases to establish a baseline system-wide memory state. By capturing memory allocations before and after test execution, the system can accurately identify memory leaks introduced by specific test cases while reusing the pre-captured baseline data, thereby reducing redundant tracking operations and time consumption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9558055B2System level memory leak detection
Publication Date: 2017.01.31 CISCO TECHNOLOGY INC
  • US9558055B2 patent drawing
  • US9558055B2 patent drawing
  • US9558055B2 patent drawing

AI summary

A method for detecting memory leaks with an administrative client begins by transmitting to all of the processes running on at least one computing device, a first command to return memory track information. The administrative client receives memory track information from each of the processes, and combines them into a first system wide memory allocation. The administrative client transmits an instruction to run a test case process, and then transmits, to each of the processes, a second command to return memory track information. The administrative client receives the second set of memory track information and combines it to generate a second system wide memory allocation. To generate a list of potential memory leaks originating from the test case process, the administrative client compares the first system wide memory allocation with the second system wide memory allocation.