IP Library Granted Patent US 8,484,621
Granted Patent B2
US 8,484,621 · App. 12/490,350 · Granted Jul 9, 2013

Method and system for data centric heap profiling

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,484,621
App. No.
12/490,350
Granted
Jul 9, 2013
Kind
B2
Abstract

A method and system for data centric heap profiling is disclosed. In one embodiment, a method, implemented in a computing device, for data centric heap profiling includes generating a type table for data structure types in source code using a compiler of the computing device. The method also includes identifying each heap allocation site and a corresponding data structure type in the source code using the compiler. The method further includes generating a data centric view of a heap o fan application compiled from the source code based on the each heap allocation site and the corresponding data structure type using a debugger of the computing device when a snapshot of the heap is requested during an execution of the application.

Claims (35)

1. A method, implemented in a computing device, for data centric heap profiling, comprising:

generating a type table for data structure types in source code using a compiler of the computing device;

identifying each heap allocation site and a corresponding data structure type in the source code using the compiler, wherein the identifying the each heap allocation site and the corresponding data structure type comprises:

generating a heap allocation site table which includes a program counter (PC) value, an allocation/de-allocation flag, and at least one pointer to at least one of the data structure types; and

generating a mapping between the each heap allocation site and the corresponding data structure type using the at least one pointer;

wherein the type table and the heap allocation site table are written to a non-loadable section of binary/object files generated by the compiler; and

generating a data centric view of a heap of an application compiled from the source code based on the each heap allocation site and the corresponding data structure type using a debugger of the computing device when a snapshot of the heap is requested during an execution of the application.

2. The method of claim 1 , wherein the type table comprises a data structure type and a size of the data structure type.

3. The method of claim 1 , wherein the generating the data centric view of the heap comprises generating a run-time heap allocation call stack table which includes an address allocated for the each heap allocation site, a size of the address, the allocation/de-allocation flag, and the PC value.

4. The method of claim 1 , wherein the generating the data centric view of the heap further comprises mapping a call graph signature at the point of the each heap allocation site to the corresponding data structure type, wherein the call graph signature comprises a set of functions along a code path from the each heap allocation site to a main function.

5. The method of claim 1 , wherein the identifying the each heap allocation site and the corresponding data structure type is based on an intra-procedural analysis.

6. The method of claim 1 , wherein the identifying the each heap allocation site and the corresponding data structure type is based on an inter-procedural analysis, further comprising casting a pointer to void* as a pointer to a correct data structure type.

7. The method of claim 1 , wherein the source code is written using a weakly typed language which includes C, C++, Pascal, Scripting language, and Python.

8. A system for data centric heap profiling, comprising:

a processor; and

a memory configured for temporarily storing a set of instructions for a data

centric heap profiling module, when executed by the processor, causes the

processor to perform a method comprising:

generating a type table for data structure types in source code using a compiler of a computing device;

identifying each heap allocation site and a corresponding data structure type in the source code using the compiler, wherein the identifying the each heap allocation site and the corresponding data structure type comprises:

generating a heap allocation site table which includes a program counter (PC) value, an allocation/de-allocation flag, and at least one pointer to at least one of the data structure types; and

generating a mapping between the each heap allocation site and the corresponding data structure type using the at least one pointer;

wherein the type table and the heap allocation site table are written to a non-loadable section of binary/object files generated by the compiler; and

generating a data centric view of a heap of an application compiled from the source code based on the each heap allocation site and the corresponding data structure type using a debugger of the computing device when a snapshot of the heap is requested during an execution of the application.

9. The system of claim 8 , wherein the source code is written using a weakly typed language which includes C, C++, Pascal, Scripting language, and Python.

10. A non-transitory computer readable medium for a data centric heap profiling having instructions that, when executed by a computer, cause the computer to perform a method comprising:

generating a type table for data structure types in source code using a compiler of the computer;

identifying each heap allocation site and a corresponding data structure type in the source code using the compiler, wherein the identifying the each heap allocation site and the corresponding data structure type comprises:

generating a heap allocation site table which includes a program counter (PC) value, an allocation/de-allocation flag, and at least one pointer to at least one of the data structure types; and

generating a mapping between the each heap allocation site and the corresponding data structure type using the at least one pointer;

wherein the type table and the heap allocation site table are written to a non-loadable section of binary/object files generated by the compiler; and

generating a data centric view of a heap of an application compiled from the source code based on the each heap allocation site and the corresponding data structure type using a debugger of the computer when a snapshot of the heap is requested during an execution of the application.

11. The non-transitory computer readable medium of claim 10 , wherein the identifying the each heap allocation site and the corresponding data structure type comprises:

generating a heap allocation site table which includes a PC value, an allocation/de-allocation flag, and at least one pointer to at least one of the data structure types; and

generating a mapping between the each heap allocation site and the corresponding data structure type using the at least one pointer.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →