Portage 3.0 stabiilne versioon on juba välja kuulutatud

Arendajad hiljuti kes vastutavad paketihaldussüsteemi eest Portage (Gentoo Linuxi jaotuses) teatas versiooni 3.0 stabiilse versiooni väljaandmisest.

Milles, peamine uudsus selle uue haru esitlus on töö, mida tehti pikemas perspektiivis üleminek Python 3-le ja Python 2.7 toe lõppemine (midagi, mida nähti juba pikka aega, kuna see haru oli mitu kuud ametlikult ilma toetuseta)

Meil on häid uudiseid! Gentoo Portage'i projekt on hiljuti stabiliseerinud paketihalduri versiooni 3.0.

Mis on uut? Noh, see kolmas Portage versioon eemaldab toetuse Python 2.7-le, mis on olnud Gentoo Pythoni projekti käigus kogu 2020. aasta jooksul Gentoo peamises hoidlas pidevalt pingutatud.

Lisaks Python 2.7 toetuse katkestamisele veel üks suur muudatus mis paistab silma Portage 3.0 selle uue stabiilse haru hulgast oli erinevate optimeerimiste kaasamine et nad lubasid teha arvutusi palju kiiremini (vahemikus 50–60%) seotud sõltuvuste määramisega.

Huvitav on see, et mõned arendajad soovitasid oma töö kiirendamiseks kirjutada sõltuvuse lahendamise koodi kas C / C ++ või Go alla, kuid nad suutsid olemasoleva probleemi suure vaevaga lahendada.

Ja see olemasoleva koodi profiil näitas seda enamasti arvutus on pühendatud funktsioonide use_reduce ja catpkgsplit kutsumisele korduvate argumentide kogumiga (seda tööd juhtinud isik mainib, et näiteks funktsiooni catpkgsplit kutsuti 1–5 miljonit korda).

Avastatud probleemi korral mainige, et arvutuste kiirendamiseks rakendati vahemällu salvestamist nende funktsioonide tulemustest sõnastike abil.

Kasutaja poolt pakutava plaastri tõttu võib Portage uusimale versioonile värskendamine sõltuvuse arvutamist oluliselt kiirendada 50–60%. Meile meeldib näha, kuidas meie kogukond osaleb meie tarkvaras! Lisateabe saamiseks vaadake seda Redditi postitust kogukonna liikmelt, kes plaastri andis. Olge terved ja jätkake Gentoo'ga kokkamist!

peale selle see märgib ka, et sisseehitatud funktsioon lru_cache oli optimaalne vahemällu salvestamise ülesande jaoks, kuid see oli saadaval ainult Pythoni versioonides alates 3.2.

Tagurpidi ühilduvuse tagamiseks lisati lru_cache'i asemele ka pistik, kuid otsus lõpetada Python 2.7 tugi Portage 3.0-s lihtsustas ülesannet oluliselt ja võimaldas sellest kihist mööda minna.

Veetsin mõnda aega Portage'i profiilide koostamisel cProfile ja vmprof abil, et mõista, millised funktsioonid võtavad kõige rohkem aega. Profiileri tulemustest genereerisin ka mõned leegikirjad, mis nägi välja selline. Mida ma märkasin, oli see, et mõned funktsioonid, näiteks use_reducecatpkgsplit, kutsutakse samade argumentidega väga sageli (näiteks 1 kuni 5 miljonit korda, for catpkgsplit). Tegin mõned katsed nende funktsioonide tulemuste vahemällu salvestamiseks ja pärast mõningate kiirenduste nägemist esitasin Portage'i arendajate loendisse plaastri. Keegi soovitas kasutada sisseehitatud Pythonilru_cache funktsiooni dekoraator, kuid see on saadaval ainult Python 3.2 ja uuemates versioonides.

Teiselt poolt on vahemälu kasutamine vähendanud ThinkPad X220 operatsiooni "emerge -uDvpU –with-bdeps = y @world" 5 minutilt 20 sekundile 3 minutile 16 sekundile (63%). Teiste süsteemide testid on näidanud jõudluse kasvu vähemalt 48%.

Muudatuse ette valmistanud arendaja proovis rakendada ka prototüüpi sõltuvuse lahendamise koodist C ++ või Rust, kuid ülesanne osutus liiga keeruliseks, kuna see eeldas suure hulga koodi teisaldamist ja samas oli kaheldav, kas tulemus on vaeva väärt.

Lõpuks kui soovite selle kohta rohkem teada saada Selle stabiilse haru vabastamisteabe kohta saate vaadata üksikasju Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.