Поради щодо продуктивності За ці роки мій колега Санжай Гемават і я багато занурювалися у налаштування продуктивності різних частин коду. Ми написали внутрішній документ Performance Hints кілька років тому, щоб визначити деякі загальні принципи, і нещодавно опублікували його версію зовнішньо. Ми будемо вдячні за будь-які ваші відгуки! Повний документ читайте за адресою:
Ми намагалися навести конкретні приклади різних технік. Деякі з них — це загальні описи набору покращень продуктивності, наприклад, цей набір змін з 2001 року:
Інші — це конкретні невеликі фрагменти коду, які демонструють техніку:
Багато технік, ймовірно, відомі читачам, але нам було приємно мати збірку порад і хитрощів — від високорівневих алгоритмічних покращень до низькорівневих оптимізацій продуктивності.
Санжай і я також отримали задоволення, писаючи це, досліджуючи списки змін протягом кількох десятиліть, шукаючи цікаві техніки, які ми використовували, і намагаючись згрупувати їх у теми вищого рівня.
Публічна версія — це дещо стерилізована версія внутрішньої версії. У Google можна знайти внутрішню версію на go/performance-hints, де є посилання на реальний список змін у нашій системі репозиторію вихідного коду.
Внутрішня версія також містить додаткові приклади в коді, які є більш чутливими (наприклад, зміни в бекенді компілятора TPU), які ми не можемо включити у зовнішню версію.
47