Gentoo projekt esitas pakihaldussüsteemi Portage 3.0

Stabiilitud pakettihaldussüsteemi väljaanne Portage 3.0, mida rakendatakse jaotisest Gentoo Linux. Esitatud haru on lõpetanud pikaajalise töö üleminekuks Python 3-le ja lõpetanud Python 2.7 toe.

Lisaks Python 2.7 toe lõpetamisele on teiseks oluliseks muudatuseks pandud optimeerimised, mis võimaldasid arvutuste kiirusel, mis on seotud sõltuvuste määratlemisega, suureneda 50-60%. Huvitav on see, et mõned arendajad pakkusid sõltuvuste lahendamise koodi ümberkirjutamist C/C++ või Go keeles, et kiirus kasvada, kuid probleem lahendati suhteliselt lihtsalt.

Koodiprofiilimine näitas, et peamine aeg arvutustes kulub funktsioonide use_reduce ja catpkgsplit kutsumisele korduvate argumentide kogumiga (näiteks catpkgsplit kutsuti üles 1 kuni 5 miljonit korda). Kiirus kasvas nende funktsioonide töö tulemuste vahemälu rakendamisega sõnastike abil. Vahemälu hoidmiseks oli optimaalne sisseehitatud funktsioon lru_cache, kuid see oli saadaval ainult Python'i väljaannetes alates 3.2. Varasema versiooni toe tagamiseks lisati lru_cache'i asendus, kuid Portage 3.0-s python 2.7 toe lõpetamine lihtsustas ülesannet ja lubas sellest vahekihist mööda minna.

Vahemälu kasutamine vähendas käsu „emerge -uDvpU —with-bdeps=y @world” täitmise aega ThinkPad X220 sülearvutil 5 minutist 20 sekundist 3 minutisse 16 sekundisse (63%). Muudel süsteemidel tehtud testid näitasid vähemalt 48% jõudluse kasvu.

Muutuse ettevalmistaja arendaja püüdis samuti ellu viia sõltuvuste lahendamise koodi prototüübi C++ või Rust keeles, kuid ülesanne osutus liiga keeruliseks, kuna see nõudis suure hulga koodi portimist ja oli kaheldav, kas saavutatud tulemus oleks kulutatud vaeva vääriline.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster