Gprof is a performance analysis tool for Unix applications. It used a hybrid of instrumentation Another implementation was written as part of the GNU project for GNU GPROF output consists of two parts: the flat profile and the call graph. Gprof is a profiling program which collects and arranges statistics on your lly, it looks Write hate-mail to gnu (but don’t tell them I told you to). If you are a programmer, who writes code in C, Pascal, or Fortran77 programming language and uses Linux as the development platform, youll be glad to.

Author: Fenrimi Maugis
Country: Mali
Language: English (Spanish)
Genre: Love
Published (Last): 21 May 2009
Pages: 196
PDF File Size: 4.78 Mb
ePub File Size: 2.69 Mb
ISBN: 647-6-85125-636-1
Downloads: 2019
Price: Free* [*Free Regsitration Required]
Uploader: Goltigal

But since we’ve to profile the code using Gprof, I’ll have to use the -pg command line option provided by the gcc compiler.

Your name or email address: So, if through performance testing, we can enhance the performance of these functions in code, the overall performance of the software becomes better.

This page was last edited on 21 Decemberat The other columns in the output provide information on the total number of function calls made, and the time spent in each function.

If all this sounds a bit confusing at this point especially the part in quotesdon’t worry, as we’ll make things clear through an example. Consequently efforts to decrease the run-time of the program should concentrate on the former. It used a hybrid of instrumentation and sampling [1] and was created as an extended version of the older “prof” tool.

It can be analyzed with gprof by giving the name of the executable as an argument:.


Here’s what the man page of Gprof says about information under these two sections:. There were analogous utility in glibc called ‘sprof’ to profile dynamic libraries. From Wikipedia, the free encyclopedia. Once the command is executed, you’ll see that a file named gmon. So, gprrof command becomes:.

So, what exactly is Gprof? The flat profile gives the total execution time spent in each function and its percentage of the total running time.

How to install and use profiling tool Gprof on Linux

Function call counts are also reported. Here’s the flat profile in my case:. Else you can install it using the following command:. There’s no doubt that testing is an integral and one of the most important aspects of the software development process.

Gprof is a performance analysis tool for Unix applications. However, whatever we’ve covered here should be enough to get you started. So, now use the Gprof tool in ngu following way:. Efforts to speed up a program should concentrate first on those functions which dominate the total run-time. The resulting data is not tbe, rather a statistical approximation. Before we move ahead, please note that all the examples and instructions mentioned in this tutorial have been tested on Ubuntu The amount of error is usually more than one sampling period.

So, we’ll start off with a C language program, which we’ll be profiling through Gprof. This creates an instrumented executable which contains additional instructions that record the time spent in each function.

An Introduction to GCC – Using the profiler gprof

If the program consists of more than one source file then the -pg option should be used when compiling each source file, and used again when linking the object files to create the final executable as shown above. It is this file which contains all the information that the Gprof tool requires to produce a human-readable profiling data. GPROF output consists of two parts: Armed with this information, now you’ll be in a better position to understand the data present in your profiling output file profile-data.


The mcount function may not be thread-safe in some implementations, so multi-threaded application profiles can be incorrect typically it only profiles the main thread of application. Forgetting to link with the option -pg is a common error, which prevents profiling from recording any useful information.

In case you want this information to be omitted from the output, you can use the -b option provided by Gprof. If broken down to the last bit, performance testing effectively tests how much time a particular piece of code – say a function – is consuming.

Views Read Edit View history. Instrumentation code is automatically inserted into the program code during compilation for example, by using the ‘-pg’ option of the gcc compilerto gather caller-function data.

GNU gprof – Table of Contents

Yes, my password is: Unlike prof, gprof is capable of limited call graph collecting and printing. To do this, just run te following command in a terminal. To use profiling, the program must be compiled and linked with the -pg profiling option:.