Method for tracking memory usages of a data processing system
AssigneeApple Inc.
InventorsUmesh S. Vaishampayan, Daniel A. Chimene, Daniel S. Heller
Life of this patent
Estimating the term…
Abstract
Techniques for tracking memory usages of a data processing system are described herein. According to one embodiment, a memory manager is to perform a first lookup operation in a memory allocation table to identify an allocation entry based on a handle representing a memory address of a memory block allocated to a client and to retrieve a trace entry pointer from the allocation entry. The memory manager is then to perform a second lookup operation in a memory trace table to identify a trace entry based on the trace entry pointer and to increment a memory allocation count of the trace entry. The memory allocation count is utilized to indicate a likelihood of the client causing a memory leak.
Claims20
A method for managing a memory in a computing system, comprising:
- generating a memory allocation table including a plurality of allocation entries, wherein each allocation entry includes a pointer to a memory block in the memory allocated to a respective software program and a pointer to a trace entry in a memory trace table;
- generating the memory trace table including a plurality of trace entries, wherein each trace entry includes memory allocation counts for the respective software program and trace information associated with the respective software program;
- and
- creating a list of software programs with the highest memory allocation counts dependent upon the memory trace table.
A non-transitory computer-accessible storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations comprising:
- generating a memory allocation table including a plurality of allocation entries, wherein each allocation entry includes a pointer to a memory block in a memory allocated to a respective software program and a pointer to a trace entry in a memory trace table;
- generating the memory trace table including a plurality of trace entries, wherein each trace entry includes memory allocation counts for the respective software program and trace information associated with the respective software program;
- and
- creating a list of software programs with the highest memory allocation counts dependent upon the memory trace table.
A system, comprising:
- a first memory configured to store data associated with each one of one or more software programs;
- a second memory configured to store a memory allocation table and a memory trace table;
- and
- a memory manager coupled to the first memory and the second memory, wherein the memory manager configured to:
- generate the memory allocation table, wherein the memory allocation table includes a plurality of allocation entries, wherein each allocation entry includes a pointer to a memory block in the first memory allocated to a respective software program and a pointer to a trace entry in a memory trace table;
- generate the memory trace table, wherein the memory trace table includes a plurality of trace entries, wherein each trace entry includes memory allocation counts for the respective software program and trace information associated with the respective software program;
- and
- create a list of software programs with the highest memory allocation counts dependent upon the plurality of trace entries in the memory trace table.
Dependencies are inferred from the claim text.