'脏旗'/'脏值'是什么意思?

pio*_*rek 19 caching computer-architecture dirty-data

我在工作中的一些源代码和其他一些代码中看到了一些名为'dirty'的变量.这是什么意思?什么是脏旗?

Die*_*ühl 32

通常,脏标志用于指示某些数据已更改并且最终需要写入某个外部目标.它不是立即写入的,因为相邻数据也可能会发生变化,写入大量数据通常比编写单个值更有效.


小智 16

这里有一个更深层次的问题 - 而不是"肮脏意味着什么?" 在代码的上下文中,我认为我们真的应该问 - "脏"是一个适合通用意图的术语.

'Dirty'可能令人困惑和误导.它会建议许多新程序员腐败或错误的表单数据."脏"工作意味着出现了问题,需要清除或删除数据.肮脏的东西,毕竟是不受欢迎的,不洁净和令人不快的.

如果我们的意思是"表格已经被触及"或"表格已被修改但变更尚未写入服务器",那么为什么不"触摸"或"写入"而不是"脏"?

我认为,这是编程社区需要解决的问题.

  • 我认为"脏"是一个好词.它很短(比`writePending`短得多),并没有用于其他概念.由于其他原因,写入可能有待处理,或者有趣的原因可能有所不同.计算机环境中的"脏"在任何类型的高速缓存/一致性/回写系统中具有[已确定的含义](https://en.wikipedia.org/wiki/Dirty_(computer_science))修改的数据.在维基百科上查找很​​容易:"脏"的消歧页面有该链接.简洁而精确的技术语言非常有用且重要. (3认同)

sam*_*hen 6

脏可能意味着很多事情,你需要提供更多的背景.但是在一般意义上,"脏标志"用于指示是否已触摸/修改某些内容.

例如,请参阅页面表wiki中内存管理上下文中"脏位"的用法


Xia*_*Jia 5

“脏”通常用在缓存上下文中,从应用程序级缓存到架构缓存。

一般来说,缓存机制有两种:(1)直写式(write through);(2) 回写。我们简称为WT和WB。

WT意味着对缓存和后备存储的写入是同步完成的。(例如,通过说缓存和后备存储,它们在数据库上下文中可以分别代表主内存和磁盘)。

相反,对于WB,最初写入缓存。对后备存储的写入被推迟,直到包含数据的缓存块即将被新内容修改/替换。

数据是脏值。在实现WB缓存时,可以设置脏位来指示缓存块是否包含脏值。