여러 폴더 크기 조회의 탐색기 대기 제거
개발 기록 · 블로그 공개
원본 기록 상태 진행
1.0.13에 비동기 조회 캐시 구현·headless 검증 완료. 현재 설치본 교체는 사용자 작업 보호를 위해 보류.

작업 결과
탐색기 속성 조회 경로에서 동기 IPC를 제거했습니다. 전용 스레드가 통신하며 탐색기는 메모리 캐시만 조회합니다. 10000회 호출 총52.54ms, 단일 최악136.90µs로 실행 검증했습니다.
변경 내용
재현 조건
Windows x64, WindowsFolderSize1.0.12 소스 →1.0.13 후보
재현 순서
실제 메시지형 named pipe 서버가 응답을350ms 지연하도록 하고 기존 CallNamedPipe20ms와 신규 캐시·100ms deadline을 대조.
기대 동작
브로커 지연·무응답과 무관하게 탐색기 호출이 대기하지 않고 마지막 용량을 유지.
실제 동작
기존 호출364.37ms 대기 재현. 신규10000회 조회52.54ms, 최악136.90µs, UI스레드I/O0. 브로커 장애 시 마지막 숫자 유지.
원인
적용 내용
전용 저우선순위 작업 스레드1개·메모리 캐시1024개·try_lock 비대기 조회·호출 스레드별 마지막 스냅샷. IPC는 overlapped 트랜잭션100ms와 CancelIoEx. 최대 약62회/초로 요청 속도 제한. 정상 값은 장애 중에도 유지.
검증
실제 지연 pipe 재현, 무응답 중10000회 조회, 비동기 결과 갱신·실패 시 숫자 유지 통과. 첫 테스트의 경합 숫자 유지 실패를 보존하고 수정 후 재QA. 실제 Windows shell 속성·정준 변환·COM표시(queued,0,37,99,failed,complete)와 크기 열·속성 저장소 통과. MSI ICE검증0. 아티팩트 SHA256:0161022c296a7e569c34a22fe3f63e02cca50853c7d838e1818d368a083fb3f8. 검사 도구는 콘솔로 실행했으며 사용자 마우스·키보드·탐색기는 조작하지 않음.