Gentoo төсөл нь Portage 3.0 багцын удирдлагын системийг нэвтрүүлсэн

Тогтворжсон багц удирдлагын системийн хувилбар Portage 3.0, хуваарилалтад ашигласан Gentoo Линукс. Танилцуулсан сэдэв нь Python 3 руу шилжих урт хугацааны ажлыг нэгтгэн дүгнэж, Python 2.7-ийн дэмжлэгийг дуусгасан болно.

Python 2.7-ийн дэмжлэг дууссанаас гадна өөр нэг чухал өөрчлөлт нь оруулсан явдал юм оновчлолууд, энэ нь хамаарлыг тодорхойлохтой холбоотой тооцооллыг 50-60% хурдасгах боломжтой болсон. Сонирхолтой нь, зарим хөгжүүлэгчид түүний ажиллагааг хурдасгахын тулд C/C++ эсвэл Go-ийн хамаарлыг шийдвэрлэх кодыг дахин бичихийг санал болгосон боловч бага зэрэг хүчин чармайлт гарган одоо байгаа асуудлыг шийдэж чадсан.

Одоо байгаа кодын профайлыг хийснээр тооцооллын ихэнх цагийг use_reduce болон catpkgsplit функцуудыг давтагдах аргументуудын хамт дуудахад зарцуулсан болохыг харуулсан (жишээлбэл, catpkgsplit функцийг 1-5 сая удаа дуудсан). Үйлдлийг хурдасгахын тулд эдгээр функцүүдийн үр дүнг толь бичиг ашиглан кэшлэхэд ашигласан. Кэш хадгалах хамгийн сайн сонголт бол суулгасан lru_cache функц байсан боловч энэ нь зөвхөн 3.2-с эхлэн Python хувилбаруудад боломжтой байсан. Өмнөх хувилбаруудтай нийцүүлэхийн тулд lru_cache-г солихын тулд stub нэмсэн боловч Portage 2.7 дээрх Python 3.0-ийн дэмжлэгийг зогсоох шийдвэр гаргасан нь даалгаврыг ихээхэн хялбарчилж, энэ давхаргагүйгээр хийх боломжтой болгосон.

Кэшийг ашигласнаар ThinkPad X220 зөөврийн компьютер дээрх "emerge -uDvpU —with-bdeps=y @world" үйлдлийн гүйцэтгэлийн хугацааг 5 минут 20 секундээс 3 минут 16 секунд (63%) болгон бууруулсан. Бусад системүүдийн туршилтууд гүйцэтгэлийн хамгийн багадаа 48% -иар өссөнийг харуулсан.

Өөрчлөлтийг бэлтгэсэн хөгжүүлэгч мөн C++ эсвэл Rust хэл дээр хамаарлыг шийдвэрлэх кодын прототипийг хэрэгжүүлэхийг оролдсон боловч их хэмжээний кодыг шилжүүлэх шаардлагатай байсан тул даалгавар нь хэтэрхий хэцүү байсан бөгөөд үр дүн нь хүчин чармайлт гаргахад үнэ цэнэтэй байх нь эргэлзээтэй байсан. .

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх