{"id":35585,"date":"2019-10-31T22:05:11","date_gmt":"2019-10-31T19:05:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/misrosoft-otkryl-kod-sistemy-raspredeleniya-pamyati-mimalloc\/"},"modified":"2019-10-31T22:05:11","modified_gmt":"2019-10-31T19:05:11","slug":"misrosoft-otkryl-kod-sistemy-raspredeleniya-pamyati-mimalloc","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/misrosoft-otkryl-kod-sistemy-raspredeleniya-pamyati-mimalloc","title":{"rendered":"Microsoft ha abierto el c\u00f3digo del sistema de gesti\u00f3n de memoria mimalloc","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>La empresa Microsoft ha liberado bajo la licencia MIT la biblioteca <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/mimalloc\">mimalloc<\/a><\/noindex> con implementaciones de un sistema de gesti\u00f3n de memoria, originalmente creado para componentes de tiempo de ejecuci\u00f3n de lenguajes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/koka-lang\/koka\">Koka<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/leanprover\/lean\">Lean<\/a><\/noindex>. Mimalloc est\u00e1 adaptado para su uso en aplicaciones t\u00edpicas sin necesidad de modificar su c\u00f3digo y puede actuar como un reemplazo transparente de la funci\u00f3n malloc. Es compatible con Windows, macOS, Linux, BSD y otros sistemas similares a Unix.<\/p>\n<p>Una caracter\u00edstica clave de mimalloc es la compactidad de su implementaci\u00f3n (menos de 3500 l\u00edneas de c\u00f3digo) y su muy alta rendimiento. En <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/mimalloc#performance\">las pruebas realizadas<\/a><\/noindex> mimalloc super\u00f3 en rendimiento a todas las bibliotecas competidoras de gesti\u00f3n de memoria, incluyendo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jemalloc\/jemalloc\">jemalloc<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gperftools\/gperftools\">tcmalloc<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/snmalloc\">snmalloc<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rampantpixels\/rpmalloc\">rpmalloc<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/emeryberger\/Hoard\">Hoard<\/a><\/noindex>. <\/p>\n<p>Para evaluar el rendimiento se utiliz\u00f3 un conjunto de pruebas existentes  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/daanx\/mimalloc-bench\">pruebas t\u00edpicas<\/a><\/noindex> En algunas pruebas, mimalloc supera a otros sistemas por mucho, por ejemplo, en la prueba de migraci\u00f3n de objetos entre diferentes hilos, mimalloc fue m\u00e1s r\u00e1pido que tcmalloc y jemalloc m\u00e1s de 2.5 veces. Al mismo tiempo, en la mayor\u00eda de las pruebas tambi\u00e9n se observa un menor consumo de memoria, en algunas situaciones los gastos de memoria se lograron reducir en un 25%.<\/p>\n<p><center><img decoding=\"async\" alt=\"Microsoft ha abierto el c\u00f3digo del sistema de gesti\u00f3n de memoria mimalloc\" src=\"\/wp-content\/uploads\/05811d717a243138d2bc926697657fa1.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>El alto rendimiento se alcanza principalmente gracias a la aplicaci\u00f3n de segmentaci\u00f3n de la lista de bloques libres (free list sharding). En lugar de una gran lista, mimalloc utiliza una serie de listas m\u00e1s peque\u00f1as, cada una de las cuales se asocia a una p\u00e1gina de memoria. Este enfoque reduce la fragmentaci\u00f3n y mejora la localizaci\u00f3n de datos en memoria. Una p\u00e1gina de memoria se entiende como un conjunto agrupado de bloques de tama\u00f1o similar. En sistemas de 64 bits, el tama\u00f1o de la p\u00e1gina suele ser de 64 KB. Si no quedan bloques ocupados en la p\u00e1gina, se libera completamente devolviendo la memoria al sistema operativo, lo que permite reducir los costos de memoria y la fragmentaci\u00f3n en programas de larga duraci\u00f3n.<\/p>\n<p>La biblioteca se puede conectar en la etapa de enlace o cargar para un programa ya compilado (&#171;LD_PRELOAD=\\\/usr\\\/bin\\\/libmimalloc.so  myprogram&#187;). La biblioteca tambi\u00e9n proporciona <noindex><a rel=\"nofollow\" href=\"https:\/\/microsoft.github.io\/mimalloc\/group__extended.html\">API<\/a><\/noindex> la integraci\u00f3n de la funcionalidad en tiempo de ejecuci\u00f3n y un control delicado sobre el comportamiento, por ejemplo, para conectar manipuladores de liberaci\u00f3n diferida de memoria y el aumento monot\u00f3nico de los contadores de referencias. Existe la posibilidad de crear y utilizar m\u00faltiples &#171;montones&#187; (heap) en la aplicaci\u00f3n para distribuir en diferentes \u00e1reas de memoria. Tambi\u00e9n es posible liberar un mont\u00f3n por completo, sin recorrer y liberar individualmente los objetos colocados en \u00e9l.<\/p>\n<p>Se prev\u00e9 la posibilidad de compilar la biblioteca en modo seguro, en el que se insertan p\u00e1ginas de verificaci\u00f3n especiales en los l\u00edmites de los bloques (guard-page), as\u00ed como se utiliza la aleatorizaci\u00f3n de la distribuci\u00f3n de bloques y el cifrado de las listas de bloques liberados. Estas medidas permiten bloquear la mayor\u00eda de las t\u00e9cnicas t\u00edpicas de explotaci\u00f3n de desbordamientos de buffer en el heap. Al activar el modo seguro, el rendimiento disminuye aproximadamente un 3%.<\/p>\n<p>Entre las caracter\u00edsticas de mimalloc, tambi\u00e9n se destaca su resistencia a problemas de hinchaz\u00f3n en casos de alta fragmentaci\u00f3n. En el peor de los escenarios, el consumo de memoria aumenta en un 0.2% para metadatos y puede alcanzar hasta un 16.7% para la memoria asignada. Para evitar conflictos al acceder a recursos, mimalloc utiliza \u00fanicamente operaciones at\u00f3micas.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fuente: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50939\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Mi\u0441rosoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 mimalloc \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \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, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u044f runtime-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u044f\u0437\u044b\u043a\u043e\u0432 Koka \u0438 Lean. Mimalloc \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0445 \u043a\u043e\u0434\u0430 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 malloc. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 Windows, macOS, Linux, BSD \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 Unix-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445. \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e mimalloc [&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-35585","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Mi\u0441rosoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 mimalloc \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \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, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439.\" \/>\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\/es\/blog\/news\/misrosoft-otkryl-kod-sistemy-raspredeleniya-pamyati-mimalloc\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\udd47Mi\u0441rosoft \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \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 mimalloc | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Mi\u0441rosoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 mimalloc \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \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, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/misrosoft-otkryl-kod-sistemy-raspredeleniya-pamyati-mimalloc\" \/>\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=\"2019-10-31T19:05:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05:11+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\udd47Mi\u0441rosoft ha abierto el c\u00f3digo del sistema de distribuci\u00f3n de memoria mimalloc | ProHoster","description":"La empresa Mi\u0441rosoft ha abierto bajo la licencia MIT la biblioteca mimalloc con la implementaci\u00f3n de un sistema de distribuci\u00f3n de memoria, creado originalmente.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/misrosoft-otkryl-kod-sistemy-raspredeleniya-pamyati-mimalloc","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\udd47Mi\u0441rosoft \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \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 mimalloc | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Mi\u0441rosoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 mimalloc \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \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, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/misrosoft-otkryl-kod-sistemy-raspredeleniya-pamyati-mimalloc","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":"2019-10-31T19:05:11+00:00","article:modified_time":"2019-10-31T19:05:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35585","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":"2026-01-21 23:52:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:59:36","updated":"2026-01-21 23:52:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=35585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35585\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=35585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=35585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=35585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}