Wskazówki dotyczące wydajności Na przestrzeni lat mój kolega Sanjay Ghemawat i ja zajmowaliśmy się tuningiem wydajności różnych fragmentów kodu. Napisaliśmy wewnętrzny dokument Wskazówki dotyczące wydajności kilka lat temu, aby zidentyfikować ogólne zasady, a niedawno opublikowaliśmy jego wersję na zewnątrz. Będziemy wdzięczni za wszelkie uwagi, które możesz mieć! Przeczytaj pełny dokument pod adresem:
Staraliśmy się podać konkretne przykłady różnych technik. Niektóre to opisy na wysokim poziomie zestawu ulepszeń wydajności, jak ten zestaw zmian z 2001 roku:
Inne to konkretne małe fragmenty kodu, które demonstrują technikę:
Wiele technik jest prawdopodobnie znanych czytelnikom, ale uznaliśmy, że miło jest mieć zbiór wskazówek i trików, od wysokopoziomowych ulepszeń algorytmicznych po niskopoziomowe optymalizacje wydajności, zebrane razem.
Sanjay i ja również świetnie się bawiliśmy, pisząc to, zagłębiając się w zmiany przez wiele dziesięcioleci, szukając interesujących technik, które stosowaliśmy, i próbując je pogrupować w wyższe tematy.
Publiczna wersja jest w pewnym sensie oczyszczoną wersją wersji wewnętrznej. Ludzie w Google mogą znaleźć wersję wewnętrzną pod adresem go/performance-hints, która zawiera linki do rzeczywistej listy zmian w naszym systemie repozytoriów kodu źródłowego.
Wewnętrzna wersja zawiera również dodatkowe przykłady w kodzie, które są bardziej wrażliwe (np. zmiany w backendzie kompilatora TPU), których nie możemy uwzględnić w wersji zewnętrznej.
49