2009-04-02 4 views
2

Что такое «помеченная память» и как она помогает в уменьшении размера программы?Что такое "отмеченная память"?

+0

Единственное, что появляется в Google для помеченной памяти на данный момент, - это страница stackoverflow :) Возможно, вам нужно уточнить, чтобы рассказать нам, в чем был контекст, в котором вы его слышали. – thomasrutter

+1

Если это домашнее задание, вы можете добавить некоторую информацию о контексте, в котором вы видели этот термин. Можете помочь получить ответ. – MatrixFrog

ответ

1

Не уверен, но возможно, что вы имеете в виду garbage collection, который является процессом автоматического удаления ненужных объектов, созданных при запуске программы.

«Tagged memory» может быть синонимом mark-and-sweep, который является самым основным способом реализации мусорной коллекции.

Если все это неправильно, отредактируйте ваш вопрос, чтобы уточнить.

+0

+1: Абсолютно правильно! – none

0

Here's более подробное описание в деталях реализации относительно того, как это используется для сбора мусора. Вы также можете проверить статью в Википедии о Tagged Pointers.

1

Windows DDK использует «теги пула» при распределении памяти из пула страниц ядра. Он рассчитан на 4 байта памяти на выделение, но позволяет вам маркировать (то есть теги) части памяти ядра, которые могут помочь в отладке и обнаружении утечек памяти.

BTW Я не вижу, как что-либо называемое «помеченная память» может уменьшить размер программного кода. Это звучит как дополнительная работа, которая переводится как «больше кода» и «большая программа». Может быть, это означает как-то уменьшить объем памяти?

3

Возможно, речь идет о tagged union, или, более конкретно, аппаратной реализации, такой как тегированная архитектура, используемая в машинах LISP. В основном метод хранения данных с информацией о типе.

В машине LISP это было сделано в памяти с использованием более длинной длины слова и использованием некоторых дополнительных битов для хранения информации о типе. Обработка и проверка тегов выполнялась неявно в аппаратном обеспечении.

Для реалистичной реализации на C++ типа см. Boost: variant.

+0

Здесь также есть страница wiki о помеченной памяти в аппаратном обеспечении: https://en.wikipedia.org/wiki/Tagged_architecture –

Смежные вопросы