Управление памятью
-
Сборка мусора в управлении памятью
Сборка мусора в управлении памятью: автоматическая очистка неиспользуемой памяти. Методы, влияние на производительность, альтернативы и ресурсы.
-
Утечки памяти в компьютерных программах
Утечка памяти в программировании: что это, причины и последствия. Неправильное управление памятью приводит к замедлению работы и сбоям программ.
-
Подсчет ссылок: техника отслеживания ресурсов в программировании
Подсчет ссылок в программировании: техника отслеживания ресурсов, используемая в алгоритмах сборки мусора. Графы ссылок и управление памятью.
-
Ошибка сегментации: причины и последствия
Ошибка сегментации (segfault): причины, последствия и обработка в программировании. Защита памяти, сбои программ и аварийное завершение процессов.
-
Кодирование CDR: сжатое представление списков Lisp
CDR-кодирование: сжатое представление списков Lisp, разработанное MIT. Экономит память, улучшает производительность за счет оптимизации ссылок на данные.
-
Общие библиотеки и разделяемый код
Общие библиотеки: что это такое? Использование кода разными программами, динамическая и статическая линковка, экономия места и ресурсов.
-
Управление памятью компьютера: Методологии и подходы
Управление памятью компьютера: выделение и освобождение ресурсов для программ операционной системой. Важно для многозадачности и эффективной работы.
-
Ленивая инициализация в программировании и структурах данных
Ленивая инициализация в программировании: отложенное создание объектов и вычислений для оптимизации ресурсов. Узнайте, как это работает и зачем нужно!
-
Переполнение буфера в динамической памяти (куче)
Переполнение буфера в куче: уязвимость, позволяющая злоумышленникам перезаписывать данные и структуры в памяти, включая указатели функций. Безопасность ПО.
-
Слабые ссылки в программировании
Слабые ссылки в программировании: что это такое и как работают? Предотвращение утечек памяти и разрыв циклических ссылок в языках C#, Java, Python и др.
-
Жизненный цикл объектов в программировании
Жизненный цикл объекта в ООП: создание, использование, уничтожение. Управление памятью, сборка мусора, время жизни объектов в разных языках программирования.
-
Вектор описания данных: структура и применение в программировании.
Вектор допов: структура данных в программировании для хранения информации о памяти объекта, особенно массивов. Размер, тип элементов и количество.
-
Динамическое управление памятью в языке C
Динамическое управление памятью в C: функции `malloc`, `calloc`, `realloc`, `free`. Выделение и освобождение памяти, оптимизация производительности и альтернативы `new/delete`.
-
Копирование при записи: эффективная техника дублирования данных
Копирование при записи (COW) – эффективная техника управления ресурсами в программировании для быстрого дублирования данных, особенно в ОС и fork().
-
Поиск и отладка проблем с памятью в программном обеспечении
Поиск ошибок памяти в программах: от утечек до переполнений буфера. Обзор отладчиков памяти, мониторинга выделения/освобождения памяти и методов отладки.
-
Трассирующая сборка мусора: управление памятью в программировании
Сборка мусора (tracing garbage collection) – автоматическое управление памятью в программировании. Определение и удаление неиспользуемых объектов.
-
Указатели в программировании
Указатели в программировании: что это такое? Хранение адресов памяти, разыменование, аналогия с номерами страниц. Основы работы с памятью компьютера.
-
Паттерн «Одноразовый посетитель» в программировании
Паттерн Single Serving Visitor в программировании: оптимизация для одноразовых посетителей. Экономия памяти при обходе и выполнении простых задач.
-
Временные файлы: создание, использование и удаление
Временные файлы: что это такое и зачем нужны? Создаются для хранения данных программами, при нехватке памяти или для обмена данными. Узнайте больше!
-
Трассировка стека вызовов функций
Трассировка стека: отчёт о текущих фреймах стека во время выполнения программы. Объяснение работы стека и кучи в программировании.
-
PurifyPlus: Отладчик памяти для C и C++
PurifyPlus: отладчик памяти для C/C++. Обнаружение ошибок доступа к памяти, динамическая верификация. Альтернатива Valgrind, Insure++. IBM, UNICOM Systems.
-
Принцип RAII: Управление ресурсами через жизненный цикл объектов
RAII: идиома программирования для управления ресурсами в C++ и других языках. Автоматическое выделение/освобождение ресурсов через конструкторы/деструкторы.
-
Проблема Funarg: реализация функций первого класса и управление стеком
Проблема funarg в программировании: трудности реализации функций как объектов первого класса при использовании стековой памяти. Решения: замыкания, запрет ссылок.
-
Висячие и неинициализированные указатели в программировании
Висячие и "дикие" указатели в программировании: что это, причины возникновения и опасные последствия. Нарушения безопасности памяти и непредсказуемое поведение.
-
Статические переменные в программировании
Статические переменные в программировании: что это, как работают и чем отличаются от автоматических и динамических. Рассказываем о времени жизни переменных.
-
Блок информации потока (TIB/TEB) в Windows: структура и управление стеком
Блок информации потока (TIB/TEB) в Win32: структура данных для получения информации о потоке без API. Доступ через сегменты FS/GS. PEB, IAT и аргументы процесса.
-
Управление памятью в многопоточных приложениях: Thread Local Storage
Локальное хранилище потоков (TLS) в программировании: управление памятью, доступ к глобальным данным в многопоточных системах. Оптимизация и ограничения TLS.
-
Системные ресурсы в вычислительной технике
Системные ресурсы компьютера: что это такое? Определение, виды (физические и виртуальные), управление ресурсами и предотвращение утечек. Облачные вычисления.
-
Пулы памяти: метод динамического выделения памяти
Динамическое выделение памяти: пулы памяти для эффективного управления в реальном времени. Альтернатива malloc/new, избегающая фрагментации и повышающая производительность.
-
Финалайзеры и деструкторы в программировании
Финалайзеры в программировании: методы очистки объектов перед удалением. Разбор, проблемы использования и альтернативы (Dispose Pattern). C++, Smalltalk.
-
Распределение памяти на стеке в вычислительных системах.
Стеки в компьютерной архитектуре: область памяти для данных LIFO. Используются для хранения локальных переменных и адресов возврата функций.
-
Утечка дескрипторов: причины и последствия
Утечка дескрипторов: тип ошибки ПО, приводящий к исчерпанию ресурсов и снижению производительности. Причины, последствия и связь с утечками памяти.
-
Недостаток данных в буфере: причины и последствия
Буферный недолив: что это такое? Причины и последствия, когда скорость чтения данных превышает скорость их записи в буфер. Объяснение простыми словами.
-
Циклические зависимости в программных модулях
Циклические зависимости в ПО: что это, почему вредны и когда допустимы? Антипаттерн в разработке, особенности в функциональном программировании.
-
Пул объектов: шаблон проектирования для повышения производительности.
Пул объектов: паттерн проектирования для повышения производительности. Повторное использование объектов вместо создания/удаления. Оптимизация и сложность управления временем жизни.
-
Раздел BSS: Статически выделяемые переменные без инициализации
BSS секция в программировании: область для статических переменных без начальных значений. Уменьшает размер файла, оптимизирует загрузку программы.
-
Нехватка памяти: причины и последствия
Нехватка памяти (OOM): что это, причины возникновения и как виртуальная память помогает избежать этой ошибки. Оптимизация использования RAM.
-
Фрагментация памяти: причины и последствия
Фрагментация памяти: что это такое и как она влияет на производительность компьютера? Узнайте о причинах и последствиях неэффективного использования дискового пространства.
-
Механизм управления памятью: Slab-аллокация
Эффективное управление памятью: Slab allocation – механизм для снижения фрагментации и повторного использования памяти под объекты одного типа. Solaris 2.4.
-
Управление освобождением памяти и сборка мусора в компьютерных системах.
Освобождение памяти в программировании: что такое "мусор", синтаксический и семантический мусор, и зачем нужна деаллокация для эффективного использования ресурсов.
-
Ручное управление памятью в программировании
Управление памятью в программировании: ручное выделение/освобождение памяти (C, C++), сборка мусора (Java, Swift). Методы и история развития.
-
Алгоритм Чени для сбора мусора: метод "останови и скопируй"
Алгоритм Чейни: эффективный метод трассировочной сборки мусора в программировании. Копирование живых объектов между полупространствами для оптимизации памяти.
-
Direct binding
-
Storage violation