v0.4.4
v0.4.3 -> v0.4.4
Summary
Cache parsed JSON objects in Entry to eliminate repeated json.Unmarshal on read/query hot paths, and make Entry.value unexported to enforce cache consistency at compile time.
翻譯
在 Entry 中快取已解析的 JSON 物件,消除讀取與查詢熱路徑的重複 json.Unmarshal,並將 Entry.value 私有化以在編譯期強制快取一致性。Changes
PERF
- Cache deserialized JSON in
Entry.parsedfield, populated onSet()and AOF replay viaparseCached() - Replace per-call
json.Unmarshalwith cached lookup inGetField,SetField,IncrField,DelField, andQuery - Trade-off: JSON entries use ~2x memory (raw string + parsed object), non-JSON entries have zero overhead
翻譯
- 在
Entry.parsed欄位快取已解析的 JSON,透過parseCached()在Set()和 AOF replay 時填充 - 將
GetField、SetField、IncrField、DelField、Query中的逐次json.Unmarshal替換為快取查詢 - 代價:JSON entry 記憶體約 2 倍(raw string + parsed object),非 JSON entry 零開銷
REFACTOR
- Make
Entry.Valueunexported (value) — all reads go throughValue(), all writes throughsetValue()orsetParsed() - Replace
json.Marshal(entry)withentry.JSON()across all file-write paths (8 call sites) - Remove
encoding/jsonimport fromget.go,query.go,incr.go,incrField.go,del.go,setField.go,ttl.go
翻譯
- 將
Entry.Value改為私有(value)— 所有讀取走Value(),所有寫入走setValue()或setParsed() - 所有寫檔路徑(8 處)的
json.Marshal(entry)替換為entry.JSON() - 移除
get.go、query.go、incr.go、incrField.go、del.go、setField.go、ttl.go中不再使用的encoding/jsonimport
Files Changed
| File | Status | Tag |
|---|---|---|
core/store/set.go |
Modified | PERF, REFACTOR |
core/store/get.go |
Modified | PERF, REFACTOR |
core/store/query.go |
Modified | PERF, REFACTOR |
core/store/setField.go |
Modified | PERF, REFACTOR |
core/store/incrField.go |
Modified | PERF, REFACTOR |
core/store/del.go |
Modified | PERF, REFACTOR |
core/store/incr.go |
Modified | REFACTOR |
core/store/ttl.go |
Modified | REFACTOR |
core/store/aof.go |
Modified | PERF, REFACTOR |
core/store/exec.go |
Modified | REFACTOR |
core/store/find.go |
Modified | REFACTOR |
README.md |
Modified | DOC |
CLAUDE.md |
Added | DOC |
core/store/query_test.go |
Added | TEST |
core/store/find_bench_test.go |
Added | TEST |
Generated by SKILL