Osim prestanka podrške za Python 2.7, još jedna važna promjena je uključivanje
Profilisanje postojećeg koda pokazalo je da je većina vremena izračunavanja potrošena na pozivanje funkcija use_reduce i catpkgsplit sa skupom argumenata koji se ponavlja (na primjer, funkcija catpkgsplit je pozvana 1 do 5 miliona puta). Da bi se stvari ubrzale, korišteno je keširanje rezultata ovih funkcija pomoću rječnika. Najbolja opcija za pohranu keša bila je ugrađena funkcija lru_cache, ali je bila dostupna samo u Python izdanjima počevši od 3.2. Za kompatibilnost sa ranijim verzijama, dodana je stubica koja zamjenjuje lru_cache, ali odluka da se prekine podrška za Python 2.7 u Portage 3.0 uvelike je pojednostavila zadatak i omogućila da se bez ovog sloja.
Korišćenje keš memorije smanjilo je vreme izvršavanja operacije „emerge -uDvpU —with-bdeps=y @world“ na laptopu ThinkPad X220 sa 5 minuta i 20 sekundi na 3 minuta i 16 sekundi (63%). Testovi na drugim sistemima su pokazali povećanje performansi od najmanje 48%.
Programer koji je pripremio promjenu je također pokušao implementirati prototip koda za rješavanje ovisnosti u C++ ili Rust, ali je zadatak bio pretežak jer je zahtijevao prijenos velike količine koda, a bilo je sumnjivo da bi rezultat bio vrijedan truda .
izvor: opennet.ru