X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/8e58a1769ce5e492dd68904dfc81b6e077fc2a3a..e02c731dfbb288c736f2cd09a9b6df0507c59ddd:/onak.gprof diff --git a/onak.gprof b/onak.gprof new file mode 100644 index 0000000..0e8b40b --- /dev/null +++ b/onak.gprof @@ -0,0 +1,295 @@ +Flat profile: + +Each sample counts as 0.01 seconds. + % cumulative self self total + time seconds seconds calls us/call us/call name + 44.57 0.41 0.41 44208 9.27 14.02 transform + 22.83 0.62 0.21 9902592 0.02 0.02 rol + 9.78 0.71 0.09 31610 2.85 19.66 sha1_write + 7.61 0.78 0.07 33623 2.08 2.08 stdin_getchar + 2.17 0.80 0.02 6937 2.88 106.67 get_keyid + 2.17 0.82 0.02 1690 11.83 17.75 write_openpgp_stream + 2.17 0.84 0.02 Letext + 1.09 0.85 0.01 30179 0.33 0.33 keydb_putchar + 1.09 0.86 0.01 17848 0.56 0.56 packet_dup + 1.09 0.87 0.01 6322 1.58 35.26 sha1_final + 1.09 0.88 0.01 1690 5.92 8.88 flatten_publickey + 1.09 0.89 0.01 1690 5.92 5.92 keyuids + 1.09 0.90 0.01 1690 5.92 262.98 store_key + 1.09 0.91 0.01 1 10000.00 10000.00 free_publickey + 1.09 0.92 0.01 1 10000.00 815000.00 update_keys + 0.00 0.92 0.00 17848 0.00 0.00 free_packet + 0.00 0.92 0.00 6322 0.00 0.00 sha1_init + 0.00 0.92 0.00 6322 0.00 0.00 sha1_read + 0.00 0.92 0.00 3438 0.00 0.00 free_packet_list + 0.00 0.92 0.00 3227 0.00 0.00 free_signedpacket_list + 0.00 0.92 0.00 1690 0.00 0.00 endtrans + 0.00 0.92 0.00 1690 0.00 0.00 fetch_key + 0.00 0.92 0.00 1690 0.00 0.00 spsize + 0.00 0.92 0.00 1690 0.00 0.00 starttrans + 0.00 0.92 0.00 1 0.00 0.00 cleanupdb + 0.00 0.92 0.00 1 0.00 0.00 initdb + 0.00 0.92 0.00 1 0.00 5000.00 parse_keys + 0.00 0.92 0.00 1 0.00 70000.00 read_openpgp_stream + + % 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 1.09% of 0.92 seconds + +index % time self children called name + +[1] 97.8 0.00 0.90 main [1] + 0.01 0.81 1/1 update_keys [2] + 0.00 0.07 1/1 read_openpgp_stream [10] + 0.01 0.00 1/1 free_publickey [17] + 0.00 0.01 1/1 parse_keys [18] + 0.00 0.00 1/3438 free_packet_list [22] + 0.00 0.00 1/1 initdb [29] + 0.00 0.00 1/1 cleanupdb [28] +----------------------------------------------- + 0.01 0.81 1/1 main [1] +[2] 88.6 0.01 0.81 1 update_keys [2] + 0.01 0.43 1690/1690 store_key [6] + 0.01 0.35 3380/6937 get_keyid [3] + 0.00 0.00 1690/1690 starttrans [27] + 0.00 0.00 1690/1690 fetch_key [25] + 0.00 0.00 1690/1690 endtrans [24] +----------------------------------------------- + 0.01 0.35 3380/6937 update_keys [2] + 0.01 0.37 3557/6937 store_key [6] +[3] 80.4 0.02 0.72 6937 get_keyid [3] + 0.07 0.43 25288/31610 sha1_write [4] + 0.01 0.21 6322/6322 sha1_final [7] + 0.00 0.00 6322/6322 sha1_init [20] + 0.00 0.00 6322/6322 sha1_read [21] +----------------------------------------------- + 18966 sha1_write [4] + 0.02 0.11 6322/31610 sha1_final [7] + 0.07 0.43 25288/31610 get_keyid [3] +[4] 67.5 0.09 0.53 31610+18966 sha1_write [4] + 0.35 0.18 37886/44208 transform [5] + 18966 sha1_write [4] +----------------------------------------------- + 0.06 0.03 6322/44208 sha1_final [7] + 0.35 0.18 37886/44208 sha1_write [4] +[5] 67.4 0.41 0.21 44208 transform [5] + 0.21 0.00 9902592/9902592 rol [8] +----------------------------------------------- + 0.01 0.43 1690/1690 update_keys [2] +[6] 48.3 0.01 0.43 1690 store_key [6] + 0.01 0.37 3557/6937 get_keyid [3] + 0.02 0.01 1690/1690 write_openpgp_stream [11] + 0.01 0.01 1690/1690 flatten_publickey [13] + 0.01 0.00 1690/1690 keyuids [16] +----------------------------------------------- + 0.01 0.21 6322/6322 get_keyid [3] +[7] 24.2 0.01 0.21 6322 sha1_final [7] + 0.02 0.11 6322/31610 sha1_write [4] + 0.06 0.03 6322/44208 transform [5] +----------------------------------------------- + 0.21 0.00 9902592/9902592 transform [5] +[8] 22.8 0.21 0.00 9902592 rol [8] +----------------------------------------------- + 0.07 0.00 33623/33623 read_openpgp_stream [10] +[9] 7.6 0.07 0.00 33623 stdin_getchar [9] +----------------------------------------------- + 0.00 0.07 1/1 main [1] +[10] 7.6 0.00 0.07 1 read_openpgp_stream [10] + 0.07 0.00 33623/33623 stdin_getchar [9] +----------------------------------------------- + 0.02 0.01 1690/1690 store_key [6] +[11] 3.3 0.02 0.01 1690 write_openpgp_stream [11] + 0.01 0.00 30179/30179 keydb_putchar [14] +----------------------------------------------- + +[12] 2.2 0.02 0.00 Letext [12] +----------------------------------------------- + 0.01 0.01 1690/1690 store_key [6] +[13] 1.6 0.01 0.01 1690 flatten_publickey [13] + 0.01 0.00 8924/17848 packet_dup [15] +----------------------------------------------- + 0.01 0.00 30179/30179 write_openpgp_stream [11] +[14] 1.1 0.01 0.00 30179 keydb_putchar [14] +----------------------------------------------- + 0.01 0.00 8924/17848 parse_keys [18] + 0.01 0.00 8924/17848 flatten_publickey [13] +[15] 1.1 0.01 0.00 17848 packet_dup [15] +----------------------------------------------- + 0.01 0.00 1690/1690 store_key [6] +[16] 1.1 0.01 0.00 1690 keyuids [16] + 0.00 0.00 1690/1690 spsize [26] +----------------------------------------------- + 0.01 0.00 1/1 main [1] +[17] 1.1 0.01 0.00 1 free_publickey [17] + 0.00 0.00 3227/3227 free_signedpacket_list [23] + 0.00 0.00 1690/17848 free_packet [19] + 0.00 0.00 41/3438 free_packet_list [22] +----------------------------------------------- + 0.00 0.01 1/1 main [1] +[18] 0.5 0.00 0.01 1 parse_keys [18] + 0.01 0.00 8924/17848 packet_dup [15] +----------------------------------------------- + 0.00 0.00 1690/17848 free_publickey [17] + 0.00 0.00 3410/17848 free_signedpacket_list [23] + 0.00 0.00 12748/17848 free_packet_list [22] +[19] 0.0 0.00 0.00 17848 free_packet [19] +----------------------------------------------- + 0.00 0.00 6322/6322 get_keyid [3] +[20] 0.0 0.00 0.00 6322 sha1_init [20] +----------------------------------------------- + 0.00 0.00 6322/6322 get_keyid [3] +[21] 0.0 0.00 0.00 6322 sha1_read [21] +----------------------------------------------- + 0.00 0.00 1/3438 main [1] + 0.00 0.00 41/3438 free_publickey [17] + 0.00 0.00 3396/3438 free_signedpacket_list [23] +[22] 0.0 0.00 0.00 3438 free_packet_list [22] + 0.00 0.00 12748/17848 free_packet [19] +----------------------------------------------- + 0.00 0.00 3227/3227 free_publickey [17] +[23] 0.0 0.00 0.00 3227 free_signedpacket_list [23] + 0.00 0.00 3410/17848 free_packet [19] + 0.00 0.00 3396/3438 free_packet_list [22] +----------------------------------------------- + 0.00 0.00 1690/1690 update_keys [2] +[24] 0.0 0.00 0.00 1690 endtrans [24] +----------------------------------------------- + 0.00 0.00 1690/1690 update_keys [2] +[25] 0.0 0.00 0.00 1690 fetch_key [25] +----------------------------------------------- + 0.00 0.00 1690/1690 keyuids [16] +[26] 0.0 0.00 0.00 1690 spsize [26] +----------------------------------------------- + 0.00 0.00 1690/1690 update_keys [2] +[27] 0.0 0.00 0.00 1690 starttrans [27] +----------------------------------------------- + 0.00 0.00 1/1 main [1] +[28] 0.0 0.00 0.00 1 cleanupdb [28] +----------------------------------------------- + 0.00 0.00 1/1 main [1] +[29] 0.0 0.00 0.00 1 initdb [29] +----------------------------------------------- + + 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 + `' 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 + + [12] Letext (bithelp.h) [29] initdb [4] sha1_write + [28] cleanupdb [14] keydb_putchar (keydb_pg.c) [26] spsize + [24] endtrans [16] keyuids [27] starttrans + [25] fetch_key [15] packet_dup [9] stdin_getchar + [13] flatten_publickey [18] parse_keys [6] store_key + [19] free_packet [10] read_openpgp_stream [5] transform (sha.c) + [22] free_packet_list [8] rol (bithelp.h) [2] update_keys + [17] free_publickey [7] sha1_final [11] write_openpgp_stream + [23] free_signedpacket_list [20] sha1_init + [3] get_keyid [21] sha1_read