home.social

#malloc — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #malloc, aggregated by home.social.

  1. and being able to return NULL when given a size of 0 is a discontinuity in design, and a mistake, IMO.

  2. [Перевод] Почему первый вызов моей malloc всегда аллоцирует 72 КБ?

    Мне нравится экспериментировать с кастомными аллокаторами памяти, используя собственные реализации. И хотя модульные тесты помогают убедиться в их корректности, настоящей проверкой становится работа аллокатора в реальных программах. Коротко о теме статьи. Стандартная библиотека C++ инициализирует механизм обработки исключений на раннем этапе, выделяя память для «резервного пула», чтобы можно было использовать её под выброс исключений, если malloc вдруг провалится.

    habr.com/ru/companies/ruvds/ar

    #ruvds_перевод #программирование #c++ #с #linux #malloc #аллокация_памяти

  3. [Перевод] Почему первый вызов моей malloc всегда аллоцирует 72 КБ?

    Мне нравится экспериментировать с кастомными аллокаторами памяти, используя собственные реализации. И хотя модульные тесты помогают убедиться в их корректности, настоящей проверкой становится работа аллокатора в реальных программах. Коротко о теме статьи. Стандартная библиотека C++ инициализирует механизм обработки исключений на раннем этапе, выделяя память для «резервного пула», чтобы можно было использовать её под выброс исключений, если malloc вдруг провалится.

    habr.com/ru/companies/ruvds/ar

    #ruvds_перевод #программирование #c++ #с #linux #malloc #аллокация_памяти

  4. [Перевод] Почему первый вызов моей malloc всегда аллоцирует 72 КБ?

    Мне нравится экспериментировать с кастомными аллокаторами памяти, используя собственные реализации. И хотя модульные тесты помогают убедиться в их корректности, настоящей проверкой становится работа аллокатора в реальных программах. Коротко о теме статьи. Стандартная библиотека C++ инициализирует механизм обработки исключений на раннем этапе, выделяя память для «резервного пула», чтобы можно было использовать её под выброс исключений, если malloc вдруг провалится.

    habr.com/ru/companies/ruvds/ar

    #ruvds_перевод #программирование #c++ #с #linux #malloc #аллокация_памяти

  5. [Перевод] Почему первый вызов моей malloc всегда аллоцирует 72 КБ?

    Мне нравится экспериментировать с кастомными аллокаторами памяти, используя собственные реализации. И хотя модульные тесты помогают убедиться в их корректности, настоящей проверкой становится работа аллокатора в реальных программах. Коротко о теме статьи. Стандартная библиотека C++ инициализирует механизм обработки исключений на раннем этапе, выделяя память для «резервного пула», чтобы можно было использовать её под выброс исключений, если malloc вдруг провалится.

    habr.com/ru/companies/ruvds/ar

    #ruvds_перевод #программирование #c++ #с #linux #malloc #аллокация_памяти

  6. 🚨 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++.
    joelsiks.com/posts/cpp-emergen #expert #analysis #memorypool #exceptionhandling #HackerNews #ngated

  7. Кастомные аллокаторы для игровых движков: arena, pool и slab на C++

    Стандартный malloc — универсальный инструмент, но в геймдеве универсальность часто означает «недостаточно быстро». Когда бюджет кадра 16 мс, а каждый кадр рождаются тысячи объектов, имеет смысл разобраться в специализированных аллокаторах. Рассмотрим три основных типа: arena, pool и slab — когда какой использовать, как реализовать, и какие подводные камни ждут. Смотреть реализацию

    habr.com/ru/companies/otus/art

    #C++ #кастомные_аллокаторы #управление_памятью #malloc #фрагментация_памяти #локальность_кэша #многопоточность

  8. Кастомные аллокаторы для игровых движков: arena, pool и slab на C++

    Стандартный malloc — универсальный инструмент, но в геймдеве универсальность часто означает «недостаточно быстро». Когда бюджет кадра 16 мс, а каждый кадр рождаются тысячи объектов, имеет смысл разобраться в специализированных аллокаторах. Рассмотрим три основных типа: arena, pool и slab — когда какой использовать, как реализовать, и какие подводные камни ждут. Смотреть реализацию

    habr.com/ru/companies/otus/art

    #C++ #кастомные_аллокаторы #управление_памятью #malloc #фрагментация_памяти #локальность_кэша #многопоточность

  9. Кастомные аллокаторы для игровых движков: arena, pool и slab на C++

    Стандартный malloc — универсальный инструмент, но в геймдеве универсальность часто означает «недостаточно быстро». Когда бюджет кадра 16 мс, а каждый кадр рождаются тысячи объектов, имеет смысл разобраться в специализированных аллокаторах. Рассмотрим три основных типа: arena, pool и slab — когда какой использовать, как реализовать, и какие подводные камни ждут. Смотреть реализацию

    habr.com/ru/companies/otus/art

    #C++ #кастомные_аллокаторы #управление_памятью #malloc #фрагментация_памяти #локальность_кэша #многопоточность

  10. Кастомные аллокаторы для игровых движков: arena, pool и slab на C++

    Стандартный malloc — универсальный инструмент, но в геймдеве универсальность часто означает «недостаточно быстро». Когда бюджет кадра 16 мс, а каждый кадр рождаются тысячи объектов, имеет смысл разобраться в специализированных аллокаторах. Рассмотрим три основных типа: arena, pool и slab — когда какой использовать, как реализовать, и какие подводные камни ждут. Смотреть реализацию

    habr.com/ru/companies/otus/art

    #C++ #кастомные_аллокаторы #управление_памятью #malloc #фрагментация_памяти #локальность_кэша #многопоточность

  11. 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).

  12. As my #Friendica server, my-place.social, has grown to some 315 active users in just 5 months, I'm starting to hit up against #mariaDB limitations relating to the default memory manager, #MALLOC. This weekend I'm going to replace it with #jemalloc to reduce stalls, memory fragmentation issues, out-of-memory problems, and instability.

    Friendica puts a lot of pressure on the database, mariaDB in this case, much more than Mastodon apparently does on PostgreSQL. My feeling is that the Mastodon developers have done much better database tuning.

    But, none-the-less, the update must be done. This will be done on an Ubuntu server.

    Does anyone who has changed the MariaDB or mySQL memory manager have any advice to share to keep me out of trouble?

    BTW, #TCMalloc is not an option as other admins have reported crashes using it with Friendica.

  13. О механизмах безопасности OpenSSH: разбираем уязвимости 2024 года

    Прошлый год интересно проходил для SSH. Весной — бэкдор в xz-utils (CVE-2024-3094), в результате эксплуатации которого были скомпрометированы системы с systemd. В июле — критически опасная уязвимость «состояния гонки» для систем на базе glibc, получившая название regreSSHion. Спустя еще неделю была опубликована схожая проблема, получившая идентификатор CVE- 2024- 6409. А в августе — еще одна, уже специфичная для FreeBSD, CVE-2024-7589. Как заявляют исследователи, успешная эксплуатация «состояний гонки» позволяет получить RCE (удаленное выполнение кода) на подверженных системах. Более того, regreSSHion — главный баг, ставящий под угрозу безопасность множества SSH-серверов с glibc. Интересно, что эксплуатация уязвимости не требует особой конфигурации сервера (проблема актуальна и для конфигурации по умолчанию). При этом публичного PoC нет до сих пор. Мы решили разобраться в вопросе: так ли страшны эти «состояния гонки», так ли критически опасны? И какие механизмы в sshd призваны не допустить эксплуатации этой уязвимости или хотя бы уменьшить ущерб в случае успешной атаки?

    habr.com/ru/companies/pt/artic

    #openssh #fsop #glibc #rce #seccomp #regression #состояние_гонки #freebsd #github #malloc

  14. @AndyScott

    Well, based on that argument against #Python, you can't be sure #Rust or #Go or any other language isn't capable of producing memory management bugs either.

    In which case, try to pick a tool that reduces the risk, even if you can't guarantee it eliminates it entirely. I love C - but manual memory mangement should be the go-to in a very small number of problem domains these days, IMHO.

    #MemoryManagement #malloc #free

  15. Any #macos programmers seeing this as new warning?

    malloc: nano zone abandoned due to inability to reserve vm space.

    I’ve never seen it before and recently upgraded to Sequoia. My reading of what little I find on the web is that the nano zone (Mork?!) shouldn’t be used unless environment variable MallocNanoZone=1.

    Setting MallocNanoZone=0 clears the warning, disabling the nano zone, which may or may not be a good thing.

    This is just hobby C programming that I’ve been doing all year, nothing changed but the OS upgrade.

    #programming #malloc #c

  16. CW: re: if the C code gets confused and asks Rust to free the same pointer twice, Rust's allocator is likely to become terminally confused.

    @brokenix

    Just let me copy that pointer, I will free the malloc area later. Pinky swear.

    #Malloc #Free

  17. [Перевод] Как malloc сломала JPGLoader в Serenity, или как выиграть в лотерее

    Пару лет назад мне выпала возможность расследовать в SerenityOS интересный баг, связанный с декодированием изображений JPG, которые по какой-то причине при просмотре выглядели так, как вы видите выше. Странно, не так ли? Похоже, будто просто перепутали RGB и BGR. При этом внесение в JPGLoader.cpp следующего изменения: - const Color color { (u8)block.y[pixel_index], (u8)block.cb[pixel_index], (u8)block.cr[pixel_index] };
    + const Color color { (u8)block.cr[pixel_index], (u8)block.cb[pixel_index], (u8)block.y[pixel_index] };
    context.bitmap->set_pixel(x, y, color); приводит к корректному показу картинки. Вроде бы можно считать дело закрытым! …Но нет. Возникает вопрос, почему вообще произошёл этот сбой?

    habr.com/ru/companies/ruvds/ar

    #ruvds_перевод #serenityos #jpgloader #с++ #unix #баги #rgb #malloc

  18. Почему проверять результат вызова malloc c помощью assert плохая идея

    Указатель, который вернула функция malloc, необходимо проверить перед использованием. Неправильным решением будет использовать для этого макрос assert. В этой статье мы разберём, почему это является антипаттерном.

    habr.com/ru/companies/pvs-stud

    #malloc #assert #макросы #си #си++ #c #c++ #качество_кода #нулевые_указатели

  19. Следует ли проверять указатель на NULL перед вызовом функции free?

    Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

    habr.com/ru/companies/pvs-stud

    #c #си #программирование #free #malloc #указатели #макросы #нулевые_указатели

  20. Следует ли проверять указатель на NULL перед вызовом функции free?

    Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

    habr.com/ru/companies/pvs-stud

    #c #си #программирование #free #malloc #указатели #макросы #нулевые_указатели

  21. New Blog article…

    Here’s my take on how "Mesh: Compacting Memory Management for C/C Applications" relates to GSlice:

    GSlice considerations and possible improvements

    testbit.eu/2019/gslice-conside

    #GSlice #MESH #Slab #Hugepages #HUGETLB #Malloc #memalign etc