{"id":93424,"date":"2020-09-07T07:42:06","date_gmt":"2020-09-07T05:42:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/proekt-gentoo-predstavil-sistemu-upravleniya-paketami-portage-3-0"},"modified":"2020-09-07T07:42:06","modified_gmt":"2020-09-07T05:42:06","slug":"proekt-gentoo-predstavil-sistemu-upravleniya-paketami-portage-3-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/proekt-gentoo-predstavil-sistemu-upravleniya-paketami-portage-3-0","title":{"rendered":"Das Gentoo-Projekt hat das Paketverwaltungssystem Portage 3.0 vorgestellt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.gentoo.org\/news\/2020\/09\/05\/portage-3-stablized.html\">Stabilisiert<\/a><\/noindex> die Ver\u00f6ffentlichung des Paketverwaltungssystems <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.gentoo.org\/wiki\/Project:Portage\">Portage 3.0<\/a><\/noindex>, das in der Distribution <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gentoo.org\/\">Gentoo Linux<\/a><\/noindex>verwendet wird. Der vorgestellte Branch fasst die langj\u00e4hrige Arbeit am Umstieg auf Python 3 und der Beendigung der Unterst\u00fctzung f\u00fcr Python 2.7 zusammen. <\/p>\n<p>Neben der Beendigung der Unterst\u00fctzung f\u00fcr Python 2.7 war eine weitere wichtige \u00c4nderung die Einbeziehung von <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/Gentoo\/comments\/huczqb\/portage_300_released_with_up_to_5060_faster\/\">Optimierungen<\/a><\/noindex>, die es erm\u00f6glichten, Berechnungen zur Bestimmung von Abh\u00e4ngigkeiten um 50-60 % zu beschleunigen. Interessanterweise haben einige Entwickler vorgeschlagen, den Code zur Aufl\u00f6sung von Abh\u00e4ngigkeiten in C\/C++ oder Go neu zu schreiben, um die Ausf\u00fchrungsgeschwindigkeit zu erh\u00f6hen, doch es gelang, das bestehende Problem mit wenig Aufwand zu l\u00f6sen.<\/p>\n<p>Die Profilierung des vorhandenen Codes zeigte, dass die meiste Zeit bei den Berechnungen f\u00fcr den Aufruf der Funktionen use_reduce und catpkgsplit mit wiederkehrenden Argumenten aufgewendet wurde (zum Beispiel wurde die Funktion catpkgsplit zwischen 1 und 5 Millionen Mal aufgerufen). Um die Geschwindigkeit zu erh\u00f6hen, wurde ein Caching der Ergebnisse dieser Funktionen unter Verwendung von Dictionaries implementiert. Die \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f Funktion lru_cache war optimal f\u00fcr die Speicherung des Caches, aber sie war nur in Python-Versionen ab 3.2 verf\u00fcgbar. Zur Kompatibilit\u00e4t mit fr\u00fcheren Versionen wurde ein Stub hinzugef\u00fcgt, der lru_cache ersetzt, aber die Entscheidung, die Unterst\u00fctzung f\u00fcr Python 2.7 in Portage 3.0 zu beenden, hat die Aufgabe erheblich vereinfacht und erm\u00f6glichte es, auf diese zus\u00e4tzliche Schicht zu verzichten. <\/p>\n<p>Die Verwendung des Caches reduzierte die Ausf\u00fchrungszeit des Befehls &#171;emerge -uDvpU &#8212;with-bdeps=y @world&#187; auf dem ThinkPad X220 von 5 Minuten 20 Sekunden auf 3 Minuten 16 Sekunden (63%). Tests an anderen Systemen zeigten eine Leistungssteigerung von mindestens 48%.<\/p>\n<p>Der Entwickler, der die \u00c4nderung vorbereitet hat, versuchte ebenfalls, ein Prototyp des Codes zur Aufl\u00f6sung von Abh\u00e4ngigkeiten in C++ oder Rust zu implementieren, aber die Aufgabe erwies sich als zu anspruchsvoll, da sie die Portierung eines gro\u00dfen Codesatzes erforderte, und es war zudem fraglich, ob das Ergebnis den eingesetzten Aufwand wert gewesen w\u00e4re. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53668\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 Portage 3.0, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439 \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 Gentoo Linux. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 \u043f\u043e\u0434\u0432\u0435\u043b\u0430 \u0438\u0442\u043e\u0433 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443 \u043d\u0430 Python 3 \u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Python 2.7. \u041a\u0440\u043e\u043c\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Python 2.7, \u0434\u0440\u0443\u0433\u0438\u043c \u0432\u0430\u0436\u043d\u044b\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043b\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0432\u0448\u0438\u0445 \u043d\u0430 50-60% \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-93424","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/proekt-gentoo-predstavil-sistemu-upravleniya-paketami-portage-3-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442 Gentoo \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 Portage 3.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/proekt-gentoo-predstavil-sistemu-upravleniya-paketami-portage-3-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-07T05:42:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-07T05:42:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Das Gentoo-Projekt hat das Paketverwaltungssystem Portage 3.0 vorgestellt | ProHoster","description":"Stabilisiert die Ver\u00f6ffentlichung des Paketverwaltungssystems","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/proekt-gentoo-predstavil-sistemu-upravleniya-paketami-portage-3-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442 Gentoo \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 Portage 3.0 | ProHoster","og:description":"\u0421\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/proekt-gentoo-predstavil-sistemu-upravleniya-paketami-portage-3-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-07T05:42:06+00:00","article:modified_time":"2020-09-07T05:42:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"93424","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:48:27","updated":"2022-10-09 13:26:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/93424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=93424"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/93424\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=93424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=93424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=93424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}