web-dev-qa-db-ja.com

'dirty-flag' / 'dirty-values'はどういう意味ですか?

作業中のソースコードやその他のコードに「dirty」という名前の変数がいくつかあります。どういう意味ですか?ダーティフラグとは何ですか?

19
piotrek

一般に、 ダーティフラグ は、一部のデータが変更され、最終的には外部の宛先に書き込む必要があることを示すために使用されます。隣接するデータも変更される可能性があり、データの大部分を書き込む方が一般に個々の値を書き込むよりも効率的であるため、すぐには書き込まれません。

32
Dietmar Kühl

ここには、「ダーティとはどういう意味ですか?」ではなく、より深い問題があります。コードの文脈では、私たちは本当に尋ねるべきだと思います-「ダーティ」は一般的に意図されているものの適切な用語です。

「ダーティ」は、混乱を招き、誤解を招く可能性があります。これは、多くの新しいプログラマーに、フォームデータの破損または誤りを示唆します。 「ダーティ」という作業は、何かが間違っていること、およびデータをパージまたは削除する必要があることを意味します。汚れたものは、結局のところ、望ましくない、汚れた、不快なものです。

「フォームがタッチされた」または「フォームが修正されたが、変更がまだサーバーに書き込まれていない」という意味の場合、「ダーティ」ではなく「タッチ」または「writePending」を使用しないのはなぜですか?

私が思うに、プログラミングコミュニティが取り組む必要のある質問です。

16
Adrian NH

汚れは多くのことを意味する可能性があります。より多くのコンテキストを提供する必要があります。しかし、非常に一般的な意味で、「ダーティフラグ」は、何かがタッチ/変更されたかどうかを示すために使用されます。

たとえば、メモリ管理のコンテキストでの「ダーティビット」の使用法を参照してください ページテーブルのwiki

6
sampson-chen

「ダーティ」は、アプリケーションレベルのキャッシングからアーキテクチャのキャッシングまで、キャッシングのコンテキストでよく使用されます。

一般に、キャッシュメカニズムには次の2種類があります。(1)ライトスルー。 (2)書き戻します。 WTおよび略してWBを使用します。

[〜#〜] wt [〜#〜]は、キャッシュとバッキングストアの両方への書き込みが同期的に行われることを意味します。 (たとえば、キャッシュとバッキングストアを言うと、データベースのコンテキストでは、それぞれメインメモリとディスクを表すことができます)。

対照的に、[〜#〜] wb [〜#〜]の場合、最初に、キャッシュへの書き込みはのみで行われます。バッキングストアへの書き込みは、データを含むキャッシュブロックが変更/新しいコンテンツに置き換えられるまで延期されます。

データはダーティな値です。 WBキャッシュを実装する場合、ダーティビットを設定して、キャッシュブロックにダーティ値が含まれているかどうかを示すことができます。

4
Xiao Jia