Что означает "грязный флаг" / "грязные значения"?

Я вижу некоторые переменные с именем "грязные" в некотором исходном коде на работе и какой-то другой код. Что это значит? Что такое грязный флаг?

Ответы

Ответ 1

Как правило, грязные флаги используются для указания того, что некоторые данные изменились и в конечном итоге должны быть записаны в какой-либо внешний адрес. Он не записывается незамедлительно, так как смежные данные также могут быть изменены и записывать большую часть данных, как правило, более эффективно, чем писать отдельные значения.

Ответ 2

Здесь более глубокая проблема, а не "Что означает" грязный "? в контексте кода я думаю, что мы действительно должны спрашивать -" грязный" подходящий термин для того, что обычно предназначено.

"Грязный" потенциально запутанный и вводящий в заблуждение. Это предложит многим новым программистам испорченные или ошибочные данные формы. Работа "грязная" подразумевает, что что-то не так и что данные необходимо очистить или удалить. Что-то грязное, в конце концов, нежелательно, нечисто и неприятно.

Если мы подразумеваем, что "форма была затронута" или "форма была изменена, но изменения еще не были записаны на сервер", то почему бы не "коснуться" или "writePending", а не "грязно"?

Что я думаю, это вопрос, который необходимо решить сообществу разработчиков.

Ответ 3

Грязный может означать несколько вещей, вам нужно предоставить больше контекста. Но в очень общем смысле "грязный флаг" используется, чтобы указать, было ли что-то затронуто/изменено.

Например, см. использование "грязного бита" в контексте управления памятью в wiki для таблицы страниц

Ответ 4

"Грязный" часто используется в контексте кэширования, от кэширования на уровне приложений до архитектурного кэширования.

В общем, существует два типа механизмов кэширования: (1) запись; и (2) записать обратно. Мы используем WT и WB для краткости.

WT означает, что запись выполняется синхронно как в кеш, так и в хранилище резервных копий. (Говоря, например, кэш и хранилище поддержки, они могут поддерживать основную память и диск соответственно в контексте баз данных).

В отличие от этого, для WB, запись выполняется в только. Запись в хранилище резервных копий откладывается до тех пор, пока блоки кэша, содержащие данные, не будут изменены или заменены новым контентом.

Данные - это грязные значения. При реализации кэша WB вы можете установить грязные биты, чтобы указать, содержит ли блок кэша грязное значение или нет.