Inihayag na ang matatag na paglabas ng Portage 3.0

Mga nag-develop kamakailan na namamahala sa sistema ng pamamahala ng package Portage (sa pamamahagi ng Gentoo Linux) inihayag ang paglabas ng matatag na bersyon ng bersyon 3.0.

Kung saan, ang pangunahing novelty ng bagong sangay na ipinakita, ay ang gawain na natupad sa pangmatagalan sa paglipat sa Python 3 at pagtatapos ng suporta para sa Python 2.7 (isang bagay na nakita nang dumarating sa mahabang panahon, dahil ang sangay na ito ay opisyal na walang suporta sa loob ng maraming buwan)

Mayroon kaming magandang balita! Ang proyekto ng Gentoo Portage kamakailan ay nagpapatatag ng bersyon 3.0 ng manager ng package.

Anong bago? Sa gayon, ang pangatlong bersyon ng Portage na ito ay nagtanggal ng suporta para sa Python 2.7, na kung saan ay isang patuloy na pagsisikap sa pangunahing repository ng Gentoo ng proyekto ng Gentoo Python sa buong 2020.

Bilang karagdagan sa paghinto ng suporta para sa Python 2.7, isa pang pangunahing pagbabago na nakatayo mula sa bagong matatag na sangay ng Portage 3.0 ay ang pagsasama ng iba't ibang mga pag-optimize na pinayagan nila gawing mas mabilis ang mga kalkulasyon (sa pagitan ng 50% at 60%) nauugnay sa pagtukoy ng mga dependency.

Kapansin-pansin, iminungkahi ng ilang mga developer ang muling pagsusulat ng code ng resolusyon ng pagtitiwala sa C / C ++ o Pumunta upang mapabilis ang kanilang trabaho, ngunit pinamamahalaang malutas ang umiiral na problema nang may pagsusumikap.

At ang profile ng mayroon nang code ay ipinapakita na sa karamihan ng oras pagkalkula ay nakatuon sa pagtawag sa mga function na use_reduce at catpkgsplit na may paulit-ulit na hanay ng mga argumento (binanggit ng taong namuno sa gawaing ito na halimbawa, ang catpkgsplit function ay tinawag na 1 hanggang 5 milyong beses).

Sa napansin na problema, banggitin na upang mapabilis ang mga kalkulasyon, ang pag-cache ay inilapat ng resulta ng mga pagpapaandar na ito sa pamamagitan ng mga diksyonaryo.

Gayundin, dahil sa isang patch na ibinigay ng gumagamit, ang pag-update sa pinakabagong bersyon ng Portage ay maaaring mapabilis ang mga pagkalkula ng pagtitiwala ng 50-60%. Gusto naming makita ang aming komunidad na lumahok sa aming software! Para sa karagdagang detalye, tingnan ang post na ito ng Reddit mula sa miyembro ng komunidad na nagbigay ng patch. Manatiling malusog at panatilihin ang pagluluto kasama ang Gentoo!

Bukod doon tala rin nito na ang built-in na function na lru_cache ay pinakamainam para sa gawaing ito ng pag-cache, ngunit magagamit lamang ito sa mga bersyon ng Python mula noong 3.2.

Para sa paatras na pagiging tugma, idinagdag din ang isang usbong upang mapalitan ang lru_cache, ngunit ang desisyon na tapusin ang suporta ng Python 2.7 sa Portage 3.0 na pinasimple ang gawain at ginawang posible na lampasan ang layer na ito.

Ginugol ko ang ilang oras sa pag-prof sa Portage sa cProfile at vmprof upang maunawaan kung aling mga tampok ang gumugugol ng pinakamaraming oras. Gumawa din ako ng ilang mga flamegraph mula sa mga resulta ng profileer, na ganito ang hitsura. Ang napansin ko ay ang ilang mga pagpapaandar, tulad ng use_reducecatpkgsplit, ay madalas na tinatawag na may parehong mga argumento (tulad ng, 1 hanggang 5 milyong beses, para sa catpkgsplit). Gumawa ako ng ilang mga eksperimento upang i-cache ang mga resulta ng mga pagpapaandar na ito sa isang pagdidikta, at pagkatapos makita ang ilang magagandang pagpapabilis, nagsumite ako ng isang patch sa listahan ng developer ng Portage. May nagmungkahi ng paggamit ng built-in na Pythonlru_cache function decorator sa halip, ngunit magagamit lamang iyon sa Python 3.2 at mas mataas.

Sa kabilang banda, ang paggamit ng cache ay nabawasan ang operasyon na "emerge -uDvpU –with-bdeps = y @world" sa ThinkPad X220 mula 5 minuto 20 segundo hanggang 3 minuto 16 segundo (63%). Ang mga pagsusulit sa iba pang mga system ay nagpakita ng pagkakaroon ng pagganap na hindi bababa sa 48%.

Ang developer na naghanda ng pagbabago ay sinubukan ring magpatupad ng isang prototype mula sa code ng resolusyon ng pagtitiwala sa C ++ o kalawang, ngunit ang gawain ay naging napakahirap, dahil kinakailangan nito ang pag-port ng isang malaking halaga ng code at sa parehong oras ay nagdududa kung ang resulta ay nagkakahalaga ng pagsisikap.

Sa wakas kung nais mong malaman ang tungkol dito Tungkol sa tala ng paglabas ng matatag na sangay na ito, maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.