#malloc — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #malloc, aggregated by home.social.
-
🎉 Oh, the classic tale of the programmer who thought they were in control of memory allocation! 😂 Spoiler alert: #malloc heard you wanted 13 bytes and delivered a buffet 🍽️ of internal fragmentation instead. Next time, ask for a byte-sized miracle and receive a banquet of bytes you never ordered. 🍕💾
https://ssenthilnathan3.github.io/blog/malloc/ #programminghumor #memorymanagement #internalfragmentation #codingjokes #HackerNews #ngated -
Why malloc always does more than I asked for?
https://ssenthilnathan3.github.io/blog/malloc/
Comments: https://news.ycombinator.com/item?id=48977463
#HackerNews #malloc #memorymanagement #programming #techblog #Clanguage
-
Аллокатор в Go
Привет, Хабр! Текущая статья будет полезна тем, кто уже знаком с основами языка программирования Golang и хочет более углублённо изучить его. Исходя из названия стати понятно, что речь пойдёт об аллокаторах, основных видах, плюсах и минусах, а также о том, какой аллокатор используется в Go. Я настоятельно рекомендую прочитать статью целиком, прежде, чем приступать к чтению части конкретно относящейся к аллокатору Go.
https://habr.com/ru/articles/1058856/
#go #golang #allocation #alloc #allocator #storage #mall #malloc
-
[Перевод] Структуры данных на практике. Глава 17: Структуры данных загрузчиков
Наш загрузчик оказался слишком медленным. Требование было чётким: загружаться менее чем за 500 миллисекунд. Показатели оставались не менее чёткими: 720 миллисекунд. Мы отставали от нужного значения на 44%. Это требование не было «мягким». Загрузчик должен был работать в промышленном контроллере, обязанном реагировать вскоре после включения питания. Каждая секунда времени загрузки — это потерянная продуктивность. В спецификации к изделию был указан максимум в 500 мс. Мы обязаны были их обеспечить. Задача загрузчика была простой: 1. Инициализировать оборудование (UART, SPI, DDR-контроллер) 2. Загрузить ядро из флэш-памяти 3. Спарсить дерево устройств 4. Перейти ко точке входа ядра Реализация казалась логичной: стандартные структуры данных из библиотеки C. Проблема выявилась при профилировании: 45% времени загрузки тратилось на malloc/free! В загрузчике всего с 64 КБ ОЗУ динамическое распределение роняло производительность.
-
OSDEV: Разработка аллокатора на С++ часть 5. osdev-libstdc
Приветствую! Это обзорная статья на этот раз совсем простая. Используется уже написанный аллокатор . Я лишь ставлю в известность читателей о существовании в osdev-libstdc вполне стандартных функций aligned_alloc, malloc, calloc, realloc и free. Их реализация примитивна:
-
OSDEV: Разработка аллокатора на С++ часть 4. mem_malloc_aligned
Приветствую читатель! Для тех кто со мной впервые вот оглавление: Часть 1 Часть 2 Часть 3 Код лежит тут Подразумевается что читатель знаком с архитектурой аллокатора из части 3 и понимает алгоритм неявного списка свободных блоков который был освещен в части 1 Аллокатор работает стабильно, все тесты зеленые, включая тесты на стабильность. И следующим шагом логично бы реализовать перегрузки new и delete для abi, но вот незадача: там есть версии принимающие дополнительный аргумент, а именно выравнивание. Эту фичу я реализовать как раз забыл. В архитектуре которая рассматривается в предыдущей статье это оказалось простой, но интересной задачей. Ее мы и обсудим ниже. Решение потребовало реализации функции mem_malloc_aligned которая выделит бОльший кусок памяти с учетом запрошенного выравнивания что бы мы там точно нашли правильно выровненный адрес. Но что если адрес указателя из mem_malloc_aligned не совпадает с адресом указателя который вернул mem_malloc? Что делать в mem_free? Что делать в mem_realloc? Как мне работать с указателем перед которым не хедера? Для начала я решил применить технику добавления смещения перед payload выровненного блока вместо хедера, смещения до payload изначального блока у которого есть хедер и футер. Но как мне отличить offset от header? Я решил добавить magic number в хедер и футер увеличив тем самым размер оверхеда в 2 раза и раз уж от него считалось внутреннее выравнивание блоков памяти в аллокаторе и минимальный размер блока, то теперь минимальный размер блока стал 32 байта, а с оверхедом все 64. Теперь можно просто проверять magic number и если он не совпадает, то интерпретировать число на месте хедера как смещение до payload блока который вернул mem_malloc и далее получив на него указатель работать с блоком стандартным образом.
-
OSDEV: Разработка аллокатора на С++ часть 3. Финальный аллокатор со списками свободных блоков
В третьей статье пойдет речь уже о готовом аллокаторе который вполне пригоден для распределения памяти
https://habr.com/ru/articles/1045692/
#аллокатор #allocator #malloc #free #распределение_памяти #osdev #менеджмент_памяти #memory_management
-
Episode 33 ist raus!
Kind: 2, Smart Home: 0
https://share.transistor.fm/s/7a35c088
#homeassistant #linux #kde #childproofing #memorymanagement #malloc #matter #ikea
Viel Spaß beim Hören wünschen euch:
@ajfriesen und @behweh -
[Перевод] Почему первый вызов моей malloc всегда аллоцирует 72 КБ?
Мне нравится экспериментировать с кастомными аллокаторами памяти, используя собственные реализации. И хотя модульные тесты помогают убедиться в их корректности, настоящей проверкой становится работа аллокатора в реальных программах. Коротко о теме статьи. Стандартная библиотека C++ инициализирует механизм обработки исключений на раннем этапе, выделяя память для «резервного пула», чтобы можно было использовать её под выброс исключений, если malloc вдруг провалится.
https://habr.com/ru/companies/ruvds/articles/1006290/
#ruvds_перевод #программирование #c++ #с #linux #malloc #аллокация_памяти
-
🚨 Oh no, another "expert" tries to unravel the enigma of the mystical 72 KB #C++ #malloc allocation and ends up drowning in a sea of jargon. 🌊 Instead of solving the "mystery", we're treated to a riveting tale of exception handling and a memory pool that could rival the Bermuda Triangle's complexity. 🙄 Spoiler alert: it's just C++ being C++.
https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/ #expert #analysis #memorypool #exceptionhandling #HackerNews #ngated -
Кастомные аллокаторы для игровых движков: arena, pool и slab на C++
Стандартный malloc — универсальный инструмент, но в геймдеве универсальность часто означает «недостаточно быстро». Когда бюджет кадра 16 мс, а каждый кадр рождаются тысячи объектов, имеет смысл разобраться в специализированных аллокаторах. Рассмотрим три основных типа: arena, pool и slab — когда какой использовать, как реализовать, и какие подводные камни ждут. Смотреть реализацию
https://habr.com/ru/companies/otus/articles/988086/
#C++ #кастомные_аллокаторы #управление_памятью #malloc #фрагментация_памяти #локальность_кэша #многопоточность
-
-
2/3
El valor de #swappines permite al sistema gestionar la memoria.
Podemos consultar su valor usando:
$ sysctl vm.swappiness
Y podemos cambiarlo modificando su valor editando el archivo /etc/sysctl.conf (si les interesa me avisan y luego puedo ampliar detalles de cómo se hace).
Otra opción interesante de la encuesta es "vm.overcommit_memory". Brevemente, controla la política del núcleo del sistema para asignar memoria virtual cuando los procesos solicitan bloques dinámicamente (#malloc).
-
Another 👌🏽 one — #phkmalloc in #FreeBSD:
“phkmalloc”, Poul-Henning Kamp (https://phk.freebsd.dk/sagas/phkmalloc/).
On HN: https://news.ycombinator.com/item?id=44432900
On Lobsters: https://lobste.rs/s/6bduaj/phkmalloc
-
Uff!
"jemalloc Postmortem", Jason Evans (https://jasone.github.io/2025/06/12/jemalloc-postmortem/).
Via HN: https://news.ycombinator.com/item?id=44264958
On Lobsters: https://lobste.rs/s/thpska/jemalloc_postmortem
#Malloc #Libc #jemalloc #MemoryManagement #Retrospective #OpenSource #FOSS #Facebook #Meta #FreeBSD #Linux #Windows #Allocators