home.social

#куча — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #куча, aggregated by home.social.

fetched live
  1. [Перевод] Иллюстрированный разбор одной пользовательской реализации malloc()

    Программисты, работающие с языком C, несомненно, узнают стандартную функцию malloc() . Это главный аллокатор памяти в языке, который тесно связан со всем известными ошибками сегментирования. Функция malloc() – именно то средство, при помощи которого программы приобретают память во время выполнения. Зачастую она также превращается в основной инструмент создания объектов и управления ими. Учитывая такой центральный статус malloc() , удивлён, что большинство программистов обращаются с ней как с чёрным ящиком. Этот пост призван немного исправить ситуацию, и в нём рассказано, что именно происходит под капотом. Также рассмотрим одну из возможных реализаций этой функции.

    habr.com/ru/articles/1060238/

    #память #аллокаторы #куча #алгоритмы #оптимизация

  2. [Перевод] Структуры данных на практике. Глава 12: Кучи и очереди с приоритетом

    «Плохие программисты беспокоятся о коде. Хорошие программисты беспокоятся о структурах данных и их взаимосвязях», — Линус Торвальдс Споры о планировщике Наша команда вела спор о структурах данных. Нам нужен был планировщик задач операционной системы реального времени, способный: Вставлять новые задачи с приоритетом (O(log n)) Запрашивать задачу с наибольшим приоритетом (O(1)) Удалять задачу с наибольшим приоритетом (O(log n)) Кто-то предложил: «Давайте используем отсортированный массив». Но вставка будет занимать O(n) — придётся сдвигать элементы. Кто-то ещё сказал: «Возьмём связанный список». Однако поиск наибольшего выполняется за O(n) — необходимо сканировать весь список. Третий вспомнил о двоичном дереве поиска. Но из Главы 9 мы уже знаем, что BST ужасно ведут себя с кэшем. Споры продолжались, пока кто-то не упомянул двоичные кучи. Покончить с разногласиями позволили результаты бенчмарка

    habr.com/ru/articles/1016636/

    #куча #очереди_с_приоритетом #структуры_данных

  3. [Перевод] Выделение памяти в Go

    Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.

    habr.com/ru/companies/timeweb/

    #go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча

  4. Angular и память: как не создавать утечки

    Фронтенд-разработка в последние годы стала сложнее. Одностраничные приложения живут часами, пользователи открывают вкладки и оставляют их работать, данные приходят с серверов постоянно. В этом хаосе часто кажется, что главное — чтобы компонент рендерился, а Observable выдавал данные. Но даже в самом аккуратном коде могут появляться утечки памяти. Утечка памяти возникает, когда объекты, которые больше не нужны, остаются в памяти, потому что на них ещё есть ссылки. Для браузера они живы, сборщик мусора их не трогает. Для Angular‑разработчика это важно, потому что:

    habr.com/ru/articles/949256/

    #утечка_памяти #angular #отписки #память #стэк #куча #heap #stack #ангуляр

  5. Куча таймеров в node.js

    А знаете ли вы, как на самом деле работают таймеры в node.js? В этой статье мы разберемся, как хранятся таймеры, когда запускаются и как в целом все работает вплоть до системных вызовов.

    habr.com/ru/articles/830644/

    #javascript #nodejs #libuv #куча #очередь #epoll #linux #таймеры