Повторное использование памяти в трех режимах
Повторное использование памяти в трех режимах
Для объектов, созданных как в основанном на стеке режиме, так и в динамическом режиме, возникает вопрос, что делать с неиспользуемыми объектами? Возможно ли память, занятую таким объектом, повторно использовать в более поздних инструкциях создания новых объектов?
В статической модели проблемы не существует: для каждого объекта есть одна навсегда присоединенная сущность. Выполнение требует поддерживать связь с объектом все время, пока сущность активна. Поэтому повторное использование памяти невозможно в настоящей трактовке этого понятия. Однако при острой нехватке памяти похожая технология иногда используется. Если вы уверены, что объекты, присоединенные к двум сущностям, никогда не нужны одновременно, и эти сущности не должны сохранять свои значения между последовательными использованиями, то можно на одной и той же памяти размещать две или более сущности, будучи совершенно увереными в безопасности того, что вы делаете. Эта техника, известная как перекрытие (overlay), достаточно ужасная, все еще практикуется при работе вручную.
В режиме, основанном на стеке, объекты, присоединенные к сущностям, могут быть размещены в стеке. В языках с блочной структурой ситуация упрощается: размещение объектов происходит одновременно для всех сущностей данного блока, допуская использование одного стека для всей программы. Схема действительно элегантна, потому что использует два множества сопутствующих событий:
Динамическое свойство (событие времени выполнения) Статическое свойство (положение в тексте программы) Техника реализации Размещение объекта Начало блока Вталкивание объектов (один для каждой локальной сущности блока) в стек Удаление объекта Конец блока Выталкивание объектов из стекаТаблица 9.1.Размещение и удаление объектов в языках с блочной структурой
Простота и эффективность этой техники реализации является одной из причин успешности языков с блочной структурой. В динамическом режиме все не так просто. Проблема связана с мощью самого механизма: в период компиляции ничего нельзя сказать о создании объекта, невозможно предсказать, когда данный объект может стать ненужным.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Повторное использование анимации для кнопки в состоянии hover
Повторное использование анимации для кнопки в состоянии hover Одна из приятных особенностей ключевых кадров состоит в том, что их можно повторно использовать внутри нескольких блоков кода в стилевом листе. Например, применить ту же анимацию «pulse» к кнопке в состояниях hover
7.2.2. Использование mtrace() для отслеживания распределений памяти
7.2.2. Использование mtrace() для отслеживания распределений памяти Один из простых способов нахождения всех утечек памяти в программе предусматривает регистрацию всех вызовов malloc() и free(). По окончании программы очень легко сопоставить блоки, распределенные через malloc(), с
18.6.4 Использование прямого доступа к памяти
18.6.4 Использование прямого доступа к памяти Windows 95 OSR2 и более поздние версии обладают возможностью использования прямого доступа к памяти (Direct Memory Access - DMA) при обращении к IDE-дискам. Однако эта опция не часто используется по умолчанию, хотя ее применение в виртуальном
3.6. Повторное использование идентификаторов
3.6. Повторное использование идентификаторов Структура ipc_perm (раздел 3.3) содержит переменную seq, в которой хранится порядковый номер канала. Эта переменная представляет собой счетчик, заводимый ядром для каждого объекта IPC в системе. При удалении объекта IPC номер канала
7.4. Повторное использование
7.4. Повторное использование Элементы повторного использования Любой программный продукт (текст программы, архитектура, сценарий или документация) может быть использован повторно. Как сказано в главе 3, в объектно-ориентированных языках программирования первичным
16 Повторное использование кода: не изобретая колесо
16 Повторное использование кода: не изобретая колесо Когда великий человек воздерживается от действий, его сила чувствуется за тысячу миль. —Тао Ти Чинг (популярный неправильный перевод) Нежелание выполнять ненужную работу считается великой добродетелью у
16 Повторное использование кода: не изобретая колесо
16 Повторное использование кода: не изобретая колесо Когда великий человек воздерживается от действий, его сила чувствуется за тысячу миль. —Тао Ти Чинг (популярный неправильный перевод) Нежелание выполнять ненужную работу считается великой добродетелью у
7.4.3. Использование памяти
7.4.3. Использование памяти Файл /proc/meminfo хранит сведения об использовании системной памяти. Указываются данные как о физической памяти, так и об области подкачки. Во второй и третьей строках значения даны в байтах, в остальных строках — в килобайтах. Приведем пример:% cat
Повторное использование (Reusability)
Повторное использование (Reusability) Определение: повторное использованиеПовторное использование есть способность элементов ПО служить для построения многих различных приложений. Необходимость и возможность повторного использования возникает из наблюдений сходства
Повторное использование персонала
Повторное использование персонала Наиболее просто повторно использовать разработчиков, что широко практикуется в промышленности. Переводя разработчиков ПО с одного проекта на другой, фирмы избегают потери накопленного ими ранее опыта и обеспечивают его достойное
Повторное использование проектов и спецификаций
Повторное использование проектов и спецификаций Этот подход является, по существу, более организованной версией предыдущего - повторного использования знаний, умений и опыта. Как показало обсуждение вопроса о документации, само представление проекта как независимого
Повторное использование исходного текста
Повторное использование исходного текста Несмотря на полезность повторного использования персонала, проектов и спецификаций, здесь не реализуется ключевая цель повторного использования. Если мы хотели бы найти программистский эквивалент повторно используемых
Повторное использование абстрактных модулей
Повторное использование абстрактных модулей Все предыдущие подходы, несмотря на их ограниченную применимость, осветили важные аспекты проблемы повторного использования:[x]. Повторное использование персонала необходимо, но недостаточно. Наилучшие повторно
Интерфейс и повторное использование реализаций
Интерфейс и повторное использование реализаций Знакомясь с объектным подходом по другим источникам, вы могли видеть в них предостережения использования "наследования реализаций". Однако в нем нет ничего плохого.Повторное использование имеет две формы: использование
О режимах и настройках при ночной фотосъемке
О режимах и настройках при ночной фотосъемке В любительских камерах обычно присутствуют сюжетные программы. В современных камерах ночные режимы есть практически всегда. Некоторые модели снабжены режимами «Ночной портрет», «Ночной пейзаж», «Фейерверк» и т. д.
О режимах съемки
О режимах съемки Автоматический режим съемкиЭто самый неудачный режим для реализации творческих замыслов. Конечно, если вы снимаете в хорошую ясную погоду обычные сюжеты типа «я на фоне моря», памятники и т. д., то режим авто вполне неплохо справится с поставленной