Projekt Gentoo představil systém správy balíčků Portage 3.0

Stabilizován vydání systému správy balíčků Portage 3.0, používaného v distribuci Gentoo Linux. Předložená větev shrnula dlouhou práci na přechodu na Python 3 a ukončení podpory Python 2.7.

Kromě ukončení podpory Python 2.7 bylo dalším důležitým změnou zahrnutí optimalizací, které umožnily zrychlit výpočty spojené s určením závislostí o 50-60%. Zajímavé je, že někteří vývojáři navrhovali přepsat kód pro vyřízení závislostí v C/C++ nebo Go za účelem zrychlení jeho činnosti, ale podařilo se vyřešit přetrvávající problém s minimálními změnami.

Profilování existujícího kódu ukázalo, že většina času při výpočtech je strávena voláním funkcí use_reduce a catpkgsplit s opakujícím se souborem argumentů (například funkce catpkgsplit byla volána 1 až 5 milionůkrát). Pro zrychlení bylo aplikováno cachování výsledků těchto funkcí pomocí slovníků. Optimální pro uchovávání cache byla vestavěná funkce lru_cache, ale ta byla dostupná pouze od verzí Pythonu 3.2. Pro zajištění kompatibility s dřívějšími verzemi byla přidána zástupná funkce, která nahrazovala lru_cache, avšak rozhodnutí o ukončení podpory Python 2.7 v Portage 3.0 značně zjednodušilo úkol a umožnilo se vyhnout této mezivrstvě.

Použití cache umožnilo snížit dobu provádění operace „emerge -uDvpU —with-bdeps=y @world“ na notebooku ThinkPad X220 z 5 minut 20 sekund na 3 minuty 16 sekund (63%). Testy na jiných systémech ukázaly nárůst výkonu alespoň o 48%.

Vývojář, který připravil změnu, se také pokusil implementovat prototyp kódu pro vyřízení závislostí v C++ nebo Rust, ale úkol se ukázal jako příliš složitý, jelikož vyžadoval portování velkého objemu kódu a bylo pochybné, zda by získaný výsledek stál za vynaložené úsilí.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster