Stai ottenendo ottime risposte qui.
I forum stack * sono un'ottima fonte di informazioni.
Sebbene ogni lingua abbia trucchi per le prestazioni, la chiave per ottenere buone prestazioni è la semplicità del design.
Quindi, dopo il software è in esecuzione (non quando si sta codificando) gestire le prestazioni.
È improduttivo andare a guardare il codice dell'occhio e indovinare se dovresti usare il trucco X nella posizione Y.
Lascia che il programma in esecuzione ti dica cosa aggiustare.
(Lo sanno tutti, ma usano ancora il metodo della mira pronta al fuoco.)
Se impari questa tecnica per la diagnosi delle prestazioni, lo troverai utile, come molti altri.
Fondamentalmente, interrompi il programma a caso più volte, e ogni volta capisci in dettaglio cosa sta facendo.
Non sfiorare.
Comprendi cosa sta facendo e perché.
Se vedi che sta facendo qualcosa per due volte, non importa come lo descrivi , questa attività richiede molto tempo.
Prima lo vedi, più è significativo.
Tecnicamente, se alcune attività consumano frazione p di tempo, il numero medio di campioni necessari prima di vederlo due volte è 2 / p .
Quindi se p è del 20%, in media ci vorranno 10 campioni per vederlo due volte.
(Tecnicamente, questo deriva dalla distribuzione binomiale negativa, dove se una moneta ha equità p , il numero di code che si otterranno prima delle teste x è, in media, x (1-p) / p ).
Il punto di questo approccio è che, piuttosto che misurare varie cose e sperare di concentrarsi su qualche codice problema, ti mostra il problema in dettagli cristallini, anche se non è localizzato in un particolare pezzo di codice.
Può trovare problemi che non puoi trovare in altro modo.