Integration of structured profiling data with source data in the eclipse development environment
A computer-implemented system and method including receiving an output file from a profiling utility by an integrated development environment component. The output file is used to generate an interactive presentation of data by a computer system to visually organize profiling data automatically. Corresponding source code is displayed in response to a user selection of a data point of the interactive presentation within the integrated development environment.
1. A method, comprising:
transmitting by a computer system, via an integrated development environment (IDE) executed by the computer system, a binary file to a profiling utility external to the IDE;
receiving by the computer system, within the IDE an output file that is generated by the profiling utility processing the binary file;
organizing by the computer system, the output file into a set of events, wherein each of the set of events is associated with a respective portion of source code of a program and a respective profiling metric value;
generating by the computer system, within the IDE, an interactive graphical component that presents a plurality of profiling data points from the output file, the profiling data points corresponding to performance data generated by the profiling utility in view of the execution of the program;
receiving by the computer system, within the IDE, a user selection of one of the plurality of profiling data points; and
displaying by the computer system, within the IDE, the source code of the program that corresponds to the selected profiling data point.
2. The method of claim 1 , further comprising:
receiving by the computer system, from a user, an identification of the binary file and an identification of the profiling utility; and
sending the binary file to the profiling utility.
3. The method of claim 1 , wherein the output file is received via a plug-in of the IDE.
4. The method of claim 1 , wherein the profiling utility is Oprofile™.
5. The method of claim 1 , wherein the integrated development environment is Eclipse™.
6. The method of claim 1 , wherein the plurality of profiling data points are presented hierarchically by the interactive graphical component.
7. The method of claim 1 , wherein each line of code of the respective portion of source code has a respective profiling metric value.
8. A non-transitory computer-readable storage medium having a set of instructions stored therein, which when executed, cause a computer system to perform a set of operations, comprising:
transmitting by the computer system, via an integrated development environment (IDE) executed by the computer system, a binary file to a profiling utility external to the IDE;
receiving by the computer system, within the IDE an output file that is generated by the profiling utility processing the binary file;
organizing by the computer system, the output file into a set of events, wherein each of the set of events is associated with a respective portion of source code of a program and a respective profiling metric value;
generating by the computer system, within the IDE, an interactive graphical component that presents a plurality of profiling data points from the output file, the profiling data points corresponding to performance data generated by the profiling utility in view of the execution of the program;
receiving by the computer system, within the IDE, a user selection of one of the plurality of profiling data points; and
displaying by the computer system, within the IDE, the source code of the program that corresponds to the selected profiling data point.
9. The non-transitory computer-readable storage medium of claim 8 , wherein the set of operations further comprises:
receiving by the computer system, from a user, an identification of the binary file and an identification of the profiling utility; and
sending the binary file to the profiling utility.
10. The non-transitory computer-readable storage medium of claim 8 , wherein the output file is received via a plug-in of the IDE.
11. The non-transitory computer-readable storage medium of claim 8 , wherein the profiling utility is Oprofile™.
12. The non-transitory computer-readable storage medium of claim 8 , wherein the integrated development environment is Eclipse™.
13. The non-transitory computer-readable storage medium of claim 8 , wherein the plurality of profiling data points are presented hierarchically by the interactive graphical component.
14. The non-transitory computer-readable storage medium of claim 8 , wherein each line of code of the respective portion of source code has a respective profiling metric value.
15. A system comprising:
a memory to store source code; and
a processor coupled to the memory to:
execute an integrated development environment (IDE); transmit, via the IDE, a binary file to a profiling utility external to the IDE;
organize, via the IDE, the output file into a set of events, wherein each of the set of events is associated with a respective portion of source code of a program and a respective profiling metric value;
receive, via the IDE, a profiling metric from the profiling utility processing the binary file, the profiling metric corresponding to performance data generated by the profiling utility in view of executing the program;
generate an interactive visual representation of correlations between the source code and the profiling metric;
receive, within the IDE, a user selection of one of a plurality of profiling data points associated with the profiling metric; and
display, within the IDE, a portion of the source code corresponding to the selected profiling data points.
16. The system of claim 15 , wherein the profiling utility is Oprofile™.
17. The system of claim 15 , wherein the integrated development environment is Eclipse™.
18. The system of claim 15 , wherein the processor further:
generates a tree model by parsing output from the profiling utility to create a hierarchy of events, functions, and lines of code.