forked from johannesgerer/jburkardt-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gprof.html
133 lines (113 loc) · 3.84 KB
/
gprof.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<html>
<head>
<title>
GPROF - Monitoring Program Performance
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
GPROF <br> Monitoring Program Performance
</h1>
<hr>
<p>
<b>GPROF</b>
is a directory of C++ programs which
demonstrate the use of the GPROF performance monitoring tool.
</p>
<p>
In order to use <b>GPROF</b> with a C++ program, the user program
must be compiled and linked with the <b>-pg</b> switch. For example,
either
<pre><b>
g++ -pg myprog.C
</b></pre>
or, in a two step process,
<pre><b>
g++ -c -pg myprog.C
g++ -pg myprog.o
</b></pre>
When the resulting executable program is run, <b>GPROF</b>
will silently monitor the program, and produce a report
file called <b>gmon.out</b>. This report file is not user-readable.
To see the information contained in the report, you have to
run <b>gprof</b> and tell it the name of the executable program
you just ran. A typical procedure, then, would be to issue the
commands
<pre>
<i>myprog</i> <i>(to run your program called "myprog")</i>
<b>gprof</b> <i>myprog</i> <i>(to have GPROF make the report)</i>
</pre>
</p>
<p>
<b>GPROF</b> can only report on code which has been compiled
with the appropriate options. If your program calls routines
from a precompiled library (which probably was NOT compiled
with the -pg option!) then your report information will not
include information about the time spent in those routines.
<b>GPROF</b>'s report will charge all such time to the higher level
routine that called the library routine. If most of your
execution time occurs in various library routines, then this
fact may greatly reduce the value of <b>GPROF</b>'s information.
</p>
<p>
For more information on how to use <b>GPROF</b>, type
<pre><b>
man gprof
</b></pre>
</p>
<h3 align = "center">
Licensing:
</h3>
<p>
The computer code and data files described and made available on this web page
are distributed under
<a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a>
</p>
<h3 align = "center">
Languages:
</h3>
<p>
<b>GPROF</b> examples are available in
<a href = "../../c_src/gprof/gprof.html">a C version</a> and
<a href = "../../cpp_src/gprof/gprof.html">a C++ version</a> and
<a href = "../../f77_src/gprof/gprof.html">a FORTRAN77 version</a> and
<a href = "../../f_src/gprof/gprof.html">a FORTRAN90 version</a>.
</p>
<h3 align = "center">
Examples and Tests:
</h3>
<p>
<b>LINPACK_BENCH</b> is the LINPACK benchmark code, which
solves a linear system.
This program was compiled, run, and analyzed with <b>GPROF</b>.
Files you may copy include:
<ul>
<li>
<a href = "linpack_bench.cpp">linpack_bench.cpp</a>,
the source code.
</li>
<li>
<a href = "linpack_bench_gprof.sh">linpack_bench_gprof.sh</a>,
commands to compile, load, run and analyze the code.
</li>
<li>
<a href = "linpack_bench_output.txt">linpack_bench_output.txt</a>,
the output from the LINPACK_BENCHMARK executable.
</li>
<li>
<a href = "linpack_bench_gprof_output.txt">linpack_bench_gprof_output.txt</a>,
the performance report produced by <b>GPROF</b>.
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../cpp_src.html">
the C++ source codes</a>.
</p>
<hr>
<i>
Last revised on 09 March 2008.
</i>
<!-- John Burkardt -->
</body>
</html>