Публикации по теме 'memory-management'


Руководство по указателям в C
В мире программирования на C и C++ указатели являются важным инструментом для разработчиков. Многие современные языки программирования абстрагируют функцию указателей от прямого контроля разработчика и вместо этого обрабатывают ее сами. В языках более низкого уровня у разработчика есть возможность напрямую взаимодействовать с памятью. По сути, указатель — это просто адрес ячейки памяти. Как переменные хранятся в памяти C хранит все переменные в некоторой памяти. Это может быть..

Профилирование локальности памяти для Go
Язык Go поставляется со встроенными хорошими инструментами для профилирования процессора и памяти. Но как насчет локальности памяти? Одна из вещей, которая может замедлить работу программы, — это переполнение кеша ЦП; но это трудно сказать при проверке кода или просмотре профиля ЦП. Существующий инструмент для ответа на этот вопрос — Cachegrind , который имитирует производительность кэшей ЦП. Я решил попробовать заставить его работать с простой программой Go. Вот канонический пример..

Как работает управление памятью в Python
В Python управление памятью осуществляется автоматически. Это означает, что программисту не нужно беспокоиться о выделении и освобождении памяти. Интерпретатор Python позаботится об этом за вас. Существует два основных способа управления памятью в Python: Подсчет ссылок Вывоз мусора Подсчет ссылок Подсчет ссылок — это простой способ управления памятью. Каждый объект в Python имеет счетчик ссылок. Счетчик ссылок увеличивается всякий раз, когда создается новая ссылка на..

Неожиданная стоимость общих указателей
Немного предыстории Те, кто прочитал наш первый пост в блоге , знают, что в Oxla мы стремимся выявлять и устранять даже самые незначительные недостатки для повышения производительности. Недавно мы профилировали холодный запуск запроса и обнаружили неожиданную проблему — вызовы memset потребляют значительную часть процессорного времени. Прежде чем рассказать больше, мы должны углубиться во внутреннюю работу Oxla, чтобы помочь вам понять причину этого наблюдения. Oxla использует..

Глубокое погружение в слабое управление памятью в JavaScript
Изучение слабых API JavaScript Процесс управления памятью в JavaScript на первый взгляд кажется простым. Память управляется виртуальной машиной JavaScript через процесс восстановления памяти сборки мусора. Однако мы не можем заставить сборку мусора работать программно. Браузер сам решает, когда пришло время для его выполнения. Поскольку для этого нет общих спецификаций, они будут варьироваться от одного поставщика к другому. Это непредсказуемый и недетерминированный процесс. Это..

Javascript WeakMap и WeakSet
Управление памятью в JavaScript выполняется автоматически, и этот процесс выполняется сборщиком мусора. Сборщик мусора отвечает за удаление из памяти ненужных объектов, которые больше не используются. Это действие предпринимается для освобождения места в памяти и повышения производительности. Сборщик мусора отслеживает количество ссылок на объекты в памяти. Объекты с нулевым счетчиком ссылок удаляются из памяти. Сборщик мусора периодически вмешивается во время выполнения приложения и..

Статические и динамические массивы: красота Javascript
Если бы вашим первым языком программирования был Javascript, как это было у меня, то вы могли бы немного потеряться в самом названии. Вы не услышите термин «статический» или «динамический», когда речь идет о массивах в Javascript. Так в чем именно разница между этими двумя? Начнем с понимания того, что такое статический массив. Техническим определением будет реализация массива, который выделяет фиксированный объем памяти , используемый для хранения значений массива. При..