statistiche è divertente e interessante, ma per tuning delle prestazioni, non ne hai bisogno. Here's an explanation why, ma una semplice analogia potrebbe dare l'idea.
Un problema di prestazioni è come un oggetto (che potrebbe essere effettivamente più oggetti connessi) sepolto sotto un acro di neve, e si sta cercando di trovarlo sondando a caso con un bastone. Se il tuo bastone lo colpisce un paio di volte, lo hai trovato - la sua dimensione esatta non è così importante. (Se vuoi davvero una stima migliore di quanto è grande, prendi più sonde, ma questo non cambierà la sua dimensione.) Il numero di volte che devi sondare la neve prima di trovarlo dipende da quanta parte dell'area la neve è sotto
Una volta trovato, è possibile estrarlo. Ora c'è meno neve, ma potrebbero esserci più oggetti sotto la neve che rimane. Quindi con più sondaggi, puoi trovare e rimuovere anche quelli. In questo modo, puoi andare avanti fino a quando non riesci a trovare altro che puoi rimuovere.
Nel software, la neve è il tempo, e il sondaggio sta prendendo campioni a caso della pila di chiamate. In questo modo, è possibile trovare e rimuovere più problemi, risultando in large speedup factors.
E le statistiche non hanno nulla a che fare con questo.
fonte
2010-01-28 13:33:36
Questo è davvero alla fine come lo faccio, e probabilmente hai ragione. Tuttavia, mi piacerebbe saperne di più sulle statistiche, e questo sembra essere un buon posto per cercare di renderlo pratico. –
++ Neil ha ragione, anche se per lo più guardo il livello della linea, non il livello della funzione. (E, Neil, spero che per "percentuale di tempo" tu volessi dire "tempo totale", non "tempo di auto", e spero che intendessi "tempo dell'orologio a muro", non solo CPU, perché il software diventa grande, spreco di tempo diventa sempre più a causa di chiamate di funzione non necessarie, e alcune di queste fanno I/O.) –