kutolewa kwa mfumo wa usimamizi wa kifurushi , kutumika katika usambazaji Kamba hii ni muhtasari wa mchakato mrefu wa kubadilika hadi Python 3 na kuachana na Python 2.7.
Kando na mwisho wa msaada kwa Python 2.7, mabadiliko mengine muhimu yalikuwa kuingizwa kwa , ambayo ilituruhusu kuharakisha mahesabu ya azimio la utegemezi kwa 50-60%. Inafurahisha, watengenezaji wengine walipendekeza kuandika tena nambari ya azimio la utegemezi katika C/C++ au Nenda ili kuharakisha, lakini shida iliyopo ilitatuliwa kwa bidii kidogo.
Kuweka wasifu kwenye msimbo uliopo kulionyesha kuwa muda mwingi wa kukokotoa ulitumika kuita use_reduce na utendakazi wa catpkgsplit kwa seti inayorudiwa ya hoja (kwa mfano, chaguo la kukokotoa la catpkgsplit liliitwa kati ya mara milioni 1 na 5). Ili kuharakisha mchakato, kuweka akiba matokeo ya kazi hizi kwa kutumia kamusi ilitekelezwa. Kazi iliyojengwa ndani ya lru_cache ilikuwa bora kwa kuhifadhi kache, lakini ilipatikana tu katika matoleo ya Python kuanzia 3.2. Mbegu ya lru_cache iliongezwa kwa uoanifu na matoleo ya awali, lakini uamuzi wa kuangusha usaidizi wa Python 2.7 kwenye Portage 3.0 umerahisisha kazi sana na kuwezesha kuondoa safu hii.
Kutumia akiba kulipunguza muda wa utekelezaji wa operesheni ya "emerge -uDvpU --with-bdeps=y @world" kwenye kompyuta ndogo ya ThinkPad X220 kutoka dakika 5 sekunde 20 hadi dakika 3 sekunde 16 (63%). Majaribio kwenye mifumo mingine yalionyesha ongezeko la utendaji la angalau 48%.
Msanidi programu ambaye alitayarisha mabadiliko pia alijaribu kutekeleza msimbo wa azimio la utegemezi wa mfano katika C++ au Rust, lakini kazi ilionekana kuwa ngumu sana, kwani ilihitaji kusawazisha idadi kubwa ya nambari, na ilikuwa na shaka kuwa matokeo yangefaa kujitahidi.
Chanzo: opennet.ru
