The problem of code efficiency currently seems to be one of the most prevalent issues of computer science. Countless millions of dollars are spent to make sure that code is not only free of errors, but also as efficient as possible. A tool has been developed, called “Profiler” to allow programmers to measure the running times of their functions. This program benchmarks the running times of functions and reports them in a very long and difficult to understand text file.

Our idea is to improve and expand the functionality of the profiler. As basis, we use the open-source profiler GNU gprof, parse the data and display it in a visually organized manner, giving the user a choice of how to display the data and how to compare it. Organization of this data is also a cornerstone of our software. The user will be able to group his or her set of gprof data into collections, allowing easy side by side comparisons of the efficiency evolution of a piece of their code. The importance of this feature is immense, as it will allow the user to make sure that their code is progressing towards efficiency. In addition, saving this data will not only show this history of code progression, but allow the user to continue adding to a collection, not only gprof data, but graphs and functions as well, turning a collection into a full profile of a user’s project, showing its efficiency. In all of this, the most important is that the user be allowed this flexibility to compile a profile in any configuration, so that it becomes an overall multi-faceted report of the user’s project.

Moreover, we implemented data gathering capabilities, to allow programmers to compare the running times of their program at different phases of their performance optimization process. This will all be contained in an intuitive user-friendly graphical interface.

The intended user base of our program will be any and all computer programmers that care about the efficiency of their code. The software allows the user to quickly and easily find the running times of their functions, view their current results, as well as any previous runs. Other features include selections from a plethora of visual and textual representations of profiler output, ranging from plain text data sheets to timing diagrams with adjustable scales (arithmetic, exponential, logarithmic). This grants the user an unprecedented flexibility with the interpretation of their code’s running time.

There are currently no other technologies similar to our idea, and that is exactly why we developed this program. We believe that being able to extensively analyze the output of a profiler, rather than just viewing the data in its raw text form, is useful and necessary to further increase any future programmers’ ability to define and improve the efficiency of their code.

This page and all its contents are under GNU Free Documentation License. Copyleft the X3P founders.