Sto praticando algoritmo e strutture dati. Pertanto, continuo a profilare i miei programmi. Ecco un esempio di output di gprof:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ns/call ns/call name
29.76 2.58 2.58 _IO_vfscanf_internal
14.30 3.82 1.24 ____strtof_l_internal
11.71 4.84 1.02 memcpy
7.84 5.52 0.68 8400000 80.95 80.95 insertorupdate
5.94 6.03 0.52 _int_malloc
5.77 6.53 0.50 round_and_return
3.81 6.86 0.33 _IO_sputbackc
3.23 7.14 0.28 strlen
2.88 7.39 0.25 __strcmp_ia32
2.13 7.58 0.19 __isoc99_scanf
2.13 7.76 0.19 fgets
2.02 7.94 0.18 _IO_getline_info
1.27 8.05 0.11 __mpn_lshift
1.21 8.15 0.11 __memchr_sse2_bsf
0.87 8.23 0.08 malloc
... rest ...
Ma ho trovato difficile capire cosa significhi. Ad esempio, il mio programma impiega molto tempo in funzioni standard, immagino che dovrebbe essere buono, giusto? Perché, se una delle mie funzioni stesse consumando la maggior parte del tempo, ciò poteva significare che stavo facendo qualcosa di sbagliato. Ma come ho detto, non sono sicuro di interpretarlo correttamente, quindi qualsiasi suggerimento o suggerimento per leggerlo è il benvenuto.