I've used treemaps for many years, to reduce disk space, and have been somewhat enamored of them.
Then earlier this year, I happened to use flame graphs for visualizing profiling data.
This is when I realized I hadn't quite understood flame graphs. It became obvious that you can use flame graphs for visualizing the SPACE used by a tree hierarchy as well as TIME.
I googled and Brendan Gregg already wrote about this!
So from now on, I believe I will use flame graphs instead of treemaps to visualize this space.
-----
Details: A common point of confusion for flame graphs is that the Y axis is "time elapsed". (Chrome dev tools has a "flame chart" where the Y axis is time elapsed, but it's not a flame graph.)
The Y axis is "cumulative time used", and the X axis is the call stack. Combining call stacks sampled at different times gives you a TREE, because a given function calls multiple functions.
So if that's clear, it should be clear why flame graphs can be used instead of treemaps. They are the same visualization! And flame graphs have the benefit that they use a one spatial dimension to represent quantity, rather than two. TreeMaps have the same problem as pie charts -- human perception isn't good at measuring areas.
Also, with treemaps, you have error due to the inability to represent a internal directory of zero size (you need some space for the label). Flame Graphs don't have this problem because directories are stacked on the Y axis.
Then earlier this year, I happened to use flame graphs for visualizing profiling data.
This is when I realized I hadn't quite understood flame graphs. It became obvious that you can use flame graphs for visualizing the SPACE used by a tree hierarchy as well as TIME.
I googled and Brendan Gregg already wrote about this!
http://www.brendangregg.com/blog/2017-02-05/file-system-flam...
http://www.brendangregg.com/blog/2017-02-06/flamegraphs-vs-t...
So from now on, I believe I will use flame graphs instead of treemaps to visualize this space.
-----
Details: A common point of confusion for flame graphs is that the Y axis is "time elapsed". (Chrome dev tools has a "flame chart" where the Y axis is time elapsed, but it's not a flame graph.)
The Y axis is "cumulative time used", and the X axis is the call stack. Combining call stacks sampled at different times gives you a TREE, because a given function calls multiple functions.
So if that's clear, it should be clear why flame graphs can be used instead of treemaps. They are the same visualization! And flame graphs have the benefit that they use a one spatial dimension to represent quantity, rather than two. TreeMaps have the same problem as pie charts -- human perception isn't good at measuring areas.
Also, with treemaps, you have error due to the inability to represent a internal directory of zero size (you need some space for the label). Flame Graphs don't have this problem because directories are stacked on the Y axis.