Flame Graphs vs Tree Maps vs Sunburst (2017)

(brendangregg.com)

81 points | by gudzpoz 2 days ago

15 comments

  • CuriouslyC 1 hour ago
    Treemap is the densest/most accurate information source on a per px basis. Flamegraphs are pretty good but with a fixed Y and variable X your box area is inaccurate, and it wastes a fair amount of plot space with the non-flame area. The sunburst chart is really pretty but bad from an information communication perspective.
  • trevor-e 56 minutes ago
    The treemap screenshot doesn't look correct. Nearly all charting libs (like Apache Echarts) will group nodes with a heading name, so not sure why they claim it would be hard to notice the "drivers" node. I guess in that screenshot, sure, but that looks like just a bad implementation of a treemap. Maybe this was the case back in 2017?

    Flame graphs I have a love/hate relationship with. The hierarchy is very useful, but the name and coloring can be very confusing and misleading. Most people I show them to think red == something bad, but the color is actually just for aesthetics.

  • rphln 2 hours ago
    Flamegraphs are a really lovely tool for visualizing trees. Slightly related anecdote:

    A while ago I was experimenting with interactive exploration of (huge) Monte Carlo Tree Search trees. Inspired by file system visualization tools, my first attempts were also tree maps and sunburst graphs, but I ran into the same problems as in the article.

    I tried flamegraphs next with the following setup:

    - The number of visits in each node maps to the width and order of each bar (i.e., the most visited node was first and was the largest)

    - The expected value maps to the color of each bar.

    And then it was a perfect fit: it's easy to see what's going on in each branch at the first levels, and the deeper levels can be explored through drilling down.

  • alanbernstein 53 minutes ago
    Personally, I find treemaps unmatched for disk space analysis. Specifically, I like to use the squarify layout algorithm, to NOT use the "cushion gradient" shading method, to use inset frames to convey depth visually, and to include filenames. This maximizes glanceable information density, for the use case of identifying large objects to delete to recover space.

    This is how the old spacemonger app worked, and I liked it so much I had to recreate it for Linux/Mac: https://github.com/alanbernstein/treemonger. My version still needs some work, but it's minimally useable.

    • formerly_proven 11 minutes ago
      Treemaps are also good for profiling (see KCachegrind), they waste a lot less space than flamegraphs and the area-relationship is relatively well maintained.
  • Espressosaurus 2 hours ago
    All of these suck. Use nested bar graphs like TreeSize and it’s instantly obvious what your biggest hitter is for any particular nesting level.

    In lieu of that, a flame graph is tolerable. The polar coordinate one is very pretty garbage. EDIT: Use it when you want to mislead people with a flashy graph.

    • foota 1 hour ago
      Ehhh. I think if you're trying to show the overall costs of something to someone that conclusion makes sense, but interactive flame graphs are the best way imo to look into things. Especially making use of sandwich views, which allow you to pivot the flame graph around some function to see callers and callees by cost.

      Edit: I'll keep this up to share my embarrassment, but I missed entirely that the article was about disk space. I admit I only looked at the pictures haha.

    • alanbernstein 56 minutes ago
      Why do treemaps suck?
  • fourthark 45 minutes ago
    It's not that hard to fix the area problem with sunburst charts, by decreasing the radius for outer rings.

    E.g.

    https://github.com/vasturiano/sunburst-chart

  • theodpHN 1 hour ago
    For a hierarchical view with expand/collapse capability, Icicle charts can be helpful:

    https://plotly.com/python/icicle-charts/

  • netsharc 1 hour ago
    I was analyzing my spending in 2025, one of these graphs could be interesting.

    One could drill down e.g. Groceries > Drinks > Coca-Cola if one is so inclined...

  • epistasis 3 hours ago
    Oh this is beautiful and I'm so glad it's been reposted because I missed it the first time.

    Flamegraphs seem so much more interpretable and informative than the other plots there, at least to me personally. And I never would have thought to use them for this, because usually when I need to clean out disks or take care of storage it's time sensitive and I want to spend the minimum time figuring things out, and poor viz is enough to accomplish the goal.

    An ongoing falmegraph of disk usage over time would be super helpful for many systems I'm working with right now.

  • jeffreygoesto 2 hours ago
    For profiling I like the dual representation of treemap and tree of https://kcachegrind.github.io/html/Home.html a lot. Addresses the criticized points of treemaps of the post (see percentage and estimate areas of sub-trees) better than the examples chosen there.
  • delta_p_delta_x 3 hours ago
    Windows equivalent: WizTree[1].

    https://diskanalyzer.com/download

  • jurakovic 2 hours ago
    For Windows there is SpaceSniffer. I highly recommend

    https://www.uderzo.it/main_products/space_sniffer/

  • btbuildem 1 hour ago
    It's kind of wild that we've not come up with another one (a better one) of these in nearly a decade.
  • 29athrowaway 48 minutes ago
    Brendan Gregg needs to release a GPU oriented system performance book.