Switched disk scanning jobs to invisible renderer process
V3
App icon finally! Thanks Jill for the help with this :)
Many Bug fixes
Disk scanning is moved to a webview process
Investigated various RPC methods. Now uses LocalStorage + FileSystem IPC message passing
Reduce memory usage (and Electron crashes) by not caching key paths
Tested on > 100GB & 2M files
Improvements to user interactivity esp on hover states
To prevent renderer process from hitting heap mem limit (1.5GB), all previous data is null, with dom elements removed to reduce memory pressure
Allow target selection for disk usage scanning
Locate path in Finder
Env Debug Flags
V2
Major speed up scanning directories. About 10x from version 1, and almost as fast or faster than du.
Runs disk scanning as a separate headless renderer process
Json is passed back via IPC
Remove Async npm dependency
Development
Install dependencies:
bash
npm install
Run in development mode:
bash
npm run debug
Or simply:
bash
npm start
Build for distribution:
bash
npm run build # Current platform
npm run build:mac # macOS
npm run build:win # Windows
npm run build:linux # Linux
History
This project started as quick prototype for me to test drive Electron (& some ES6 syntax), D3.js and to explore the question of "what's taking up my disk space". Turns out writing a disk visualization app isn't that simple as I dwell into figuring out how to make disk scanning not block the UI thread, IPC calls go faster, smoother rendering, lesser memory usage, more sensible interactions...