원인: 실사진(수십 MP) 스캔 시 메타 추출(rayon)과 썸네일 워커가 NORMAL 우선순위로 전 코어를 포화시켜 WebView UI 스레드를 굶김. 풀해상도 JPEG 디코드는 파일당 ~72MB를 할당해 병렬 시 메모리 대역폭까지 포화. - prio 모듈: 현재 스레드 우선순위 낮추기(Win BELOW_NORMAL / macOS nice+5), 메타 전용 저우선순위 rayon 풀(코어-1, 전역 풀과 분리) - 썸네일 워커 스레드·스캔 스레드를 저우선순위로 → CPU 포화 시 UI 우선 스케줄 - meta 이미지/영상 추출을 저우선순위 풀에서 실행 - JPEG는 jpeg-decoder DCT 축소 디코드(1/8 등) 사용: 24MP 기준 풀디코드 63ms/72MB → 축소 38ms/1MB (1.7배·메모리 ~70배 절감), RGB24/L8만 처리하고 그 외(CMYK)는 기존 경로로 폴백 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
30 lines
713 B
TOML
30 lines
713 B
TOML
[package]
|
|
name = "archive-indexer"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
archive-db = { path = "../archive-db" }
|
|
archive-vfs = { path = "../archive-vfs" }
|
|
jwalk = "0.8"
|
|
rayon = "1"
|
|
crossbeam-channel = { workspace = true }
|
|
xxhash-rust = { version = "0.8", features = ["xxh3"] }
|
|
blake3 = { version = "1", features = ["mmap", "rayon"] }
|
|
image = "0.25"
|
|
jpeg-decoder = "0.3"
|
|
image_hasher = "3"
|
|
fast_image_resize = "6"
|
|
imagesize = "0.14"
|
|
kamadak-exif = "0.6"
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
rusqlite = { version = "0.40", features = ["bundled"] }
|
|
trash = "5"
|
|
filetime = "0.2"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|