Рубрика «управление памятью»
Паттерны доступа к данным, которые выбесят ваш процессор
2026-07-03 в 13:02, admin, рубрики: c++, intel, ruvds_перевод, Железо, замедление кода, системное программирование, управление памятью
Сборщик мусора в Dart. Часть 1: память и указатели
2026-07-01 в 10:05, admin, рубрики: dart, dart vm, flutter, garbage collector, gc, tagged pointers, сборка мусора, указатели, управление памятьюПро сборщик мусора сейчас почти не говорят, при этом я часто слышу от коллег, что на собеседованиях про него спрашивают. И ещё заметил, что это один из популярных вопросов. Нормальных статей или обзоров про это почти нет, а если и есть, то они тяжёлые и очень нагруженные технической частью, которую понимают только сами создатели статей.
Эта статья — моя попытка объяснить вам доходчивым языком, что же такое Garbage Collector в Dart, объяснить почему эти некоторые знания нам нужны на практике и что из всей этой тяжелой, технической внутрянки вам необходимо знать.
Как правильно управлять диалогами в QML: Singleton + JavaScript Promise
2026-05-08 в 7:59, admin, рубрики: createObject, JavaScript Promise, QML, qt, QtQuick.Controls, singleton, диалоги, динамические компоненты, управление памятьюПочему управление диалогами в QML почти всегда сделано плохо
Уже не первый раз сталкиваюсь в проектах на Qt QML с проблемой управления диалогами и всплывающими окнами.
QML — декларативный язык и это здорово! Мы описываем, что хотим видеть на экране, и, если всё сделали правильно, при запуске программы получаем желаемый результат.
Но иногда хочется динамики — и именно с диалогами начинаются проблемы, которые все решают по-разному. Кто-то продолжает так же декларативно описывать диалог для очередного экрана приложения. Да, так можно поступить, но у этого подхода есть несколько проблем.
ПерваяЧитать полностью »
Принципы DOD в C++: Часть 1. Оптимизация структур
2026-02-22 в 10:15, admin, рубрики: alignment, c++, DOD, padding, профилирование, управление памятьюПриветствую всех, кто хочет делать свой код быстрым и оптимальным. В этой статье мы расссмотрим несколько простых способов, как можно оптимизировать программу при работе со структурами.
Размещение данных в памяти. L1, L2, L3 кэши и RAM
Мы все знаем, что данные (переменные, поля классов и т.д.) размещаются в "памяти". Но зачастую программист даже не задумывается, что именно представляет из себя эта абстрактная "память". Давайте рассмотрим этот вопрос чуть глубже, посколько понимание этого позволит ускорить код на двузначное число процентов.
Как malloc() и free() управляют памятью в C
2025-03-08 в 17:11, admin, рубрики: C, кастомный аллокатор, управление памятьюПривет!
Сегодня рассмотрим, почему free() не всегда освобождает память, как работает malloc(), когда glibc действительно возвращает память в ОС, и как избежать фрагментации хипа. А так же напишем кастомный аллокатор.
malloc
Вызываете malloc(42), думаете, что получили 42 байта и живёте счастливо. Но всё гораздо сложнее. malloc() — это не просто «дай мне N байтов», а целая система управления памятью, которая старается минимизировать фрагментацию, уменьшить системные вызовы и ускорить выделение памяти.
malloc(size_t size) — это стандартная функция из Читать полностью »
Потрошим golang: как устроена память
2023-12-07 в 8:19, admin, рубрики: Go, golang, vk cloud, управление памятью
Привет, меня зовут Стас, и я работаю в VK Cloud над разработкой облачных сервисов в команде Data Masters. Сервисы, запрошенные клиентами, так или иначе должны развернуться в том виде, в котором клиенты их запросили, в адекватные сроки и без ошибок. Существует множество механизмов, позволяющих этого достичь, и еще больше существует ошибок и проблем, которые мешают в достижении этих целей.
Для любого специалиста, наверное, самой грустной ошибкой будет та, которая рождается из его незнания используемого инструмента. Наверняка практически каждый разработчик со сколь-нибудь большим опытом работы не раз сталкивался с такими проблемами хотя бы раз.
Единственным надежным решением таких проблем является глубокое погружение в теорию и исследования инструмента, которым решаются поставленные проблемы. В нашем случае таким инструментом является язык Go. И как же замечательно, что исследование его внутренностей — совсем легкое дело. В том числе когда дело касается использования памяти.
Читать полностью »
Борьба с фрагментацией памяти в ядре Linux
2022-06-26 в 10:00, admin, рубрики: kernel, linux, ruvds_перевод, Блог компании RUVDS.com, дефрагментация, Настройка Linux, Разработка под Linux, системное администрирование, управление памятью, фрагментация памяти
В этой компиляции из двух статей приводятся распространенные методы предотвращения фрагментации памяти в Linux, а также разбираются принципы ее уплотнения, способы просмотра индекса фрагментации и прочие нюансы.Читать полностью »
Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации
2022-06-02 в 7:56, admin, рубрики: javascript, node.js, Блог компании Яндекс, интерфейсы, Клиентская оптимизация, нехватка памяти, Разработка веб-сайтов, Серверная оптимизация, управление памятью, утечки памятиИнтро: почему я написал эту статью
Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого:

На своих серверах мы должны генерировать сотни миллионов уникальных страниц в сутки — это сложнее, чем просто отдавать одни и те же ресурсы. Генерация страницы не должна быть слишком требовательной к памяти сервера.
Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.
- Категории проблем с памятью
- Ограничения по памяти для разных типов данных
Heap
Buffer, TypedArray
String
Map, Set
Call stack
Типичные задачи, в которых можно наткнуться на ограничения по памяти - Soft-утечки
Пример из продакшена
Как получаются soft-утечки
Как их обнаружить
Как найти причину
1. Memory Allocation Timeline
2. Техника трёх снапшотов
3. queryObjects
Тренируемся находить утечки - Hard-утечки
Пример из продакшена
Как бороться - Нестандартные оптимизации памяти в Node.js
Исходный код
Module._pathCache
Несколько версий пакета в node_modules
require('./data.json') - Заключение
Базовые концепции аллокаторов
2021-11-20 в 10:52, admin, рубрики: c++, аллокаторы, управление памятьюНаходясь в поисках какой-то агрегированной информации о стандартных приёмах, используемых при проектировании кастомных аллокаторов, я обнаружил, что существует достаточное количество статей о том, как аллокаторы работают в C++, каких-то базовых вариантах или наоборот очень специфических версиях, но ничего достаточно общего. Попался только замечательный доклад замечательного Андрея Александреску про неправильную архитектуру std::allocatorЧитать полностью »
Как SparkFun поймала патентного тролля
2021-07-13 в 10:55, admin, рубрики: ITSumma, malloc, MAU, pcDuino, SparkFun, SPI, Блог компании ITSumma, вымогательство, копирайт, патентная реформа, патентный тролль, патентование, патенты, Производство и разработка электроники, свидетельство канарейки, управление памятьюКак работает машина юридического вымогательства

Иллюстрация из судебного иска Altair Logix против SparkFun
SparkFun любит писать о разных юридических проблемах, с которыми приходится разбираться, будь то угрозы от Sparc International, вынужденная утилизация 4000 мультиметров из-за «неправильного» цвета или поддельные микросхемы. К сожалению, теперь пришло время поговорить о патентных троллях.
Поскольку некоторые мои зарубежные друзья при упоминании этой фразы улыбаются, то нужно пояснить: здесь ничего весёлого. Патентный тролль — это компания, специально созданная для покупки прав на несколько патентов и последующего судебного преследования всех, с кого можно получить деньги.
Читать полностью »
