Python 2.7:n tuen päättymisen lisäksi toinen tärkeä muutos oli sen sisällyttäminen
Olemassa olevan koodin profilointi osoitti, että suurin osa laskenta-ajasta kului use_reduce- ja catpkgsplit-funktioiden kutsumiseen toistuvilla argumenteilla (esimerkiksi catpkgsplit-funktiota kutsuttiin 1-5 miljoonaa kertaa). Asian nopeuttamiseksi käytettiin näiden toimintojen tulosten välimuistia sanakirjojen avulla. Paras vaihtoehto välimuistille oli sisäänrakennettu lru_cache-toiminto, mutta se oli saatavilla vain Python-julkaisuissa versiosta 3.2 alkaen. Yhteensopivuuden vuoksi aiempien versioiden kanssa lisättiin tynkä lru_cachen tilalle, mutta päätös lopettaa Python 2.7:n tuki Portage 3.0:ssa yksinkertaisti tehtävää huomattavasti ja mahdollisti ilman tätä kerrosta.
Välimuistin käyttö lyhensi ThinkPad X220 -kannettavassa tietokoneessa "emerge -uDvpU —with-bdeps=y @world" -toiminnon suoritusaikaa 5 minuutista 20 sekunnista 3 minuutista 16 sekuntiin (63 %). Muilla järjestelmillä tehdyt testit osoittivat suorituskyvyn parantuneen vähintään 48 %.
Muutoksen valmisteleva kehittäjä yritti myös ottaa käyttöön riippuvuuden selvityskoodin prototyypin C++:ssa tai Rustissa, mutta tehtävä oli liian vaikea, koska se vaati suuren koodimäärän siirtämistä ja oli epävarmaa, olisiko tulos vaivan arvoinen. .
Lähde: opennet.ru