Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Unified Diff: net/disk_cache/simple/simple_index.h

Issue 2922973003: RFC: use some in-memory state in SimpleCache to quickly cache-miss some CantConditionalize cases
Patch Set: omewhat better take at higher-level HC::T impl, a bit lessy hacky, and actually write to cache now. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/disk_cache/simple/simple_index.h
diff --git a/net/disk_cache/simple/simple_index.h b/net/disk_cache/simple/simple_index.h
index 6740c2c91e2b810caa5d2092d93baff6b616c85e..9131bc37e098742732c1ec1b9027f18523fbba2c 100644
--- a/net/disk_cache/simple/simple_index.h
+++ b/net/disk_cache/simple/simple_index.h
@@ -58,9 +58,12 @@ class NET_EXPORT_PRIVATE EntryMetadata {
uint32_t GetEntrySize() const;
void SetEntrySize(base::StrictNumeric<uint32_t> entry_size);
+ uint8_t GetMemoryEntryData() const { return memory_entry_data_; }
+ void SetMemoryEntryData(uint8_t val) { memory_entry_data_ = val; }
+
// Serialize the data into the provided pickle.
void Serialize(base::Pickle* pickle) const;
- bool Deserialize(base::PickleIterator* it);
+ bool Deserialize(base::PickleIterator* it, bool has_memory_entry_data);
static base::TimeDelta GetLowerEpsilonForTimeComparisons() {
return base::TimeDelta::FromSeconds(1);
@@ -79,7 +82,9 @@ class NET_EXPORT_PRIVATE EntryMetadata {
// are originally calculated as >32-bit types, the actual necessary size for
// each shouldn't exceed 32 bits, so we use 32-bit types here.
uint32_t last_used_time_seconds_since_epoch_;
- uint32_t entry_size_; // Storage size in bytes.
+ // Storage size in 256-byte blocks
+ uint32_t entry_size_ : 24;
+ uint32_t memory_entry_data_ : 8;
};
static_assert(sizeof(EntryMetadata) == 8, "incorrect metadata size");
@@ -127,6 +132,9 @@ class NET_EXPORT_PRIVATE SimpleIndex
// iff the entry exist in the index.
bool UseIfExists(uint64_t entry_hash);
+ uint8_t GetMemoryEntryData(uint64_t entry_hash) const;
+ void SetMemoryEntryData(uint64_t entry_hash, uint8_t value);
+
void WriteToDisk(IndexWriteToDiskReason reason);
// Update the size (in bytes) of an entry, in the metadata stored in the

Powered by Google App Engine
This is Rietveld 408576698