Disk And Memory Space Visualization App built with Electron & d3.js
Clone or download
zz85 Merge pull request #35 from zz85/optimizations
Optimizations and Upgrades
Latest commit 158afd6 Sep 29, 2017

README.md

Space Radar Electron

SpaceRadar allows interactive visualization of disk space and memory. It currently supports Sunburst, Treemap, and Flamegraph charts.

Downloads

Download Mac and Windows at the releases page

Features

  • space visualizations using sunburst and treemap charts
  • previews visualization as disk is being scanned
  • fast (completes disk scanner faster than du)
  • cross platform (at least on Mac OS X and Windows)
  • allow drilldown of directories
  • breadcrumbs and navigation
  • opens files and directories
  • analyze disk contents from a remote server (see section Reading from a file)

Screenshots

space-radar-4

screenshot 2015-11-09 04 45 27

screenshot 2015-11-09 04 45 36

Reading from a file

To create a file to be read from use du -ak, for example:

  • du -ak /var/log /usr | gzip -c > /tmp/sizes.txt.gz
  • du -ak /opt /home /tmp > /tmp/sizes.txt

Compressed files can be read directly. To detect them, the file name has to end with .gz.

Future Enhancements

  • more target for scanning
  • color by file types
  • filter hidden files
  • moar!!
  • let me know what you think

Futher Explorations

  • More efficient memory usage
  • More efficient scanning process
  • 3D visualization

History

This project started as quick prototype for me to test drive atom electron (& some es6 syntax), d3.js and for me 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...

Whats New

V5

  • Import from DU file
  • Upgrade electron
  • Flamegraphs (BETA)
  • Directory Listview
  • Update libs - Electron, D3

V4

  • Treemap view
  • Memory monitoring
  • Mac App look using Photon
  • Context Menus for locating + opening + deleting files / directories
  • Navigation controls (back/fwd/up)
  • Switched disk scanning jobs to invisible renderer process

Version 3

  • 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

Version 2

  • 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

Issues

Please raise on github issue tracker or contact @blurspline on twitter

Development

Run

npm run debug

or

npm run app

Check that dependencies are installed, otherwise run (this may take awhile for electron binaries)

npm run install

Thanks

  • Jill for designing the app logo
  • Jianwei for his comments on the app
  • Chee Aun for helping alpha test the app
  • WM for his talk on Electron that got me started
  • Contributors