Kromě ukončení podpory Pythonu 2.7 bylo další velkou změnou zahrnutí
Profilování existujícího kódu ukázalo, že většinu výpočetního času stráví volání funkcí use_reduce a catpkgsplit s opakující se sadou argumentů (například funkce catpkgsplit byla volána 1 až 5 milionůkrát). Pro urychlení ukládání výsledku těchto funkcí do mezipaměti bylo použito použití slovníků. Vestavěná funkce lru_cache byla optimální pro ukládání do mezipaměti, ale byla dostupná pouze ve verzích Pythonu počínaje 3.2. Kvůli kompatibilitě s dřívějšími verzemi byl přidán útržek, který nahradil lru_cache, ale rozhodnutí ukončit podporu pro Python 2.7 v Portage 3.0 značně zjednodušilo úlohu a odstranilo tuto vrstvu.
Použití mezipaměti zkrátilo dobu provádění operace „emerge -uDvpU --with-bdeps=y @world“ na notebooku ThinkPad X220 z 5 minut 20 sekund na 3 minuty 16 sekund (63 %). Testy na jiných systémech ukázaly nárůst výkonu minimálně o 48 %.
Vývojář, který změnu připravil, se také pokusil prototypovat kód rozlišení závislostí v C++ nebo Rustu, ale tento úkol se ukázal jako příliš obtížný, protože vyžadoval portování velkého množství kódu a zároveň bylo pochybné, že výsledek by stál za námahu.
Zdroj: opennet.ru