priority queue with binary heap test : 1000000 elements (profile version)
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
26.62 0.37 0.37 68185770 0.00 0.00 minElem
22.30 0.68 0.31 1000000 0.00 0.00 deleteMinElem
16.19 0.91 0.23 36092885 0.00 0.00 mergeHeaps
13.31 1.09 0.18 34092885 0.00 0.00 joinHeaps
6.47 1.18 0.09 34092885 0.00 0.00 compare
4.32 1.24 0.06 70185772 0.00 0.00 isEmptyHeap
3.60 1.29 0.05 1000000 0.00 0.00 mkOneElemHeap
2.52 1.32 0.04 greaterThanOrEqual
1.80 1.35 0.03 1000000 0.00 0.00 insertElem
1.44 1.37 0.02 1 20.00 560.00 addElems
1.44 1.39 0.02 1 20.00 795.00 delElems
0.00 1.39 0.00 2000001 0.00 0.00 mkEmptyHeap

Call graph
granularity: each sample hit covers 4 byte(s) for 0.72% of 1.39 seconds
index % time self children called name
<spontaneous>
[1] 97.5 0.00 1.35 main [1]
0.02 0.77 1/1 delElems [3]
0.02 0.54 1/1 addElems [6]
0.00 0.00 1/70185772 isEmptyHeap [11]
0.00 0.00 1/2000001 mkEmptyHeap [14]
-----------------------------------------------
[2] 66.9 0.41 0.52 2000000+68185770 <cycle 1 as a whole> [2]
0.23 0.52 36092885 mergeHeaps <cycle 1> [5]
0.18 0.00 34092885 joinHeaps <cycle 1> [9]
-----------------------------------------------
0.02 0.77 1/1 main [1]
[3] 57.2 0.02 0.77 1 delElems [3]
0.31 0.46 1000000/1000000 deleteMinElem [4]
-----------------------------------------------
0.31 0.46 1000000/1000000 delElems [3]
[4] 55.8 0.31 0.46 1000000 deleteMinElem [4]
0.20 0.26 1000000/2000000 mergeHeaps <cycle 1> [5]
-----------------------------------------------
34092885 joinHeaps <cycle 1> [9]
0.20 0.26 1000000/2000000 deleteMinElem [4]
0.20 0.26 1000000/2000000 insertElem [7]
[5] 53.6 0.23 0.52 36092885 mergeHeaps <cycle 1> [5]
0.37 0.00 68185770/68185770 minElem [8]
0.09 0.00 34092885/34092885 compare [10]
0.06 0.00 70185771/70185772 isEmptyHeap [11]
34092885 joinHeaps <cycle 1> [9]
-----------------------------------------------
0.02 0.54 1/1 main [1]
[6] 40.3 0.02 0.54 1 addElems [6]
0.03 0.51 1000000/1000000 insertElem [7]
-----------------------------------------------
0.03 0.51 1000000/1000000 addElems [6]
[7] 38.8 0.03 0.51 1000000 insertElem [7]
0.20 0.26 1000000/2000000 mergeHeaps <cycle 1> [5]
0.05 0.00 1000000/1000000 mkOneElemHeap [12]
-----------------------------------------------
0.37 0.00 68185770/68185770 mergeHeaps <cycle 1> [5]
[8] 26.6 0.37 0.00 68185770 minElem [8]
-----------------------------------------------
34092885 mergeHeaps <cycle 1> [5]
[9] 13.3 0.18 0.00 34092885 joinHeaps <cycle 1> [9]
34092885 mergeHeaps <cycle 1> [5]
-----------------------------------------------
0.09 0.00 34092885/34092885 mergeHeaps <cycle 1> [5]
[10] 6.5 0.09 0.00 34092885 compare [10]
-----------------------------------------------
0.00 0.00 1/70185772 main [1]
0.06 0.00 70185771/70185772 mergeHeaps <cycle 1> [5]
[11] 4.3 0.06 0.00 70185772 isEmptyHeap [11]
-----------------------------------------------
0.05 0.00 1000000/1000000 insertElem [7]
[12] 3.6 0.05 0.00 1000000 mkOneElemHeap [12]
0.00 0.00 2000000/2000001 mkEmptyHeap [14]
-----------------------------------------------
<spontaneous>
[13] 2.5 0.04 0.00 greaterThanOrEqual [13]
-----------------------------------------------
0.00 0.00 1/2000001 main [1]
0.00 0.00 2000000/2000001 mkOneElemHeap [12]
[14] 0.0 0.00 0.00 2000001 mkEmptyHeap [14]
-----------------------------------------------

Index by function name
[6] addElems [7] insertElem [14] mkEmptyHeap
[10] compare [11] isEmptyHeap [12] mkOneElemHeap
[3] delElems [9] joinHeaps [2] <cycle 1>
[4] deleteMinElem [5] mergeHeaps
[13] greaterThanOrEqual [8] minElem