Lisaks Python 2.7 toe lõppemisele oli veel üks oluline muudatus rakenduse kaasamine
Olemasoleva koodi profileerimine näitas, et suurem osa arvutusajast kulus korduva argumentide komplektiga funktsioonide use_reduce ja catpkgsplit kutsumisele (näiteks funktsiooni catpkgsplit kutsuti 1–5 miljonit korda). Asjade kiirendamiseks kasutati nende funktsioonide tulemuste vahemällu salvestamist sõnaraamatute abil. Parim valik vahemälu salvestamiseks oli sisseehitatud funktsioon lru_cache, kuid see oli saadaval ainult Pythoni versioonides alates versioonist 3.2. Varasemate versioonidega ühilduvuse huvides lisati lru_cache asendamiseks tünn, kuid otsus lõpetada Python 2.7 tugi versioonis Portage 3.0 lihtsustas oluliselt ülesannet ja võimaldas ilma selle kihita hakkama saada.
Vahemälu kasutamine vähendas ThinkPad X220 sülearvuti toimingu „emerge -uDvpU —with-bdeps=y @world” täitmisaega 5 minutilt 20 sekundilt 3 minutilt 16 sekundile (63%). Teiste süsteemide testid näitasid jõudluse kasvu vähemalt 48%.
Muudatuse ette valmistanud arendaja püüdis ka C++ või Rusti sõltuvuse eralduskoodi prototüüpi juurutada, kuid ülesanne oli liiga keeruline, kuna nõudis suure hulga koodide teisaldamist ning oli kaheldav, et tulemus on vaeva väärt. .
Allikas: opennet.ru