Vakaa Portage 3.0 -julkaisu on jo ilmoitettu

Kehittäjät äskettäin jotka vastaavat paketinhallintajärjestelmästä portage (Gentoo Linux -jakelussa) ilmoitti version 3.0 vakaan version julkaisemisesta.

Jossa, tärkein uutuus Tämän uuden haaran esittely on työ, joka tehtiin pitkällä aikavälillä siirtyminen Python 3: een ja tuen päättyminen Python 2.7: lle (jotain, joka oli jo nähty tulossa pitkään, koska tämä haara oli virallisesti ilman tukea useita kuukausia)

Meillä on hyviä uutisia! Gentoon Portage-projekti on hiljattain vakauttanut pakettienhallinnan version 3.0.

Mikä on uutta? No, tämä Portagen kolmas versio poistaa tuen Python 2.7: lle, joka on ollut jatkuvaa työtä Gentoo Python -projektin Gentoo-päätietovarastossa läpi vuoden 2020.

Python 2.7: n tuen lopettamisen lisäksi toinen merkittävä muutos joka erottuu tästä uudesta vakaasta Portage 3.0 -haarasta oli erilaisten optimointien sisällyttäminen jonka he sallivat tehdä laskutoimituksia paljon nopeammin (50-60%) liittyy riippuvuuksien määrittämiseen.

Mielenkiintoista on, että jotkut kehittäjät ehdottivat riippuvuusratkaisukoodin uudelleenkirjoittamista C / C ++: n tai Go: n kanssa työn nopeuttamiseksi, mutta he onnistuivat ratkaisemaan nykyisen ongelman suurella vaivalla.

Ja se nykyisen koodin profiili osoitti sen suurimman osan ajasta laskeminen on omistettu use_reduce- ja catpkgsplit-toimintojen kutsumiselle toistuvalla joukolla argumentteja (tätä työtä johtanut henkilö mainitsee, että esimerkiksi catpkgsplit-funktiota kutsuttiin 1-5 miljoonaa kertaa).

Havaitun ongelman yhteydessä mainitse, että laskutoimitusten nopeuttamiseksi välimuistia käytettiin näiden toimintojen tuloksesta sanakirjojen avulla.

Lisäksi käyttäjän toimittaman korjaustiedoston päivittäminen Portagen uusimpaan versioon voi nopeuttaa riippuvuuslaskentaa huomattavasti 50-60%. Rakastamme nähdä yhteisömme osallistuvan ohjelmistoon! Lisätietoja saat tästä Reddit-postista yhteisön jäseneltä, joka toimitti korjaustiedoston. Pysy terveenä ja jatka ruoanlaittoa Gentoon kanssa!

Sen lisäksi se huomauttaa myös, että sisäänrakennettu lru_cache-toiminto oli optimaalinen välimuistiin, mutta se oli saatavilla vain Python-versioissa vuodesta 3.2 lähtien.

Taaksepäin yhteensopivuuden varmistamiseksi lisättiin myös tynkä korvaamaan lru_cache, mutta päätös lopettaa Python 2.7 -tuki Portage 3.0: ssa yksinkertaisti tehtävää huomattavasti ja mahdollisti tämän tason ohittamisen.

Vietin jonkin aikaa Portagen profiloinnissa cProfile- ja vmprof-tiedostoilla ymmärtääkseni, mitkä ominaisuudet vievät eniten. Loin myös joitain flamegraph-kuvia profilointituloksista, jotka näyttivät tältä. Huomasin, että jotkut toiminnot, kuten use_reducecatpkgsplit, kutsutaan hyvin usein samoilla argumenteilla (kuten 1-5 miljoonaa kertaa, for catpkgsplit). Tein joitain kokeita näiden toimintojen tulosten välimuistiin sanelemiseksi, ja nähtyäni hyviä nopeutuksia lähetin korjaustiedoston Portagen kehittäjien luetteloon. Joku ehdotti sisäänrakennetun Pythonin käyttöälru_cache sen sijaan, mutta se on käytettävissä vain Python 3.2: ssä ja sitä uudemmissa versioissa.

Toisaalta välimuistin käyttö on vähentänyt ThinkPad X220: n "emerge -uDvpU –with-bdeps = y @world" -toimintoa 5 minuutista 20 sekuntiin 3 minuuttiin 16 sekuntiin (63%). Muiden järjestelmien testit ovat osoittaneet suorituskyvyn kasvun vähintään 48%.

Muutoksen valmisteleva kehittäjä yritti myös toteuttaa prototyypin riippuvuuden ratkaisukoodista C ++ tai Rust, mutta tehtävä osoittautui liian vaikeaksi, koska se vaati suuren määrän koodin kuljettamista ja samalla oli kyseenalaista, onko tulos vaivan arvoinen.

Vihdoin jos haluat tietää enemmän siitä Tietoja tämän vakaan haaran julkaisuilmoituksesta voit tarkistaa yksityiskohdat Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.