Skip to content

Commit f57d88f

Browse files
committed
정리: Phase 1 disk cache zstd compression 정공법 근거 명시. 사용자 측정 결과 — uncompressed mmap 가 단일 종목 sections build 에서 *더 느림* (Windows mmap page-fault overhead). zstd 125ms decompress + heap 보유 → Phase 2 작업 in-memory hit = 5s. uncompressed 15ms mmap setup + Phase 2 lazy page fault 누적 = 8s. 'Could not memory_map compressed IPC file' 경고는 정상 fallback (우리 워크로드 더 빠름). 다중 process backend / batch 시나리오엔 uncompressed 가 페이지 공유로 효과 있으나 단일 종목 viewer 가 user-visible 핵심이라 zstd 유지. 향후 누군가 mmap 경고 fix 시도 회귀 차단 위한 측정 기록.
1 parent 3cf27ba commit f57d88f

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

src/dartlab/providers/dart/docs/sections/diskCache.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,12 @@ def savePreparedDiskCache(
283283
# in-place 사용이라 list/set 둘 다 동작).
284284
teacherSerializable = {k: (sorted(v) if isinstance(v, (set, frozenset)) else v) for k, v in teacherTopics.items()}
285285
try:
286+
# zstd 압축 IPC — 사용자 측정: uncompressed mmap 보다 단일 종목 build 빠름.
287+
# uncompressed = 15ms read + Phase 2 작업에서 lazy mmap page fault 누적 (Windows
288+
# mmap overhead) → 총 8s. zstd = 125ms decompress + heap 보유 (Phase 2 작업 시
289+
# in-memory hit) → 총 5s. mmap=True 가 "Could not memory_map compressed IPC file"
290+
# 경고 후 normal read fallback 하는 게 *우리 워크로드엔 더 빠른 경로*. 단일
291+
# 종목 viewer (user-visible 핵심) 에서 -3s 의 가치 > mmap RSS 위임 가치.
286292
periodRowsDf.write_ipc(str(arrowPath), compression="zstd")
287293
jsonPath.write_text(
288294
json.dumps(

0 commit comments

Comments
 (0)