{"id":41840,"date":"2020-02-17T05:33:00","date_gmt":"2020-02-17T02:33:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/google-opublikoval-novyj-variant-sistemy-raspredeleniya-pamyati-tcmalloc"},"modified":"2020-02-17T05:33:00","modified_gmt":"2020-02-17T02:33:00","slug":"google-opublikoval-novyj-variant-sistemy-raspredeleniya-pamyati-tcmalloc","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/google-opublikoval-novyj-variant-sistemy-raspredeleniya-pamyati-tcmalloc","title":{"rendered":"Google hat eine neue Version des Speichermanagementsystems TCMalloc ver\u00f6ffentlicht.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Das Unternehmen Google <noindex><a rel=\"nofollow\" href=\"https:\/\/abseil.io\/blog\/20200212-tcmalloc\">hat<\/a><\/noindex> Neue Version des Speicherverteilungssystems <noindex><a rel=\"nofollow\" href=\"https:\/\/google.github.io\/tcmalloc\/\">TCMalloc<\/a><\/noindex>, das in vielen internen Projekten von Google verwendet wird. Der TCMalloc-Code ist in C++ geschrieben und <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/google\/tcmalloc\">wird verbreitet<\/a><\/noindex> unterliegt der Apache-Lizenz. F\u00fcr den Betrieb wird ein Compiler ben\u00f6tigt, der C++17 f\u00fcr die Programmiersprache C++ und C11 f\u00fcr die Programmiersprache C (gcc 9.2+ oder clang 9.0+) unterst\u00fctzt. Aus den Betriebssystemen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/google\/tcmalloc\/blob\/master\/docs\/platforms.md\">wird unterst\u00fctzt<\/a><\/noindex> nur Linux (x86, PPC).<\/p>\n<p>Bemerkenswert ist, dass seit 2005 eine weitere Version von tcmalloc existiert, die <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gperftools\/gperftools\/blob\/master\/src\/tcmalloc.cc\">geliefert<\/a><\/noindex> Teil des Pakets <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gperftools\/gperftools\/\">gperftools<\/a><\/noindex> ist (Google Performance Tools). Dies sind zwei <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gperftools\/gperftools\/issues\/1169#issuecomment-585321782\">verschiedene<\/a><\/noindex> Projekte mit gemeinsamen Wurzeln. Das neue TCMalloc ist eher der Versuch, den Code aktueller interner Entwicklungen von Google zu \u00f6ffnen, ist jedoch derzeit nicht darauf ausgelegt, eine stabile ABI bereitzustellen oder eine breite Palette von Betriebssystemen zu unterst\u00fctzen. Die Pflege des alten tcmalloc aus gperftools wird fortgesetzt, aber neue Funktionen, wie die Bindung des Caches an die CPU, werden nicht dorthin \u00fcbertragen.<\/p>\n<p>TCMalloc umfasst eine Implementierung der C-Funktion malloc() und des C++-Operators &#171;new&#187;, die f\u00fcr hohe Leistung und den Einsatz in multithreaded Anwendungen optimiert sind. TCMalloc bietet auch M\u00f6glichkeiten zur Introspektion und Profilerstellung, die es der Anwendung erm\u00f6glichen, detaillierte Informationen \u00fcber die Speichernutzung im Heap zu erhalten. Im Code werden Optimierungen basierend auf den modernen M\u00f6glichkeiten der Programmiersprache C++ angewendet.<br \/>\nden Operator delete mit <noindex><a rel=\"nofollow\" href=\"https:\/\/isocpp.org\/files\/papers\/n3778.html\">Angabe der Gr\u00f6\u00dfe<\/a><\/noindex> aus C++14 und die Speicherzuweisung mit <noindex><a rel=\"nofollow\" href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2016\/p0035r1.html\">Ausrichtung<\/a><\/noindex> aus C++17.<\/p>\n<p>TCMalloc <noindex><a rel=\"nofollow\" href=\"https:\/\/google.github.io\/tcmalloc\/design\">besteht<\/a><\/noindex> besteht aus drei Komponenten: einem Frontend mit Cache f\u00fcr schnelles Zuweisen und Freigeben von Speicher, einer Schicht zum Auff\u00fcllen des Frontend-Caches und dem Backend, das solche Operationen wie das Abrufen von Speicher vom Betriebssystem, das Management gro\u00dfer St\u00fccke ungenutzten Speichers und das Zur\u00fcckgeben \u00fcbersch\u00fcssigen Speichers an das Betriebssystem durchf\u00fchrt. Der Cache ist frei von Sperren und arbeitet gebunden an CPU-Kerne, f\u00e4llt jedoch bei fehlender erforderlicher Funktionalit\u00e4t im Betriebssystemkern auf ein Thread-gebundenes Caching-Modell zur\u00fcck (die Cachebindung an die CPU funktioniert nur in neueren Linux-Kernen). Das Backend unterst\u00fctzt sowohl die Arbeit mit normalen Speicherseiten als auch mit Seiten vergr\u00f6\u00dferter Gr\u00f6\u00dfe (hugepage).<\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/google.github.io\/tcmalloc\/images\/tcmalloc_internals.png\"><img decoding=\"async\" alt=\"Google hat eine neue Version des Speichermanagementsystems TCMalloc ver\u00f6ffentlicht.\" src=\"\/wp-content\/uploads\/2020\/02\/a1938ff7433f5801e20371f31f7678be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Die Hauptmerkmale von TCMalloc:<\/p>\n<ul>\n<li class=\"l\"> Schnelle Zuweisung und Freigabe von Speicher durch Caching. Die meisten Speicherzuweisungen erfordern keine Sperrungen, was eine gute Skalierbarkeit f\u00fcr multithreaded Anwendungen mit hoher Parallelit\u00e4t erm\u00f6glicht;\n<li class=\"l\"> Flexible Nutzung von Speicher, die es erm\u00f6glicht, freigegebene Speicherbereiche f\u00fcr Objekte unterschiedlicher Gr\u00f6\u00dfe erneut zu verwenden oder den Speicher an das Betriebssystem zur\u00fcckzugeben;\n<li class=\"l\"> Niedrige Overhead-Kosten pro Objekt durch Zuweisung von Seiten mit einheitlicher Gr\u00f6\u00dfe und effektive Darstellung kleiner Objekte. Logische Seiten mit einer Gr\u00f6\u00dfe von 4 KiB, 8 KiB, 32 KiB und 256 KiB werden unterst\u00fctzt. Beispielsweise wird bei der Anforderung von Bl\u00f6cken mit 512 Byte Speicher eine ganze 4 KiB-Seite f\u00fcr 512-Byte-Objekte zugewiesen, die Platz f\u00fcr 8 solcher Objekte bietet;\n<li class=\"l\"> Feinabstimmung m\u00f6glich durch Festlegung der Cachegr\u00f6\u00dfe und der R\u00fcckgabeintensit\u00e4tsparameter des Speichers an das OS;\n<li class=\"l\"> Bereitstellung detaillierter Informationen zur Analyse der Speichernutzung durch die Anwendung.\n<\/ul>\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=52364\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 TCMalloc, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 Google. \u041a\u043e\u0434 TCMalloc \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u0421++ \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Apache. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 C++17 \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u0430 C++, \u0438 C11 \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u0430 \u0421\u0438 (gcc 9.2+ \u0438\u043b\u0438 clang 9.0+). \u0418\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e Linux (x86, PPC). [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":41841,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-41840","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\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\/google-opublikoval-novyj-variant-sistemy-raspredeleniya-pamyati-tcmalloc\" \/>\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\udd47Google \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 TCMalloc | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/google-opublikoval-novyj-variant-sistemy-raspredeleniya-pamyati-tcmalloc\" \/>\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-02-17T02:33:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-17T02:33:00+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\udd47Google hat eine neue Variante des Speichermanagementsystems TCMalloc ver\u00f6ffentlicht | ProHoster","description":"Google hat eine neue Variante des Speichermanagementsystems vorgestellt","canonical_url":"https:\/\/prohoster.info\/de\/blog\/google-opublikoval-novyj-variant-sistemy-raspredeleniya-pamyati-tcmalloc","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\udd47Google \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 TCMalloc | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438","og:url":"https:\/\/prohoster.info\/de\/blog\/google-opublikoval-novyj-variant-sistemy-raspredeleniya-pamyati-tcmalloc","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-02-17T02:33:00+00:00","article:modified_time":"2020-02-17T02:33:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"41840","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-03-01 00:09:25","updated":"2022-09-27 17:39:00","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\/41840","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=41840"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/41840\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/41841"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=41840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=41840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=41840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}