Ho appena controllato la pagina Man su campione
e mi sembra un campionatore di stack di chiamate semi-decente.
Afferma che il suo output è l'albero delle chiamate, quindi non dovrebbe essere troppo difficile da comprendere.
Dico semi-decente perché collezionare campioni di call-stack è una buona cosa. Le critiche sono:
-
Non dice se raccoglie campioni quando il processo è in una chiamata di sistema, come ad esempio aspettare l'I / O. È importante farlo, a meno che tu non voglia essere cieco per l'I / O inutile.
-
Cade per la finzione che ciò che conta è la precisione dei tempi e non si vuole perdere nessuna funzione, quindi campioni deve essere molto frequente . È una finzione perché l'obiettivo è quello di trovare grandi cose, non di misurare piccole cose. Qualsiasi funzione che non appaia certamente non costa abbastanza a cui preoccuparsi.
La conseguenza di questa finzione è che ci sono troppi esempi da guardare, quindi deve cercare di trovare un modo per riassumerli, quindi sceglie un call-tree. Il fatto è che, se ti è permesso effettivamente esaminare un piccolo numero di campioni (come 10 o 20), vedrai esattamente i motivi della lentezza. Il riassunto è il problema. Spalma e nasconde le informazioni.
Quindi, il long-and-short è, sembra essere un buon strumento per raccogliere campioni di call-stack.
Se riesci a capire come effettivamente vederne una selezione, ti dirà qual è il problema.