Что означает "грязный флаг" / "грязные значения"?
Я вижу некоторые переменные с именем "грязные" в некотором исходном коде на работе и какой-то другой код. Что это значит? Что такое грязный флаг?
Ответы
Ответ 1
Как правило, грязные флаги используются для указания того, что некоторые данные изменились и в конечном итоге должны быть записаны в какой-либо внешний адрес. Он не записывается незамедлительно, так как смежные данные также могут быть изменены и записывать большую часть данных, как правило, более эффективно, чем писать отдельные значения.
Ответ 2
Здесь более глубокая проблема, а не "Что означает" грязный "? в контексте кода я думаю, что мы действительно должны спрашивать -" грязный" подходящий термин для того, что обычно предназначено.
"Грязный" потенциально запутанный и вводящий в заблуждение. Это предложит многим новым программистам испорченные или ошибочные данные формы. Работа "грязная" подразумевает, что что-то не так и что данные необходимо очистить или удалить. Что-то грязное, в конце концов, нежелательно, нечисто и неприятно.
Если мы подразумеваем, что "форма была затронута" или "форма была изменена, но изменения еще не были записаны на сервер", то почему бы не "коснуться" или "writePending", а не "грязно"?
Что я думаю, это вопрос, который необходимо решить сообществу разработчиков.
Ответ 3
Грязный может означать несколько вещей, вам нужно предоставить больше контекста. Но в очень общем смысле "грязный флаг" используется, чтобы указать, было ли что-то затронуто/изменено.
Например, см. использование "грязного бита" в контексте управления памятью в wiki для таблицы страниц
Ответ 4
"Грязный" часто используется в контексте кэширования, от кэширования на уровне приложений до архитектурного кэширования.
В общем, существует два типа механизмов кэширования: (1) запись; и (2) записать обратно. Мы используем WT и WB для краткости.
WT означает, что запись выполняется синхронно как в кеш, так и в хранилище резервных копий. (Говоря, например, кэш и хранилище поддержки, они могут поддерживать основную память и диск соответственно в контексте баз данных).
В отличие от этого, для WB, запись выполняется в только. Запись в хранилище резервных копий откладывается до тех пор, пока блоки кэша, содержащие данные, не будут изменены или заменены новым контентом.
Данные - это грязные значения. При реализации кэша WB вы можете установить грязные биты, чтобы указать, содержит ли блок кэша грязное значение или нет.