* RE: Confused by this code profile.
@ 2004-11-02 17:54 Martin York
0 siblings, 0 replies; 2+ messages in thread
From: Martin York @ 2004-11-02 17:54 UTC (permalink / raw)
To: Jack Liddle, gcc-help
This is just a theory.
I bet it is because of the default copy constructor on a class.
Do you call a lot of functions by value?
MyFunctionCall(ClassName X)
{
}
In the above case each call will create a new copy of the object passed
using the copy constructor.
If you change these to call by reference you will avoid copy constructor
costs:
MyFunctionCall(const ClassName& X)
{
}
NB:
If you don't explicitly define a copy constructor:
ClassName::ClassName(const ClassName& from)
{
/* Copy from 'from' into me */
}
Then the compiler will define one for you. The default copy constructor
is a shallow
copy of the old object into the new object (i.e. probably a mem copy).
Martin
-----Original Message-----
From: Jack Liddle [mailto:j.liddle1@physics.ox.ac.uk]
Sent: 02 November 2004 10:22
To: gcc-help@gcc.gnu.org
Subject: Confused by this code profile.
Hi there Guys.
I have a code profile which I don't quite understand.
The code is written in ObjC and compiled with GCC (gcc version 2.96
20000731 (Red Hat Linux 7.3 2.96-113))
When compiled and profiles (gcc -O3 SUnGen.m -o SUnGenmk2 -static -lm
-lobjc -pg) I get the code profile included at the bottom.
What I don't understand is what memcpy is doing there. I certainly did
call it explicitly. It remains at constant 30% of time regardless on
the number of 'updates' done (its a Monte Carlo simulation). Any idea
what this?
Also any idea what the _mcount_internal does?
Also is this the right place to ask?
Thanks for any help. Could I also ask for any responses to be sent
directly to me as well, by departments email filters are a bit to fierce
and sometimes I miss messages from this list
Thanks
Jack Liddle
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
29.96 65.24 65.24 memcpy
11.26 89.76 24.52 __mcount_internal
9.88 111.27 21.51 29748600 0.00 0.00
_i_Matrix__MatrixMultipliedBy_
7.50 127.61 16.34 objc_msg_lookup
4.69 137.82 10.21 chunk_alloc
3.41 145.25 7.43 chunk_free
3.14 152.08 6.83 76949300 0.00 0.00
_i_Matrix__InitialiseToSize_
3.03 158.67 6.59 808072200 0.00 0.00
_i_Matrix__getMatrixEntry__
2.26 163.59 4.92 535329000 0.00 0.00
_i_Matrix__setMatrixEntry__toValue_
2.12 168.21 4.62 malloc
2.08 172.74 4.53 mcount
2.03 177.17 4.43 __ieee754_pow
1.80 181.10 3.93 cfree
1.75 184.92 3.82 17852400 0.00 0.00
_i_Matrix__HermitianConjugate
1.64 188.50 3.58 memset
1.38 191.50 3.00 4860000 0.00 0.00
_i_Matrix__KennedyPendletonUsing_
1.01 193.69 2.19 76941200 0.00 0.00 _i_Matrix(float,
long double,...)(...)
0.90 195.66 1.97 6480000 0.00 0.00
_i_Matrix__MatrixAddedTo_
0.87 197.55 1.89 hash_string
0.86 199.43 1.88 200 9.40 282.55
_i_Lattice__HeatBathUpdateUsing_
0.75 201.06 1.63 1620000 0.00 0.02
_i_Matrix__CMwith_accordingto_
0.74 202.68 1.62 4860000 0.00 0.00
_i_Matrix__DividedByScalar_
0.72 204.25 1.57 strcmp
0.52 205.38 1.13 erand48_r
0.51 206.48 1.10 hash_value_for_key
0.44 207.44 0.96 4860000 0.00 0.00
_i_Matrix__Unitarise
0.44 208.40 0.96
objc_msg_lookup_super
0.33 209.12 0.72 __ieee754_log
0.33 209.84 0.72 pow
0.32 210.54 0.70 __drand48_iterate
0.29 211.18 0.64 objc_mutex_unlock
0.27 211.77 0.59 objc_get_class
0.26 212.33 0.56
class_create_instance
0.25 212.87 0.54 compare_strings
0.25 213.41 0.54 objc_mutex_lock
0.24 213.94 0.53 log
0.20 214.38 0.44 object_dispose
0.19 214.79 0.41
__objc_object_dispose
0.17 215.16 0.37 cos
0.14 215.47 0.31 _c_Object__alloc
0.13 215.75 0.28 objc_thread_id
0.11 215.99 0.24 isnan
0.10 216.20 0.21 __objc_thread_id
0.07 216.36 0.16 __objc_mutex_lock
0.07 216.52 0.16 _i_Object(float,
long double,...)(...)
0.06 216.66 0.14
__objc_object_alloc
0.06 216.79 0.13 _i_Object__init
0.06 216.92 0.13 objc_malloc
0.06 217.04 0.12 4860000 0.00 0.00
_i_Matrix__FindDeterminant
0.06 217.16 0.12
__objc_mutex_unlock
0.06 217.28 0.12 drand48
0.06 217.40 0.12 objc_free
0.04 217.49 0.09 finite
0.03 217.56 0.07 34608800 0.00 0.00
_i_Matrix__getDimension
0.03 217.63 0.07 1620000 0.00 0.00
_i_Matrix__setToZero
0.02 217.67 0.04 write
0.01 217.69 0.02 4860001 0.00 0.00
_i_Simulation__getBeta
0.01 217.71 0.02 604800 0.00 0.00
_i_Lattice__getLinkAt___inDirection_
0.00 217.72 0.01 754019 0.00 0.00
_i_Simulation__getNt
0.00 217.73 0.01 196200 0.00 0.00
_i_Matrix__FindTrace
0.00 217.74 0.01 200 0.05 3.34
_i_Observer__FindPolyakovloopSumsOf_
0.00 217.75 0.01 __mpn_mul_1
0.00 217.75 0.00 5073901 0.00 0.00
_i_Simulation__getNc
0.00 217.75 0.00 845955 0.00 0.00
_i_Simulation__getNs
0.00 217.75 0.00 6000 0.00 0.00
_i_Observer__GivePolyakovloopNumber_
0.00 217.75 0.00 202 0.00 0.00
_i_Simulation__getconfs
0.00 217.75 0.00 200 0.00 0.00
_i_Filehandler__WritePlaquettesByAsking_
0.00 217.75 0.00 200 0.00 0.00
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_
0.00 217.75 0.00 200 0.00 0.35
_i_Observer__FindAveragePlaquetteOf_
0.00 217.75 0.00 200 0.00 0.00
_i_Observer__GiveAveragePlaquette
0.00 217.75 0.00 200 0.00 0.00 _i_Observer__speak
0.00 217.75 0.00 1 0.00 0.00 global
constructors
keyed to main
0.00 217.75 0.00 1 0.00 0.00
_i_Filehandler__InitialiseFileNames_
0.00 217.75 0.00 1 0.00 0.00
_i_Filehandler__OpenFilesForWriting
0.00 217.75 0.00 1 0.00 0.72
_i_Lattice__InitialiseAccordingTo_
0.00 217.75 0.00 1 0.00 0.00
_i_Observer__InitialiseObserver_
0.00 217.75 0.00 1 0.00 0.00
_i_Simulation__initfromCommandLineForCreation_with_
0.00 217.75 0.00 1 0.00 57250.00 main
% the percentage of the total running time of the
time program used by this function.
cumulative a running sum of the number of seconds accounted
seconds for by this function and those listed above it.
self the number of seconds accounted for by this
seconds function alone. This is the major sort for this
listing.
calls the number of times this function was invoked, if
this function is profiled, else blank.
self the average number of milliseconds spent in this
ms/call function per call, if this function is profiled,
else blank.
total the average number of milliseconds spent in this
ms/call function and its descendents per call, if this
function is profiled, else blank.
name the name of the function. This is the minor sort
for this listing. The index shows the location of
the function in the gprof listing. If the index is
in parenthesis it shows where it would appear in
the gprof listing if it were to be printed.
Call graph (explanation follows)
granularity: each sample hit covers 4 byte(s) for 0.01% of 188.70
seconds
index % time self children called name
<spontaneous>
[1] 34.6 65.24 0.00 memcpy [1]
-----------------------------------------------
0.00 57.25 1/1 __libc_start_main [3]
[2] 30.3 0.00 57.25 1 main [2]
1.88 54.63 200/200
_i_Lattice__HeatBathUpdateUsing_ [4]
0.01 0.66 200/200
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.00 0.07 200/200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.00 0.00 1/1
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 1/1
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 201/202 _i_Simulation__getconfs
[504]
0.00 0.00 200/200 _i_Observer__speak
[508]
0.00 0.00 200/200
_i_Filehandler__WritePlaquettesByAsking_ [505]
0.00 0.00 200/845955 _i_Simulation__getNs
[502]
0.00 0.00 200/200
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_ [506]
0.00 0.00 1/1
_i_Simulation__initfromCommandLineForCreation_with_ [512]
0.00 0.00 1/1
_i_Filehandler__OpenFilesForWriting [510]
0.00 0.00 1/1
_i_Observer__InitialiseObserver_ [511]
-----------------------------------------------
<spontaneous>
[3] 30.3 0.00 57.25 __libc_start_main [3]
0.00 57.25 1/1 main [2]
-----------------------------------------------
1.88 54.63 200/200 main [2]
[4] 29.9 1.88 54.63 200
_i_Lattice__HeatBathUpdateUsing_ [4]
1.63 29.52 1620000/1620000
_i_Matrix__CMwith_accordingto_ [6]
9.37 4.68 12960000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
2.77 2.06 12960000/17852400
_i_Matrix__HermitianConjugate [12]
1.97 1.59 6480000/6480000
_i_Matrix__MatrixAddedTo_
[19]
0.97 0.00 34020200/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.07 0.00 1620000/1620000 _i_Matrix__setToZero
[57]
0.00 0.00 200/76949300
_i_Matrix__InitialiseToSize_ [11]
0.00 0.00 800/754019 _i_Simulation__getNt
[61]
0.00 0.00 200/34608800
_i_Matrix__getDimension
[56]
0.00 0.00 576600/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.04 0.02 48600/29748600
_i_Observer__FindAveragePlaquetteOf_ [55]
0.39 0.19 540000/29748600
_i_Observer__FindPolyakovloopSumsOf_ [31]
3.51 1.75 4860000/29748600
_i_Matrix__KennedyPendletonUsing_ [8]
8.20 4.09 11340000/29748600
_i_Matrix__CMwith_accordingto_ [6]
9.37 4.68 12960000/29748600
_i_Lattice__HeatBathUpdateUsing_ [4]
[5] 17.1 21.51 10.74 29748600
_i_Matrix__MatrixMultipliedBy_ [5]
5.80 0.00 710872200/808072200
_i_Matrix__getMatrixEntry__ [13]
2.64 0.00 29748600/76949300
_i_Matrix__InitialiseToSize_ [11]
2.24 0.00 243437400/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.06 0.00 29748600/34608800
_i_Matrix__getDimension
[56]
-----------------------------------------------
1.63 29.52 1620000/1620000
_i_Lattice__HeatBathUpdateUsing_ [4]
[6] 16.5 1.63 29.52 1620000
_i_Matrix__CMwith_accordingto_ [6]
3.00 12.19 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
8.20 4.09 11340000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
0.72 0.00 8100000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.65 0.00 22680000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.36 0.00 38880000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.32 0.00 38880000/808072200
_i_Matrix__getMatrixEntry__ [13]
-----------------------------------------------
<spontaneous>
[7] 8.7 16.34 0.00 objc_msg_lookup [7]
-----------------------------------------------
3.00 12.19 4860000/4860000
_i_Matrix__CMwith_accordingto_ [6]
[8] 8.1 3.00 12.19 4860000
_i_Matrix__KennedyPendletonUsing_ [8]
3.51 1.75 4860000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
1.62 0.61 4860000/4860000
_i_Matrix__DividedByScalar_ [20]
1.04 0.77 4860000/17852400
_i_Matrix__HermitianConjugate [12]
0.96 0.61 4860000/4860000 _i_Matrix__Unitarise
[23]
0.55 0.00 19440000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.43 0.00 4860000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.18 0.00 19440000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.12 0.00 4860000/4860000
_i_Matrix__FindDeterminant [52]
0.02 0.00 4860000/4860001 _i_Simulation__getBeta
[59]
0.01 0.00 4860000/34608800
_i_Matrix__getDimension
[56]
0.00 0.00 4860000/5073901 _i_Simulation__getNc
[501]
-----------------------------------------------
<spontaneous>
[9] 5.4 10.21 0.00 chunk_alloc [9]
-----------------------------------------------
<spontaneous>
[10] 3.9 7.43 0.00 chunk_free [10]
-----------------------------------------------
0.00 0.00 200/76949300
_i_Lattice__HeatBathUpdateUsing_ [4]
0.00 0.00 8100/76949300
_i_Lattice__InitialiseAccordingTo_ [64]
0.02 0.00 180000/76949300
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.43 0.00 4860000/76949300
_i_Matrix__DividedByScalar_ [20]
0.43 0.00 4860000/76949300 _i_Matrix__Unitarise
[23]
0.43 0.00 4860000/76949300
_i_Matrix__KennedyPendletonUsing_ [8]
0.58 0.00 6480000/76949300
_i_Matrix__MatrixAddedTo_ [19]
0.72 0.00 8100000/76949300
_i_Matrix__CMwith_accordingto_ [6]
1.58 0.00 17852400/76949300
_i_Matrix__HermitianConjugate [12]
2.64 0.00 29748600/76949300
_i_Matrix__MatrixMultipliedBy_ [5]
[11] 3.6 6.83 0.00 76949300
_i_Matrix__InitialiseToSize_
[11]
-----------------------------------------------
0.01 0.01 32400/17852400
_i_Observer__FindAveragePlaquetteOf_ [55]
1.04 0.77 4860000/17852400
_i_Matrix__KennedyPendletonUsing_ [8]
2.77 2.06 12960000/17852400
_i_Lattice__HeatBathUpdateUsing_ [4]
[12] 3.5 3.82 2.84 17852400
_i_Matrix__HermitianConjugate [12]
1.58 0.00 17852400/76949300
_i_Matrix__InitialiseToSize_ [11]
1.25 0.00 136371600/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
0.32 0.00 38880000/808072200
_i_Matrix__CMwith_accordingto_ [6]
0.48 0.00 58320000/808072200
_i_Matrix__MatrixAddedTo_ [19]
5.80 0.00 710872200/808072200
_i_Matrix__MatrixMultipliedBy_ [5]
[13] 3.5 6.59 0.00 808072200
_i_Matrix__getMatrixEntry__
[13]
-----------------------------------------------
0.18 0.00 19440000/535329000
_i_Matrix__DividedByScalar_ [20]
0.18 0.00 19440000/535329000 _i_Matrix__Unitarise
[23]
0.18 0.00 19440000/535329000
_i_Matrix__KennedyPendletonUsing_ [8]
0.36 0.00 38880000/535329000
_i_Matrix__CMwith_accordingto_ [6]
0.54 0.00 58320000/535329000
_i_Matrix__MatrixAddedTo_ [19]
1.25 0.00 136371600/535329000
_i_Matrix__HermitianConjugate [12]
2.24 0.00 243437400/535329000
_i_Matrix__MatrixMultipliedBy_ [5]
[14] 2.6 4.92 0.00 535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
<spontaneous>
[15] 2.4 4.62 0.00 malloc [15]
-----------------------------------------------
<spontaneous>
[16] 2.3 4.43 0.00 __ieee754_pow [16]
-----------------------------------------------
<spontaneous>
[17] 2.1 3.93 0.00 cfree [17]
-----------------------------------------------
<spontaneous>
[18] 1.9 3.58 0.00 memset [18]
-----------------------------------------------
1.97 1.59 6480000/6480000
_i_Lattice__HeatBathUpdateUsing_ [4]
[19] 1.9 1.97 1.59 6480000 _i_Matrix__MatrixAddedTo_
[19]
0.58 0.00 6480000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.54 0.00 58320000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.48 0.00 58320000/808072200
_i_Matrix__getMatrixEntry__ [13]
-----------------------------------------------
1.62 0.61 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
[20] 1.2 1.62 0.61 4860000 _i_Matrix__DividedByScalar_
[20]
0.43 0.00 4860000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.18 0.00 19440000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
0.00 0.00 81000/76941200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.02 0.00 720000/76941200
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.55 0.00 19440000/76941200
_i_Matrix__KennedyPendletonUsing_ [8]
0.65 0.00 22680000/76941200
_i_Matrix__CMwith_accordingto_ [6]
0.97 0.00 34020200/76941200
_i_Lattice__HeatBathUpdateUsing_ [4]
[21] 1.2 2.19 0.00 76941200 _i_Matrix(float, long
double,...)(...) [21]
-----------------------------------------------
<spontaneous>
[22] 1.0 1.89 0.00 hash_string [22]
-----------------------------------------------
0.96 0.61 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
[23] 0.8 0.96 0.61 4860000 _i_Matrix__Unitarise [23]
0.43 0.00 4860000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.18 0.00 19440000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
<spontaneous>
[24] 0.8 1.57 0.00 strcmp [24]
-----------------------------------------------
<spontaneous>
[25] 0.6 1.13 0.00 erand48_r [25]
-----------------------------------------------
<spontaneous>
[26] 0.6 1.10 0.00 hash_value_for_key [26]
-----------------------------------------------
<spontaneous>
[27] 0.5 0.96 0.00 objc_msg_lookup_super [27]
-----------------------------------------------
<spontaneous>
[28] 0.4 0.72 0.00 pow [28]
-----------------------------------------------
<spontaneous>
[29] 0.4 0.72 0.00 __ieee754_log [29]
-----------------------------------------------
<spontaneous>
[30] 0.4 0.70 0.00 __drand48_iterate [30]
-----------------------------------------------
0.01 0.66 200/200 main [2]
[31] 0.4 0.01 0.66 200
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.39 0.19 540000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
0.02 0.00 720000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.02 0.00 540000/604800
_i_Lattice__getLinkAt___inDirection_ [60]
0.02 0.00 180000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.01 0.00 720000/754019 _i_Simulation__getNt
[61]
0.01 0.00 180000/196200 _i_Matrix__FindTrace
[62]
0.00 0.00 192200/845955 _i_Simulation__getNs
[502]
0.00 0.00 180000/5073901 _i_Simulation__getNc
[501]
-----------------------------------------------
<spontaneous>
[32] 0.3 0.64 0.00 objc_mutex_unlock [32]
-----------------------------------------------
<spontaneous>
[33] 0.3 0.59 0.00 objc_get_class [33]
-----------------------------------------------
<spontaneous>
[34] 0.3 0.56 0.00 class_create_instance [34]
-----------------------------------------------
<spontaneous>
[35] 0.3 0.54 0.00 compare_strings [35]
-----------------------------------------------
<spontaneous>
[36] 0.3 0.54 0.00 objc_mutex_lock [36]
-----------------------------------------------
<spontaneous>
[37] 0.3 0.53 0.00 log [37]
-----------------------------------------------
<spontaneous>
[38] 0.2 0.44 0.00 object_dispose [38]
-----------------------------------------------
<spontaneous>
[39] 0.2 0.41 0.00 __objc_object_dispose [39]
-----------------------------------------------
<spontaneous>
[40] 0.2 0.37 0.00 cos [40]
-----------------------------------------------
<spontaneous>
[41] 0.2 0.31 0.00 _c_Object__alloc [41]
-----------------------------------------------
<spontaneous>
[42] 0.1 0.28 0.00 objc_thread_id [42]
-----------------------------------------------
<spontaneous>
[43] 0.1 0.24 0.00 isnan [43]
-----------------------------------------------
<spontaneous>
[44] 0.1 0.21 0.00 __objc_thread_id [44]
-----------------------------------------------
<spontaneous>
[45] 0.1 0.16 0.00 __objc_mutex_lock [45]
-----------------------------------------------
<spontaneous>
[46] 0.1 0.16 0.00 _i_Object(float, long
double,...)(...) [46]
-----------------------------------------------
<spontaneous>
[47] 0.1 0.14 0.00 __objc_object_alloc [47]
-----------------------------------------------
<spontaneous>
[48] 0.1 0.13 0.00 objc_malloc [48]
-----------------------------------------------
<spontaneous>
[49] 0.1 0.13 0.00 _i_Object__init [49]
-----------------------------------------------
<spontaneous>
[50] 0.1 0.12 0.00 drand48 [50]
-----------------------------------------------
<spontaneous>
[51] 0.1 0.12 0.00 objc_free [51]
-----------------------------------------------
0.12 0.00 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
[52] 0.1 0.12 0.00 4860000 _i_Matrix__FindDeterminant
[52]
-----------------------------------------------
<spontaneous>
[53] 0.1 0.12 0.00 __objc_mutex_unlock [53]
-----------------------------------------------
<spontaneous>
[54] 0.0 0.09 0.00 finite [54]
-----------------------------------------------
0.00 0.07 200/200 main [2]
[55] 0.0 0.00 0.07 200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.04 0.02 48600/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
0.01 0.01 32400/17852400
_i_Matrix__HermitianConjugate [12]
0.00 0.00 81000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.00 0.00 64800/604800
_i_Lattice__getLinkAt___inDirection_ [60]
0.00 0.00 16200/196200 _i_Matrix__FindTrace
[62]
0.00 0.00 33200/754019 _i_Simulation__getNt
[61]
0.00 0.00 64800/845955 _i_Simulation__getNs
[502]
0.00 0.00 25800/5073901 _i_Simulation__getNc
[501]
-----------------------------------------------
0.00 0.00 200/34608800
_i_Lattice__HeatBathUpdateUsing_ [4]
0.01 0.00 4860000/34608800
_i_Matrix__KennedyPendletonUsing_ [8]
0.06 0.00 29748600/34608800
_i_Matrix__MatrixMultipliedBy_ [5]
[56] 0.0 0.07 0.00 34608800 _i_Matrix__getDimension
[56]
-----------------------------------------------
0.07 0.00 1620000/1620000
_i_Lattice__HeatBathUpdateUsing_ [4]
[57] 0.0 0.07 0.00 1620000 _i_Matrix__setToZero [57]
-----------------------------------------------
<spontaneous>
[58] 0.0 0.04 0.00 write [58]
-----------------------------------------------
0.00 0.00 1/4860001
_i_Filehandler__InitialiseFileNames_ [65]
0.02 0.00 4860000/4860001
_i_Matrix__KennedyPendletonUsing_ [8]
[59] 0.0 0.02 0.00 4860001 _i_Simulation__getBeta [59]
-----------------------------------------------
0.00 0.00 64800/604800
_i_Observer__FindAveragePlaquetteOf_ [55]
0.02 0.00 540000/604800
_i_Observer__FindPolyakovloopSumsOf_ [31]
[60] 0.0 0.02 0.00 604800
_i_Lattice__getLinkAt___inDirection_ [60]
-----------------------------------------------
0.00 0.00 1/754019
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 18/754019
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 800/754019
_i_Lattice__HeatBathUpdateUsing_ [4]
0.00 0.00 33200/754019
_i_Observer__FindAveragePlaquetteOf_ [55]
0.01 0.00 720000/754019
_i_Observer__FindPolyakovloopSumsOf_ [31]
[61] 0.0 0.01 0.00 754019 _i_Simulation__getNt [61]
-----------------------------------------------
0.00 0.00 16200/196200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.01 0.00 180000/196200
_i_Observer__FindPolyakovloopSumsOf_ [31]
[62] 0.0 0.01 0.00 196200 _i_Matrix__FindTrace [62]
-----------------------------------------------
<spontaneous>
[63] 0.0 0.01 0.00 __mpn_mul_1 [63]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[64] 0.0 0.00 0.00 1
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 8100/76949300
_i_Matrix__InitialiseToSize_ [11]
0.00 0.00 18/754019 _i_Simulation__getNt
[61]
0.00 0.00 8100/5073901 _i_Simulation__getNc
[501]
0.00 0.00 5953/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[65] 0.0 0.00 0.00 1
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 1/754019 _i_Simulation__getNt
[61]
0.00 0.00 1/4860001 _i_Simulation__getBeta
[59]
0.00 0.00 1/845955 _i_Simulation__getNs
[502]
0.00 0.00 1/5073901 _i_Simulation__getNc
[501]
0.00 0.00 1/202 _i_Simulation__getconfs
[504]
-----------------------------------------------
0.00 0.00 1/5073901
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 8100/5073901
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 25800/5073901
_i_Observer__FindAveragePlaquetteOf_ [55]
0.00 0.00 180000/5073901
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.00 0.00 4860000/5073901
_i_Matrix__KennedyPendletonUsing_ [8]
[501] 0.0 0.00 0.00 5073901 _i_Simulation__getNc [501]
-----------------------------------------------
0.00 0.00 1/845955
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 1/845955
_i_Observer__InitialiseObserver_ [511]
0.00 0.00 200/845955 main [2]
0.00 0.00 5953/845955
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 6200/845955 _i_Observer__speak
[508]
0.00 0.00 64800/845955
_i_Observer__FindAveragePlaquetteOf_ [55]
0.00 0.00 192200/845955
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.00 0.00 576600/845955
_i_Lattice__HeatBathUpdateUsing_ [4]
[502] 0.0 0.00 0.00 845955 _i_Simulation__getNs [502]
-----------------------------------------------
0.00 0.00 6000/6000
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_ [506]
[503] 0.0 0.00 0.00 6000
_i_Observer__GivePolyakovloopNumber_ [503]
-----------------------------------------------
0.00 0.00 1/202
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 201/202 main [2]
[504] 0.0 0.00 0.00 202 _i_Simulation__getconfs
[504]
-----------------------------------------------
0.00 0.00 200/200 main [2]
[505] 0.0 0.00 0.00 200
_i_Filehandler__WritePlaquettesByAsking_ [505]
0.00 0.00 200/200
_i_Observer__GiveAveragePlaquette [507]
-----------------------------------------------
0.00 0.00 200/200 main [2]
[506] 0.0 0.00 0.00 200
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_ [506]
0.00 0.00 6000/6000
_i_Observer__GivePolyakovloopNumber_ [503]
-----------------------------------------------
0.00 0.00 200/200
_i_Filehandler__WritePlaquettesByAsking_ [505]
[507] 0.0 0.00 0.00 200
_i_Observer__GiveAveragePlaquette [507]
-----------------------------------------------
0.00 0.00 200/200 main [2]
[508] 0.0 0.00 0.00 200 _i_Observer__speak [508]
0.00 0.00 6200/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.00 0.00 1/1 __do_global_ctors_aux
[638]
[509] 0.0 0.00 0.00 1 global constructors keyed
to
main [509]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[510] 0.0 0.00 0.00 1
_i_Filehandler__OpenFilesForWriting [510]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[511] 0.0 0.00 0.00 1
_i_Observer__InitialiseObserver_ [511]
0.00 0.00 1/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[512] 0.0 0.00 0.00 1
_i_Simulation__initfromCommandLineForCreation_with_ [512]
-----------------------------------------------
This table describes the call tree of the program, and was sorted by
the total amount of time spent in each function and its children.
Each entry in this table consists of several lines. The line with the
index number at the left hand margin lists the current function.
The lines above it list the functions that called this function, and
the lines below it list the functions this one called.
This line lists:
index A unique number given to each element of the table.
Index numbers are sorted numerically.
The index number is printed next to every function name
so
it is easier to look up where the function in the table.
% time This is the percentage of the `total' time that was
spent
in this function and its children. Note that due to
different viewpoints, functions excluded by options,
etc,
these numbers will NOT add up to 100%.
self This is the total amount of time spent in this function.
children This is the total amount of time propagated into this
function by its children.
called This is the number of times the function was called.
If the function called itself recursively, the number
only includes non-recursive calls, and is followed by
a `+' and the number of recursive calls.
name The name of the current function. The index number is
printed after it. If the function is a member of a
cycle, the cycle number is printed between the
function's name and the index number.
For the function's parents, the fields have the following meanings:
self This is the amount of time that was propagated directly
from the function into this parent.
children This is the amount of time that was propagated from
the function's children into this parent.
called This is the number of times this parent called the
function `/' the total number of times the function
was called. Recursive calls to the function are not
included in the number after the `/'.
name This is the name of the parent. The parent's index
number is printed after it. If the parent is a
member of a cycle, the cycle number is printed between
the name and the index number.
If the parents of the function cannot be determined, the word
`<spontaneous>' is printed in the `name' field, and all the other
fields are blank.
For the function's children, the fields have the following meanings:
self This is the amount of time that was propagated directly
from the child into the function.
children This is the amount of time that was propagated from the
child's children to the function.
called This is the number of times the function called
this child `/' the total number of times the child
was called. Recursive calls by the child are not
listed in the number after the `/'.
name This is the name of the child. The child's index
number is printed after it. If the child is a
member of a cycle, the cycle number is printed
between the name and the index number.
If there are any cycles (circles) in the call graph, there is an entry
for the cycle-as-a-whole. This entry shows who called the cycle (as
parents) and the members of the cycle (as children.) The `+' recursive
calls entry shows the number of function calls that were internal to
the cycle, and the calls entry for each member shows, for that member,
how many times it was called from other members of the cycle.
Index by function name
[509] global constructors keyed to main [19] _i_Matrix__MatrixAddedTo_
(gmon-start.c) [35] compare_strings (gmon-start.c)
[30] __drand48_iterate [5] _i_Matrix__MatrixMultipliedBy_
(gmon-start.c) [40] cos
[29] __ieee754_log [23] _i_Matrix__Unitarise (gmon-start.c)
[50] drand48
[16] __ieee754_pow [21] _i_Matrix(float, long
double,...)(...)
(gmon-start.c) [25] erand48_r
(694) __mcount_internal [56] _i_Matrix__getDimension
(gmon-start.c)
[54] finite
[63] __mpn_mul_1 [13] _i_Matrix__getMatrixEntry__
(gmon-start.c) [22] hash_string (gmon-start.c)
[45] __objc_mutex_lock [14] _i_Matrix__setMatrixEntry__toValue_
(gmon-start.c) [26] hash_value_for_key
[53] __objc_mutex_unlock [57] _i_Matrix__setToZero (gmon-start.c)
[43] isnan
[47] __objc_object_alloc [46] _i_Object(float, long
double,...)(...)
(gmon-start.c) [37] log
[39] __objc_object_dispose [49] _i_Object__init (gmon-start.c) [2]
main
[44] __objc_thread_id [55] _i_Observer__FindAveragePlaquetteOf_
(gmon-start.c) [15] malloc
[41] _c_Object__alloc (gmon-start.c) [31]
_i_Observer__FindPolyakovloopSumsOf_ (gmon-start.c) (261) mcount
[65] _i_Filehandler__InitialiseFileNames_ (gmon-start.c) [507]
_i_Observer__GiveAveragePlaquette (gmon-start.c) [1] memcpy [510]
_i_Filehandler__OpenFilesForWriting (gmon-start.c) [503]
_i_Observer__GivePolyakovloopNumber_ (gmon-start.c) [18] memset [505]
_i_Filehandler__WritePlaquettesByAsking_ (gmon-start.c) [511]
_i_Observer__InitialiseObserver_ (gmon-start.c) [51] objc_free [506]
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_
(gmon-start.c) [508] _i_Observer__speak (gmon-start.c) [33]
objc_get_class
[4] _i_Lattice__HeatBathUpdateUsing_ (gmon-start.c) [59]
_i_Simulation__getBeta (gmon-start.c) [48] objc_malloc
[64] _i_Lattice__InitialiseAccordingTo_ (gmon-start.c) [501]
_i_Simulation__getNc (gmon-start.c) [7] objc_msg_lookup
[60] _i_Lattice__getLinkAt___inDirection_ (gmon-start.c) [502]
_i_Simulation__getNs (gmon-start.c) [27] objc_msg_lookup_super
[6] _i_Matrix__CMwith_accordingto_ (gmon-start.c) [61]
_i_Simulation__getNt (gmon-start.c) [36] objc_mutex_lock
[20] _i_Matrix__DividedByScalar_ (gmon-start.c) [504]
_i_Simulation__getconfs (gmon-start.c) [32] objc_mutex_unlock
[52] _i_Matrix__FindDeterminant (gmon-start.c) [512]
_i_Simulation__initfromCommandLineForCreation_with_ (gmon-start.c) [42]
objc_thread_id
[62] _i_Matrix__FindTrace (gmon-start.c) [17] cfree [38]
object_dispose
[12] _i_Matrix__HermitianConjugate (gmon-start.c) [9] chunk_alloc [28]
pow
[11] _i_Matrix__InitialiseToSize_ (gmon-start.c) [10] chunk_free [24]
strcmp
[8] _i_Matrix__KennedyPendletonUsing_ (gmon-start.c) [34]
class_create_instance [58] write
^ permalink raw reply [flat|nested] 2+ messages in thread
* Confused by this code profile.
2004-11-02 15:04 ` Eljay Love-Jensen
@ 2004-11-02 15:22 ` Jack Liddle
0 siblings, 0 replies; 2+ messages in thread
From: Jack Liddle @ 2004-11-02 15:22 UTC (permalink / raw)
To: gcc-help
Hi there Guys.
I have a code profile which I don't quite understand.
The code is written in ObjC and compiled with GCC (gcc version 2.96
20000731 (Red Hat Linux 7.3 2.96-113))
When compiled and profiles (gcc -O3 SUnGen.m -o SUnGenmk2 -static -lm
-lobjc -pg) I get the code profile included at the bottom.
What I don't understand is what memcpy is doing there. I certainly did
call it explicitly. It remains at constant 30% of time regardless on the
number of 'updates' done (its a Monte Carlo simulation). Any idea what
this?
Also any idea what the _mcount_internal does?
Also is this the right place to ask?
Thanks for any help. Could I also ask for any responses to be sent
directly to me as well, by departments email filters are a bit to fierce
and sometimes I miss messages from this list
Thanks
Jack Liddle
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
29.96 65.24 65.24 memcpy
11.26 89.76 24.52 __mcount_internal
9.88 111.27 21.51 29748600 0.00 0.00
_i_Matrix__MatrixMultipliedBy_
7.50 127.61 16.34 objc_msg_lookup
4.69 137.82 10.21 chunk_alloc
3.41 145.25 7.43 chunk_free
3.14 152.08 6.83 76949300 0.00 0.00
_i_Matrix__InitialiseToSize_
3.03 158.67 6.59 808072200 0.00 0.00
_i_Matrix__getMatrixEntry__
2.26 163.59 4.92 535329000 0.00 0.00
_i_Matrix__setMatrixEntry__toValue_
2.12 168.21 4.62 malloc
2.08 172.74 4.53 mcount
2.03 177.17 4.43 __ieee754_pow
1.80 181.10 3.93 cfree
1.75 184.92 3.82 17852400 0.00 0.00
_i_Matrix__HermitianConjugate
1.64 188.50 3.58 memset
1.38 191.50 3.00 4860000 0.00 0.00
_i_Matrix__KennedyPendletonUsing_
1.01 193.69 2.19 76941200 0.00 0.00 _i_Matrix(float,
long double,...)(...)
0.90 195.66 1.97 6480000 0.00 0.00
_i_Matrix__MatrixAddedTo_
0.87 197.55 1.89 hash_string
0.86 199.43 1.88 200 9.40 282.55
_i_Lattice__HeatBathUpdateUsing_
0.75 201.06 1.63 1620000 0.00 0.02
_i_Matrix__CMwith_accordingto_
0.74 202.68 1.62 4860000 0.00 0.00
_i_Matrix__DividedByScalar_
0.72 204.25 1.57 strcmp
0.52 205.38 1.13 erand48_r
0.51 206.48 1.10 hash_value_for_key
0.44 207.44 0.96 4860000 0.00 0.00 _i_Matrix__Unitarise
0.44 208.40 0.96
objc_msg_lookup_super
0.33 209.12 0.72 __ieee754_log
0.33 209.84 0.72 pow
0.32 210.54 0.70 __drand48_iterate
0.29 211.18 0.64 objc_mutex_unlock
0.27 211.77 0.59 objc_get_class
0.26 212.33 0.56
class_create_instance
0.25 212.87 0.54 compare_strings
0.25 213.41 0.54 objc_mutex_lock
0.24 213.94 0.53 log
0.20 214.38 0.44 object_dispose
0.19 214.79 0.41
__objc_object_dispose
0.17 215.16 0.37 cos
0.14 215.47 0.31 _c_Object__alloc
0.13 215.75 0.28 objc_thread_id
0.11 215.99 0.24 isnan
0.10 216.20 0.21 __objc_thread_id
0.07 216.36 0.16 __objc_mutex_lock
0.07 216.52 0.16 _i_Object(float,
long double,...)(...)
0.06 216.66 0.14 __objc_object_alloc
0.06 216.79 0.13 _i_Object__init
0.06 216.92 0.13 objc_malloc
0.06 217.04 0.12 4860000 0.00 0.00
_i_Matrix__FindDeterminant
0.06 217.16 0.12 __objc_mutex_unlock
0.06 217.28 0.12 drand48
0.06 217.40 0.12 objc_free
0.04 217.49 0.09 finite
0.03 217.56 0.07 34608800 0.00 0.00
_i_Matrix__getDimension
0.03 217.63 0.07 1620000 0.00 0.00 _i_Matrix__setToZero
0.02 217.67 0.04 write
0.01 217.69 0.02 4860001 0.00 0.00
_i_Simulation__getBeta
0.01 217.71 0.02 604800 0.00 0.00
_i_Lattice__getLinkAt___inDirection_
0.00 217.72 0.01 754019 0.00 0.00 _i_Simulation__getNt
0.00 217.73 0.01 196200 0.00 0.00 _i_Matrix__FindTrace
0.00 217.74 0.01 200 0.05 3.34
_i_Observer__FindPolyakovloopSumsOf_
0.00 217.75 0.01 __mpn_mul_1
0.00 217.75 0.00 5073901 0.00 0.00 _i_Simulation__getNc
0.00 217.75 0.00 845955 0.00 0.00 _i_Simulation__getNs
0.00 217.75 0.00 6000 0.00 0.00
_i_Observer__GivePolyakovloopNumber_
0.00 217.75 0.00 202 0.00 0.00
_i_Simulation__getconfs
0.00 217.75 0.00 200 0.00 0.00
_i_Filehandler__WritePlaquettesByAsking_
0.00 217.75 0.00 200 0.00 0.00
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_
0.00 217.75 0.00 200 0.00 0.35
_i_Observer__FindAveragePlaquetteOf_
0.00 217.75 0.00 200 0.00 0.00
_i_Observer__GiveAveragePlaquette
0.00 217.75 0.00 200 0.00 0.00 _i_Observer__speak
0.00 217.75 0.00 1 0.00 0.00 global constructors
keyed to main
0.00 217.75 0.00 1 0.00 0.00
_i_Filehandler__InitialiseFileNames_
0.00 217.75 0.00 1 0.00 0.00
_i_Filehandler__OpenFilesForWriting
0.00 217.75 0.00 1 0.00 0.72
_i_Lattice__InitialiseAccordingTo_
0.00 217.75 0.00 1 0.00 0.00
_i_Observer__InitialiseObserver_
0.00 217.75 0.00 1 0.00 0.00
_i_Simulation__initfromCommandLineForCreation_with_
0.00 217.75 0.00 1 0.00 57250.00 main
% the percentage of the total running time of the
time program used by this function.
cumulative a running sum of the number of seconds accounted
seconds for by this function and those listed above it.
self the number of seconds accounted for by this
seconds function alone. This is the major sort for this
listing.
calls the number of times this function was invoked, if
this function is profiled, else blank.
self the average number of milliseconds spent in this
ms/call function per call, if this function is profiled,
else blank.
total the average number of milliseconds spent in this
ms/call function and its descendents per call, if this
function is profiled, else blank.
name the name of the function. This is the minor sort
for this listing. The index shows the location of
the function in the gprof listing. If the index is
in parenthesis it shows where it would appear in
the gprof listing if it were to be printed.
Call graph (explanation follows)
granularity: each sample hit covers 4 byte(s) for 0.01% of 188.70 seconds
index % time self children called name
<spontaneous>
[1] 34.6 65.24 0.00 memcpy [1]
-----------------------------------------------
0.00 57.25 1/1 __libc_start_main [3]
[2] 30.3 0.00 57.25 1 main [2]
1.88 54.63 200/200
_i_Lattice__HeatBathUpdateUsing_ [4]
0.01 0.66 200/200
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.00 0.07 200/200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.00 0.00 1/1
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 1/1
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 201/202 _i_Simulation__getconfs
[504]
0.00 0.00 200/200 _i_Observer__speak [508]
0.00 0.00 200/200
_i_Filehandler__WritePlaquettesByAsking_ [505]
0.00 0.00 200/845955 _i_Simulation__getNs
[502]
0.00 0.00 200/200
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_ [506]
0.00 0.00 1/1
_i_Simulation__initfromCommandLineForCreation_with_ [512]
0.00 0.00 1/1
_i_Filehandler__OpenFilesForWriting [510]
0.00 0.00 1/1
_i_Observer__InitialiseObserver_ [511]
-----------------------------------------------
<spontaneous>
[3] 30.3 0.00 57.25 __libc_start_main [3]
0.00 57.25 1/1 main [2]
-----------------------------------------------
1.88 54.63 200/200 main [2]
[4] 29.9 1.88 54.63 200
_i_Lattice__HeatBathUpdateUsing_ [4]
1.63 29.52 1620000/1620000
_i_Matrix__CMwith_accordingto_ [6]
9.37 4.68 12960000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
2.77 2.06 12960000/17852400
_i_Matrix__HermitianConjugate [12]
1.97 1.59 6480000/6480000 _i_Matrix__MatrixAddedTo_
[19]
0.97 0.00 34020200/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.07 0.00 1620000/1620000 _i_Matrix__setToZero [57]
0.00 0.00 200/76949300
_i_Matrix__InitialiseToSize_ [11]
0.00 0.00 800/754019 _i_Simulation__getNt [61]
0.00 0.00 200/34608800 _i_Matrix__getDimension
[56]
0.00 0.00 576600/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.04 0.02 48600/29748600
_i_Observer__FindAveragePlaquetteOf_ [55]
0.39 0.19 540000/29748600
_i_Observer__FindPolyakovloopSumsOf_ [31]
3.51 1.75 4860000/29748600
_i_Matrix__KennedyPendletonUsing_ [8]
8.20 4.09 11340000/29748600
_i_Matrix__CMwith_accordingto_ [6]
9.37 4.68 12960000/29748600
_i_Lattice__HeatBathUpdateUsing_ [4]
[5] 17.1 21.51 10.74 29748600
_i_Matrix__MatrixMultipliedBy_ [5]
5.80 0.00 710872200/808072200
_i_Matrix__getMatrixEntry__ [13]
2.64 0.00 29748600/76949300
_i_Matrix__InitialiseToSize_ [11]
2.24 0.00 243437400/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.06 0.00 29748600/34608800 _i_Matrix__getDimension
[56]
-----------------------------------------------
1.63 29.52 1620000/1620000
_i_Lattice__HeatBathUpdateUsing_ [4]
[6] 16.5 1.63 29.52 1620000
_i_Matrix__CMwith_accordingto_ [6]
3.00 12.19 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
8.20 4.09 11340000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
0.72 0.00 8100000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.65 0.00 22680000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.36 0.00 38880000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.32 0.00 38880000/808072200
_i_Matrix__getMatrixEntry__ [13]
-----------------------------------------------
<spontaneous>
[7] 8.7 16.34 0.00 objc_msg_lookup [7]
-----------------------------------------------
3.00 12.19 4860000/4860000
_i_Matrix__CMwith_accordingto_ [6]
[8] 8.1 3.00 12.19 4860000
_i_Matrix__KennedyPendletonUsing_ [8]
3.51 1.75 4860000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
1.62 0.61 4860000/4860000
_i_Matrix__DividedByScalar_ [20]
1.04 0.77 4860000/17852400
_i_Matrix__HermitianConjugate [12]
0.96 0.61 4860000/4860000 _i_Matrix__Unitarise [23]
0.55 0.00 19440000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.43 0.00 4860000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.18 0.00 19440000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.12 0.00 4860000/4860000
_i_Matrix__FindDeterminant [52]
0.02 0.00 4860000/4860001 _i_Simulation__getBeta
[59]
0.01 0.00 4860000/34608800 _i_Matrix__getDimension
[56]
0.00 0.00 4860000/5073901 _i_Simulation__getNc
[501]
-----------------------------------------------
<spontaneous>
[9] 5.4 10.21 0.00 chunk_alloc [9]
-----------------------------------------------
<spontaneous>
[10] 3.9 7.43 0.00 chunk_free [10]
-----------------------------------------------
0.00 0.00 200/76949300
_i_Lattice__HeatBathUpdateUsing_ [4]
0.00 0.00 8100/76949300
_i_Lattice__InitialiseAccordingTo_ [64]
0.02 0.00 180000/76949300
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.43 0.00 4860000/76949300
_i_Matrix__DividedByScalar_ [20]
0.43 0.00 4860000/76949300 _i_Matrix__Unitarise
[23]
0.43 0.00 4860000/76949300
_i_Matrix__KennedyPendletonUsing_ [8]
0.58 0.00 6480000/76949300
_i_Matrix__MatrixAddedTo_ [19]
0.72 0.00 8100000/76949300
_i_Matrix__CMwith_accordingto_ [6]
1.58 0.00 17852400/76949300
_i_Matrix__HermitianConjugate [12]
2.64 0.00 29748600/76949300
_i_Matrix__MatrixMultipliedBy_ [5]
[11] 3.6 6.83 0.00 76949300 _i_Matrix__InitialiseToSize_
[11]
-----------------------------------------------
0.01 0.01 32400/17852400
_i_Observer__FindAveragePlaquetteOf_ [55]
1.04 0.77 4860000/17852400
_i_Matrix__KennedyPendletonUsing_ [8]
2.77 2.06 12960000/17852400
_i_Lattice__HeatBathUpdateUsing_ [4]
[12] 3.5 3.82 2.84 17852400
_i_Matrix__HermitianConjugate [12]
1.58 0.00 17852400/76949300
_i_Matrix__InitialiseToSize_ [11]
1.25 0.00 136371600/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
0.32 0.00 38880000/808072200
_i_Matrix__CMwith_accordingto_ [6]
0.48 0.00 58320000/808072200
_i_Matrix__MatrixAddedTo_ [19]
5.80 0.00 710872200/808072200
_i_Matrix__MatrixMultipliedBy_ [5]
[13] 3.5 6.59 0.00 808072200 _i_Matrix__getMatrixEntry__
[13]
-----------------------------------------------
0.18 0.00 19440000/535329000
_i_Matrix__DividedByScalar_ [20]
0.18 0.00 19440000/535329000 _i_Matrix__Unitarise
[23]
0.18 0.00 19440000/535329000
_i_Matrix__KennedyPendletonUsing_ [8]
0.36 0.00 38880000/535329000
_i_Matrix__CMwith_accordingto_ [6]
0.54 0.00 58320000/535329000
_i_Matrix__MatrixAddedTo_ [19]
1.25 0.00 136371600/535329000
_i_Matrix__HermitianConjugate [12]
2.24 0.00 243437400/535329000
_i_Matrix__MatrixMultipliedBy_ [5]
[14] 2.6 4.92 0.00 535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
<spontaneous>
[15] 2.4 4.62 0.00 malloc [15]
-----------------------------------------------
<spontaneous>
[16] 2.3 4.43 0.00 __ieee754_pow [16]
-----------------------------------------------
<spontaneous>
[17] 2.1 3.93 0.00 cfree [17]
-----------------------------------------------
<spontaneous>
[18] 1.9 3.58 0.00 memset [18]
-----------------------------------------------
1.97 1.59 6480000/6480000
_i_Lattice__HeatBathUpdateUsing_ [4]
[19] 1.9 1.97 1.59 6480000 _i_Matrix__MatrixAddedTo_
[19]
0.58 0.00 6480000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.54 0.00 58320000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
0.48 0.00 58320000/808072200
_i_Matrix__getMatrixEntry__ [13]
-----------------------------------------------
1.62 0.61 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
[20] 1.2 1.62 0.61 4860000 _i_Matrix__DividedByScalar_
[20]
0.43 0.00 4860000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.18 0.00 19440000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
0.00 0.00 81000/76941200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.02 0.00 720000/76941200
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.55 0.00 19440000/76941200
_i_Matrix__KennedyPendletonUsing_ [8]
0.65 0.00 22680000/76941200
_i_Matrix__CMwith_accordingto_ [6]
0.97 0.00 34020200/76941200
_i_Lattice__HeatBathUpdateUsing_ [4]
[21] 1.2 2.19 0.00 76941200 _i_Matrix(float, long
double,...)(...) [21]
-----------------------------------------------
<spontaneous>
[22] 1.0 1.89 0.00 hash_string [22]
-----------------------------------------------
0.96 0.61 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
[23] 0.8 0.96 0.61 4860000 _i_Matrix__Unitarise [23]
0.43 0.00 4860000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.18 0.00 19440000/535329000
_i_Matrix__setMatrixEntry__toValue_ [14]
-----------------------------------------------
<spontaneous>
[24] 0.8 1.57 0.00 strcmp [24]
-----------------------------------------------
<spontaneous>
[25] 0.6 1.13 0.00 erand48_r [25]
-----------------------------------------------
<spontaneous>
[26] 0.6 1.10 0.00 hash_value_for_key [26]
-----------------------------------------------
<spontaneous>
[27] 0.5 0.96 0.00 objc_msg_lookup_super [27]
-----------------------------------------------
<spontaneous>
[28] 0.4 0.72 0.00 pow [28]
-----------------------------------------------
<spontaneous>
[29] 0.4 0.72 0.00 __ieee754_log [29]
-----------------------------------------------
<spontaneous>
[30] 0.4 0.70 0.00 __drand48_iterate [30]
-----------------------------------------------
0.01 0.66 200/200 main [2]
[31] 0.4 0.01 0.66 200
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.39 0.19 540000/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
0.02 0.00 720000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.02 0.00 540000/604800
_i_Lattice__getLinkAt___inDirection_ [60]
0.02 0.00 180000/76949300
_i_Matrix__InitialiseToSize_ [11]
0.01 0.00 720000/754019 _i_Simulation__getNt [61]
0.01 0.00 180000/196200 _i_Matrix__FindTrace [62]
0.00 0.00 192200/845955 _i_Simulation__getNs
[502]
0.00 0.00 180000/5073901 _i_Simulation__getNc
[501]
-----------------------------------------------
<spontaneous>
[32] 0.3 0.64 0.00 objc_mutex_unlock [32]
-----------------------------------------------
<spontaneous>
[33] 0.3 0.59 0.00 objc_get_class [33]
-----------------------------------------------
<spontaneous>
[34] 0.3 0.56 0.00 class_create_instance [34]
-----------------------------------------------
<spontaneous>
[35] 0.3 0.54 0.00 compare_strings [35]
-----------------------------------------------
<spontaneous>
[36] 0.3 0.54 0.00 objc_mutex_lock [36]
-----------------------------------------------
<spontaneous>
[37] 0.3 0.53 0.00 log [37]
-----------------------------------------------
<spontaneous>
[38] 0.2 0.44 0.00 object_dispose [38]
-----------------------------------------------
<spontaneous>
[39] 0.2 0.41 0.00 __objc_object_dispose [39]
-----------------------------------------------
<spontaneous>
[40] 0.2 0.37 0.00 cos [40]
-----------------------------------------------
<spontaneous>
[41] 0.2 0.31 0.00 _c_Object__alloc [41]
-----------------------------------------------
<spontaneous>
[42] 0.1 0.28 0.00 objc_thread_id [42]
-----------------------------------------------
<spontaneous>
[43] 0.1 0.24 0.00 isnan [43]
-----------------------------------------------
<spontaneous>
[44] 0.1 0.21 0.00 __objc_thread_id [44]
-----------------------------------------------
<spontaneous>
[45] 0.1 0.16 0.00 __objc_mutex_lock [45]
-----------------------------------------------
<spontaneous>
[46] 0.1 0.16 0.00 _i_Object(float, long
double,...)(...) [46]
-----------------------------------------------
<spontaneous>
[47] 0.1 0.14 0.00 __objc_object_alloc [47]
-----------------------------------------------
<spontaneous>
[48] 0.1 0.13 0.00 objc_malloc [48]
-----------------------------------------------
<spontaneous>
[49] 0.1 0.13 0.00 _i_Object__init [49]
-----------------------------------------------
<spontaneous>
[50] 0.1 0.12 0.00 drand48 [50]
-----------------------------------------------
<spontaneous>
[51] 0.1 0.12 0.00 objc_free [51]
-----------------------------------------------
0.12 0.00 4860000/4860000
_i_Matrix__KennedyPendletonUsing_ [8]
[52] 0.1 0.12 0.00 4860000 _i_Matrix__FindDeterminant
[52]
-----------------------------------------------
<spontaneous>
[53] 0.1 0.12 0.00 __objc_mutex_unlock [53]
-----------------------------------------------
<spontaneous>
[54] 0.0 0.09 0.00 finite [54]
-----------------------------------------------
0.00 0.07 200/200 main [2]
[55] 0.0 0.00 0.07 200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.04 0.02 48600/29748600
_i_Matrix__MatrixMultipliedBy_ [5]
0.01 0.01 32400/17852400
_i_Matrix__HermitianConjugate [12]
0.00 0.00 81000/76941200 _i_Matrix(float, long
double,...)(...) [21]
0.00 0.00 64800/604800
_i_Lattice__getLinkAt___inDirection_ [60]
0.00 0.00 16200/196200 _i_Matrix__FindTrace [62]
0.00 0.00 33200/754019 _i_Simulation__getNt [61]
0.00 0.00 64800/845955 _i_Simulation__getNs
[502]
0.00 0.00 25800/5073901 _i_Simulation__getNc
[501]
-----------------------------------------------
0.00 0.00 200/34608800
_i_Lattice__HeatBathUpdateUsing_ [4]
0.01 0.00 4860000/34608800
_i_Matrix__KennedyPendletonUsing_ [8]
0.06 0.00 29748600/34608800
_i_Matrix__MatrixMultipliedBy_ [5]
[56] 0.0 0.07 0.00 34608800 _i_Matrix__getDimension [56]
-----------------------------------------------
0.07 0.00 1620000/1620000
_i_Lattice__HeatBathUpdateUsing_ [4]
[57] 0.0 0.07 0.00 1620000 _i_Matrix__setToZero [57]
-----------------------------------------------
<spontaneous>
[58] 0.0 0.04 0.00 write [58]
-----------------------------------------------
0.00 0.00 1/4860001
_i_Filehandler__InitialiseFileNames_ [65]
0.02 0.00 4860000/4860001
_i_Matrix__KennedyPendletonUsing_ [8]
[59] 0.0 0.02 0.00 4860001 _i_Simulation__getBeta [59]
-----------------------------------------------
0.00 0.00 64800/604800
_i_Observer__FindAveragePlaquetteOf_ [55]
0.02 0.00 540000/604800
_i_Observer__FindPolyakovloopSumsOf_ [31]
[60] 0.0 0.02 0.00 604800
_i_Lattice__getLinkAt___inDirection_ [60]
-----------------------------------------------
0.00 0.00 1/754019
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 18/754019
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 800/754019
_i_Lattice__HeatBathUpdateUsing_ [4]
0.00 0.00 33200/754019
_i_Observer__FindAveragePlaquetteOf_ [55]
0.01 0.00 720000/754019
_i_Observer__FindPolyakovloopSumsOf_ [31]
[61] 0.0 0.01 0.00 754019 _i_Simulation__getNt [61]
-----------------------------------------------
0.00 0.00 16200/196200
_i_Observer__FindAveragePlaquetteOf_ [55]
0.01 0.00 180000/196200
_i_Observer__FindPolyakovloopSumsOf_ [31]
[62] 0.0 0.01 0.00 196200 _i_Matrix__FindTrace [62]
-----------------------------------------------
<spontaneous>
[63] 0.0 0.01 0.00 __mpn_mul_1 [63]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[64] 0.0 0.00 0.00 1
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 8100/76949300
_i_Matrix__InitialiseToSize_ [11]
0.00 0.00 18/754019 _i_Simulation__getNt [61]
0.00 0.00 8100/5073901 _i_Simulation__getNc
[501]
0.00 0.00 5953/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[65] 0.0 0.00 0.00 1
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 1/754019 _i_Simulation__getNt [61]
0.00 0.00 1/4860001 _i_Simulation__getBeta
[59]
0.00 0.00 1/845955 _i_Simulation__getNs
[502]
0.00 0.00 1/5073901 _i_Simulation__getNc
[501]
0.00 0.00 1/202 _i_Simulation__getconfs
[504]
-----------------------------------------------
0.00 0.00 1/5073901
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 8100/5073901
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 25800/5073901
_i_Observer__FindAveragePlaquetteOf_ [55]
0.00 0.00 180000/5073901
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.00 0.00 4860000/5073901
_i_Matrix__KennedyPendletonUsing_ [8]
[501] 0.0 0.00 0.00 5073901 _i_Simulation__getNc [501]
-----------------------------------------------
0.00 0.00 1/845955
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 1/845955
_i_Observer__InitialiseObserver_ [511]
0.00 0.00 200/845955 main [2]
0.00 0.00 5953/845955
_i_Lattice__InitialiseAccordingTo_ [64]
0.00 0.00 6200/845955 _i_Observer__speak [508]
0.00 0.00 64800/845955
_i_Observer__FindAveragePlaquetteOf_ [55]
0.00 0.00 192200/845955
_i_Observer__FindPolyakovloopSumsOf_ [31]
0.00 0.00 576600/845955
_i_Lattice__HeatBathUpdateUsing_ [4]
[502] 0.0 0.00 0.00 845955 _i_Simulation__getNs [502]
-----------------------------------------------
0.00 0.00 6000/6000
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_ [506]
[503] 0.0 0.00 0.00 6000
_i_Observer__GivePolyakovloopNumber_ [503]
-----------------------------------------------
0.00 0.00 1/202
_i_Filehandler__InitialiseFileNames_ [65]
0.00 0.00 201/202 main [2]
[504] 0.0 0.00 0.00 202 _i_Simulation__getconfs [504]
-----------------------------------------------
0.00 0.00 200/200 main [2]
[505] 0.0 0.00 0.00 200
_i_Filehandler__WritePlaquettesByAsking_ [505]
0.00 0.00 200/200
_i_Observer__GiveAveragePlaquette [507]
-----------------------------------------------
0.00 0.00 200/200 main [2]
[506] 0.0 0.00 0.00 200
_i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_ [506]
0.00 0.00 6000/6000
_i_Observer__GivePolyakovloopNumber_ [503]
-----------------------------------------------
0.00 0.00 200/200
_i_Filehandler__WritePlaquettesByAsking_ [505]
[507] 0.0 0.00 0.00 200
_i_Observer__GiveAveragePlaquette [507]
-----------------------------------------------
0.00 0.00 200/200 main [2]
[508] 0.0 0.00 0.00 200 _i_Observer__speak [508]
0.00 0.00 6200/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.00 0.00 1/1 __do_global_ctors_aux
[638]
[509] 0.0 0.00 0.00 1 global constructors keyed to
main [509]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[510] 0.0 0.00 0.00 1
_i_Filehandler__OpenFilesForWriting [510]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[511] 0.0 0.00 0.00 1
_i_Observer__InitialiseObserver_ [511]
0.00 0.00 1/845955 _i_Simulation__getNs
[502]
-----------------------------------------------
0.00 0.00 1/1 main [2]
[512] 0.0 0.00 0.00 1
_i_Simulation__initfromCommandLineForCreation_with_ [512]
-----------------------------------------------
This table describes the call tree of the program, and was sorted by
the total amount of time spent in each function and its children.
Each entry in this table consists of several lines. The line with the
index number at the left hand margin lists the current function.
The lines above it list the functions that called this function,
and the lines below it list the functions this one called.
This line lists:
index A unique number given to each element of the table.
Index numbers are sorted numerically.
The index number is printed next to every function name so
it is easier to look up where the function in the table.
% time This is the percentage of the `total' time that was spent
in this function and its children. Note that due to
different viewpoints, functions excluded by options, etc,
these numbers will NOT add up to 100%.
self This is the total amount of time spent in this function.
children This is the total amount of time propagated into this
function by its children.
called This is the number of times the function was called.
If the function called itself recursively, the number
only includes non-recursive calls, and is followed by
a `+' and the number of recursive calls.
name The name of the current function. The index number is
printed after it. If the function is a member of a
cycle, the cycle number is printed between the
function's name and the index number.
For the function's parents, the fields have the following meanings:
self This is the amount of time that was propagated directly
from the function into this parent.
children This is the amount of time that was propagated from
the function's children into this parent.
called This is the number of times this parent called the
function `/' the total number of times the function
was called. Recursive calls to the function are not
included in the number after the `/'.
name This is the name of the parent. The parent's index
number is printed after it. If the parent is a
member of a cycle, the cycle number is printed between
the name and the index number.
If the parents of the function cannot be determined, the word
`<spontaneous>' is printed in the `name' field, and all the other
fields are blank.
For the function's children, the fields have the following meanings:
self This is the amount of time that was propagated directly
from the child into the function.
children This is the amount of time that was propagated from the
child's children to the function.
called This is the number of times the function called
this child `/' the total number of times the child
was called. Recursive calls by the child are not
listed in the number after the `/'.
name This is the name of the child. The child's index
number is printed after it. If the child is a
member of a cycle, the cycle number is printed
between the name and the index number.
If there are any cycles (circles) in the call graph, there is an
entry for the cycle-as-a-whole. This entry shows who called the
cycle (as parents) and the members of the cycle (as children.)
The `+' recursive calls entry shows the number of function calls that
were internal to the cycle, and the calls entry for each member shows,
for that member, how many times it was called from other members of
the cycle.
Index by function name
[509] global constructors keyed to main [19] _i_Matrix__MatrixAddedTo_
(gmon-start.c) [35] compare_strings (gmon-start.c)
[30] __drand48_iterate [5] _i_Matrix__MatrixMultipliedBy_
(gmon-start.c) [40] cos
[29] __ieee754_log [23] _i_Matrix__Unitarise (gmon-start.c)
[50] drand48
[16] __ieee754_pow [21] _i_Matrix(float, long double,...)(...)
(gmon-start.c) [25] erand48_r
(694) __mcount_internal [56] _i_Matrix__getDimension (gmon-start.c)
[54] finite
[63] __mpn_mul_1 [13] _i_Matrix__getMatrixEntry__
(gmon-start.c) [22] hash_string (gmon-start.c)
[45] __objc_mutex_lock [14] _i_Matrix__setMatrixEntry__toValue_
(gmon-start.c) [26] hash_value_for_key
[53] __objc_mutex_unlock [57] _i_Matrix__setToZero (gmon-start.c)
[43] isnan
[47] __objc_object_alloc [46] _i_Object(float, long double,...)(...)
(gmon-start.c) [37] log
[39] __objc_object_dispose [49] _i_Object__init (gmon-start.c) [2] main
[44] __objc_thread_id [55] _i_Observer__FindAveragePlaquetteOf_
(gmon-start.c) [15] malloc
[41] _c_Object__alloc (gmon-start.c) [31]
_i_Observer__FindPolyakovloopSumsOf_ (gmon-start.c) (261) mcount
[65] _i_Filehandler__InitialiseFileNames_ (gmon-start.c) [507]
_i_Observer__GiveAveragePlaquette (gmon-start.c) [1] memcpy
[510] _i_Filehandler__OpenFilesForWriting (gmon-start.c) [503]
_i_Observer__GivePolyakovloopNumber_ (gmon-start.c) [18] memset
[505] _i_Filehandler__WritePlaquettesByAsking_ (gmon-start.c) [511]
_i_Observer__InitialiseObserver_ (gmon-start.c) [51] objc_free
[506] _i_Filehandler__WritePolyakovloopsByAsking_theyarethislong_
(gmon-start.c) [508] _i_Observer__speak (gmon-start.c) [33] objc_get_class
[4] _i_Lattice__HeatBathUpdateUsing_ (gmon-start.c) [59]
_i_Simulation__getBeta (gmon-start.c) [48] objc_malloc
[64] _i_Lattice__InitialiseAccordingTo_ (gmon-start.c) [501]
_i_Simulation__getNc (gmon-start.c) [7] objc_msg_lookup
[60] _i_Lattice__getLinkAt___inDirection_ (gmon-start.c) [502]
_i_Simulation__getNs (gmon-start.c) [27] objc_msg_lookup_super
[6] _i_Matrix__CMwith_accordingto_ (gmon-start.c) [61]
_i_Simulation__getNt (gmon-start.c) [36] objc_mutex_lock
[20] _i_Matrix__DividedByScalar_ (gmon-start.c) [504]
_i_Simulation__getconfs (gmon-start.c) [32] objc_mutex_unlock
[52] _i_Matrix__FindDeterminant (gmon-start.c) [512]
_i_Simulation__initfromCommandLineForCreation_with_ (gmon-start.c) [42]
objc_thread_id
[62] _i_Matrix__FindTrace (gmon-start.c) [17] cfree [38]
object_dispose
[12] _i_Matrix__HermitianConjugate (gmon-start.c) [9] chunk_alloc [28]
pow
[11] _i_Matrix__InitialiseToSize_ (gmon-start.c) [10] chunk_free [24]
strcmp
[8] _i_Matrix__KennedyPendletonUsing_ (gmon-start.c) [34]
class_create_instance [58] write
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-11-02 17:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-02 17:54 Confused by this code profile Martin York
-- strict thread matches above, loose matches on Subject: below --
2004-11-02 9:32 Problem linking with g++ v3.4.2 Ricardo Fdez
2004-11-02 15:04 ` Eljay Love-Jensen
2004-11-02 15:22 ` Confused by this code profile Jack Liddle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).