A Gentoo projekt bemutatta a Portage 3.0 csomagkezelő rendszert

Stabilizált a csomagkezelő rendszer kiadása Portage 3.0, amely a disztribúcióban alkalmazásra került Gentoo Linux. A bemutatott ág összegzi a Python 3-ra való áttérés hosszú munkáját, és megszünteti a Python 2.7 támogatását.

A Python 2.7 támogatásának megszüntetése mellett egy másik fontos változás a következő optimalizációk bevezetése, amelyek 50-60%-kal gyorsabbá tették a függőségek meghatározásával kapcsolatos számításokat. Érdekes, hogy egyes fejlesztők azt javasolták, hogy a függőségfeloldó kódot C/C++ vagy Go nyelven írják át a teljesítmény javítása érdekében, de a problémát viszonylag egyszerűen sikerült megoldani.

A meglévő kód profilozása azt mutatta, hogy a számítások során a legnagyobb időt a use_reduce és catpkgsplit függvények hívása tölti el, ismétlődő argumentumkészlettel (például a catpkgsplit függvényt 1-5 milliószor hívták meg). A gyorsítás érdekében a funkciók eredményeinek caching-jét alkalmazták szótárak használatával. Az lru_cache beépített funkció volt a legoptimálisabb a cache tárolásához, de ez csak a Python 3.2 verziótól volt elérhető. A korábbi verziók kompatibilitása érdekében egy helyettesítő került hozzáadásra, amely helyettesítette az lru_cache-t, de a Python 2.7 Portage 3.0-ban való támogatásának megszüntetése jelentősen leegyszerűsítette a feladatot, lehetővé téve a réteg nélküli megoldást.

A cache használatával a "emerge -uDvpU —with-bdeps=y @world" művelet futási ideje a ThinkPad X220 laptopon 5 perc 20 másodpercről 3 perc 16 másodpercre (63%) csökkent. Más rendszereken végzett tesztek legalább 48%-os teljesítménynövekedést mutattak.

A változtatást előkészítő fejlesztő egy prototípus kódot is próbált megvalósítani a függőségfeloldásra C++ vagy Rust nyelven, de a feladat túl bonyolultnak bizonyult, mivel nagy mennyiségű kód átkonvertálását igényelte, és kétséges volt, hogy az eredmény megérte volna a ráfordított időt és energiát.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster