Temporal flame graphs! 🕰📈 Musl wheels! 💪 Stats as JSON! #395
godlygeek
announced in
Announcements
Replies: 1 comment
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Good news, everyone!
Memray 1.8 is now out, with a very unique new feature: temporal flame graphs! This is our newest and favorite way of making use of the wealth of data that Memray collects about allocations over time, giving you a brand new way to understand how your program uses memory. A memory profiler's flame graph normally shows you a snapshot of your program's memory usage at a single point in time. That's normally either the point in time when your process was using the most memory, or (if you're looking for memory leaks) the point by which all memory should have been freed, so you can see what wasn't. Our new temporal flame graphs allow you to change the time range you're analyzing dynamically, rather than being stuck looking at a snapshot of just one instant!
Temporal flame graphs are larger and slower to generate, since they contain much more information, but once they have been generated they're a self-contained HTML file just like all of our other flame graphs, and can easily be shared with others. When you open one up, you'll see a brand new set of controls at the top:
There's a larger version of our typical chart showing heap and RSS memory usage over time, and a smaller one underneath it with a pair of sliders on either end. By adjusting these sliders, you can focus in on any point during your process's run! The flame graph underneath the controls still shows a single moment in time, but these controls let you adjust what moment it shows. For a high water mark flame graph, it shows the moment within your selected time range with the highest heap memory usage. For a leaks flame graph, it shows you allocations made at any time within your selected time range and not freed by the end of it, which lets you figure out what survives from one phase of your process to another.
This feature gives you a great way to get more fine grained information than has ever been possible before. Now, you can home in on the exact point in your process's run that you need to debug. Check out the docs, and try
memray flamegraph --temporal
out for yourself! 🎉 We're really excited to see how the community reacts to this new feature, since it's both very unique and very useful.On top of that amazing new feature, we've got two other new features rounding out our release:
pip install memray
on Alpine Linux to "Just Work".memray stats
command now accepts a--json
flag to let you dump the statistics as JSON, to be fed into other tools or scripts.But wait, there's more! We've fixed several bugs as well. You can see the full release notes on our changelog.
Happy debugging, everyone!
Beta Was this translation helpful? Give feedback.
All reactions