미로 · 개발 블로그
게임 개발 블로그

WindowsFolderSize

WindowsFolderSize 1.0.16 메모리·계산 CPU 최적화

개발 기록 · 블로그 공개

원본 기록 상태 검증 대기

파일별 목록을 디스크 DB로 옮겼습니다.15만 파일 시험 최대메모리 약92%감소, CPU상한1%.설치는보류했습니다.

사용자 제공 최적화 전 메모리 화면
사용자 제공 최적화 전 메모리 화면

작업 결과

구현·빌드·네이티브 회귀·MSI검증·소스푸시 완료. 실행 중인 기존 버전은 교체하지 않았습니다.


변경 내용

적용 내용

파일별 전체경로 메모리map과 복구용 중복map을 생산경로에서 제거하고 Windows내장SQLite B-tree에 저장합니다. DB페이지캐시2MiB,mmap비활성,임시데이터디스크보관. 동시스캔2개, 정상차액우선, 통지4096,스캔조각8ms양보,CPU상한2%→1%,idle100ms. 변경된파일의전후차액·하위삭제·이름변경을 DB에서처리하고정상변경은애니메이션복구로전환하지않습니다. 기존bin인덱스는보존하되새DB최초1회검증필요.


검증

동일150000레코드기존map+복구사본 최대WS116002816B, 디스크DB9302016B(약92.0%감소),SQLite캐시2154960B.신규평균CPU전체시스템0.729%,106266ms.이는합성fixture측정으로실제프로세스전체메모리상한·일반적인성능보장이아닙니다.최종range쿼리수정후10000레코드회귀통과,실제파일생성7B→19B→삭제0B,DB재열기·이동·하위삭제·롤백통과. 생산scannerWorker를콘솔시험에서직접실행해초기7B→변경19B→삭제0B,정상변경recovering없음확인. native빌드및MSI ICE0. SHA256 DFA898FAAC89B84C6AEFE43CBE2AD5D9268B31CB0C6A1AD2E55B2FB8869642ED. 소스fdcd4fa 푸시.

사용자가제공한기존실행화면40324B 원본을편집없이보관했습니다.새버전은설치하지않아실행후UI화면과전후GUI비교는없습니다.


개발 화면

사용자 제공 최적화 전 메모리 화면


출처

중앙 아카이브 원문