我在工作中的一些源代码和其他一些代码中看到一些名为'dirty'的变量。这是什么意思?什么是脏旗?
答案 0 :(得分:30)
通常,dirty flags用于表示某些数据已更改,并且最终需要将其写入某个外部目标。它不是立即写入的,因为相邻数据也可能会发生变化,写入大量数据通常比编写单个值更有效。
答案 1 :(得分:13)
这里有一个更深层次的问题 - 而不是“肮脏意味着什么?”在代码的上下文中,我认为我们真的应该问 - “脏”是一个适合通用意图的术语。
“肮脏”可能令人困惑和误导。它会建议许多新程序员腐败或错误的表单数据。 “脏”工作意味着出现了问题,需要清除或删除数据。肮脏的东西毕竟是不受欢迎的,不洁净和不愉快的。如果我们的意思是“表格已被触及”或“表格已被修改但尚未将更改写入服务器”,那么为什么不“触摸”或“写入”而不是“脏”?
我认为,这是编程社区需要解决的一个问题。
答案 2 :(得分:6)
脏可能意味着许多事情,你需要提供更多的背景。但在一般意义上,“脏标志”用于表示是否已触摸/修改某些内容。
例如,请参阅wiki for Page Table
中内存管理上下文中“脏位”的用法答案 3 :(得分:4)
"脏"通常用于缓存,从应用程序级缓存到体系结构缓存。
一般来说,有两种缓存机制:(1)写入; (2)回写。我们简称WT和WB。
WT 表示写入已完成同步到缓存和后备存储。 (例如,通过说缓存和后备存储,它们可以分别代表数据库上下文中的主内存和磁盘)。
相比之下,对于 WB ,最初写入仅到缓存。对后备存储的写入被推迟,直到包含数据的缓存块即将被新内容修改/替换。
数据是脏值。实现WB高速缓存时,可以设置脏位以指示高速缓存块是否包含脏值。