Suggerimenti sulle prestazioni Negli anni, il mio collega Sanjay Ghemawat e io abbiamo fatto un bel po' di immersioni nell'ottimizzazione delle prestazioni di vari pezzi di codice. Abbiamo scritto un documento interno sui Suggerimenti per le prestazioni un paio di anni fa come modo per identificare alcuni principi generali e recentemente abbiamo pubblicato una versione di esso esternamente. Ci farebbe piacere ricevere qualsiasi feedback tu possa avere! Leggi il documento completo su:
Abbiamo cercato di fornire esempi concreti delle varie tecniche. Alcuni sono descrizioni ad alto livello di un insieme di miglioramenti delle prestazioni, come questo insieme di modifiche del 2001:
Altri sono piccoli frammenti di codice specifici che dimostrano una tecnica:
Molte tecniche sono probabilmente conosciute dai lettori, ma ci è sembrato bello avere una raccolta di suggerimenti e trucchi, che vanno dai miglioramenti algoritmici di alto livello alle ottimizzazioni delle prestazioni di basso livello raccolte insieme.
Anche Sanjay ed io ci siamo divertiti a scrivere questo, esplorando a fondo le changelist nel corso di diversi decenni alla ricerca di tecniche interessanti che avevamo utilizzato e cercando di raggrupparle in temi di livello superiore.
La versione pubblica è una versione leggermente sanificata di quella interna. Le persone di Google possono trovare la versione interna su go/performance-hints, che contiene collegamenti alla vera changelist nel nostro sistema di repository del codice sorgente.
La versione interna ha anche esempi aggiuntivi nel codice che sono più sensibili (ad es. modifiche al backend del compilatore TPU) che non siamo in grado di includere nella versione esterna.
38