v0.2.50
v0.2.50 — CPU 사용량 최적화 (polling 완화 + RAF 통합 + 배치 확대)
이전
ParticleBody각각이 자체requestAnimationFrame루프 등록 → 100 입자 동시 시 100개 callback × 60fps = 6000/s.
이후
- 부모
DataFlowParticles2D가 단일 RAF 루프 + 공유animStatesRef: Map<id, ParticleAnimState>.ParticleBody는 mount/unmount 시 자신의 refs 를 Map 에 add/delete 만.
효과
- 입자 개수에 무관하게 RAF callback 60/s. 입자 100 개 환경에서 약 100배 감소.
DOM 직접 조작 유지
- head/trail 의 transform/opacity 는 동일하게 setAttribute 로 갱신 → React 리렌더 비용 0 그대로.
eventsSig 배치 확대 (7 파일)
AgentAvatars2D(2 곳),AgentAvatars3D,WebGLGraph2D,SubAgentPipPanel,Graph2D,WebGLTrailsOverlay,SkillsPanel:Math.floor(len / 8)|Math.floor(lastAt / 2000)→Math.floor(len / 16)|Math.floor(lastAt / 3000).selectAvatars(5000+ 노드 시 비싼 계산) 재호출 빈도 약 40% 감소.
변경 파일
electron/probe/tcpConnectionMonitor.ts— minimum interval 2s → 5s.electron/ipc/handlers.ts— tcpMonitor.start 호출 주기 5s → 10s.electron/probe/cliHistoryWatcher.ts— interval + pollInterval 완화.electron/probe/agentEventWatcher.ts— awaitWriteFinish pollInterval 30 → 150ms.electron/probe/claudeSessionWatcher.ts— pollInterval 50 → 200ms.electron/probe/codexSessionWatcher.ts— pollInterval 50 → 200ms.electron/probe/copilotSessionWatcher.ts— pollInterval 50 → 200ms.src/components/Visualizer2D/DataFlowParticles2D.tsx— RAF 통합 (가장 큰 변경).src/components/{Avatars,Visualizer2D,Visualizer3D,Layout}/*.tsx— eventsSig 배치 (7 파일).package.json0.2.49 → 0.2.50.
검증
npx tsc --noEmitexit=0npm run build성공 — renderer 7.51s, 번들 3,458.99 kB.
사용자 확인
- idle 상태 (활동 없을 때) CPU 사용량 대폭 감소.
- 활동 burst (입자 다발 발생) 시에도 RAF callback overhead 거의 일정 (입자 개수와 무관).
- 트래킹 지연 약간 증가 (CLI history 1.5s → 3s, watchers 30~50ms → 150~200ms) — 일상 UX 영향 미미.
- --
← (없음)
v0.2.51 →
📦 GitHub 릴리스 노트: v0.2.50