De Gentoo Projet huet de Portage 3.0 Package Management System agefouert

Stabiliséiert Package Management System Verëffentlechung Portage 3.0, benotzt an der Verdeelung Gentoo Linux. De präsentéierte Fuedem resuméiert déi laangfristeg Aarbecht iwwer den Iwwergank op Python 3 an d'Enn vun der Ënnerstëtzung fir Python 2.7.

Nieft dem Enn vun der Ënnerstëtzung fir Python 2.7, eng aner wichteg Ännerung war d'Inklusioun vun optimizations, wat et méiglech gemaach huet d'Berechnungen am Zesummenhang mat der Bestëmmung vun Ofhängegkeeten ëm 50-60% ze beschleunegen. Interessanterweis hunn e puer Entwéckler virgeschloen den Ofhängegkeetsresolutiounscode an C / C ++ ze schreiwen oder Go fir seng Operatioun ze beschleunegen, awer si hunn et fäerdeg bruecht de existente Problem mat wéineg Ustrengung ze léisen.

D'Profiléierung vum existente Code huet gewisen datt déi meescht vun der Berechnungszäit verbruecht gouf fir d'use_reduce- a catpkgsplit-Funktioune mat engem widderhuelende Set vun Argumenter ze ruffen (zum Beispill, d'catpkgsplit-Funktioun gouf 1 bis 5 Millioune Mol genannt). Fir d'Saachen ze beschleunegen, gouf Cache vun de Resultater vun dëse Funktiounen mat Dictionnairen benotzt. Déi bescht Optioun fir Cache-Späichere war déi agebaute lru_cache Funktioun, awer et war nëmme verfügbar a Python Verëffentlechungen ugefaange mat 3.2. Fir Kompatibilitéit mat fréiere Versioune gouf e Stubb bäigefüügt fir lru_cache ze ersetzen, awer d'Entscheedung fir d'Ënnerstëtzung fir Python 2.7 am Portage 3.0 ze stoppen huet d'Aufgab staark vereinfacht an et méiglech gemaach ouni dës Schicht ze maachen.

D'Benotzung vum Cache reduzéiert d'Ausféierungszäit vun der "emerge -uDvpU —with-bdeps=y @world" Operatioun um ThinkPad X220 Laptop vu 5 Minutten 20 Sekonnen op 3 Minutten 16 Sekonnen (63%). Tester op anere Systemer hunn eng Leeschtungserhéijung vun op d'mannst 48% gewisen.

Den Entwéckler deen d'Ännerung virbereet huet probéiert och e Prototyp vum Ofhängegkeetsresolutiounscode an C ++ oder Rust ëmzesetzen, awer d'Aufgab war ze schwéier well et erfuerdert eng grouss Quantitéit vu Code ze portéieren, an et war zweifelhaft datt d'Resultat den Effort wäert wäert sinn. .

Source: opennet.ru