v1.20.0 #992
godlygeek
announced in
Announcements
v1.20.0
#992
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
What's Changed
Features
free_sizedandfree_aligned_sizedfunctions introduced in C23. (Intercept newfree_sizedandfree_aligned_sizedfunctions #725)--buffered-file-iooption tomemray run(and abuffered=Trueargument tomemray.FileDestination) that writes the capture file using bufferedwritecalls instead of the default memory-mapped file IO. This is useful on filesystems that don't support shared writablemmap, though it's slower and less robust to crashes. (Update the C++ FileSink to fall back to write() if memory mapping isn't supported #748)memray stats, showing the top allocating non-stdlib modules by size and by number of allocations. (Updatememray statsto show the top 5 non-stdlib modules with the most allocations #765)memray attach -ois used with--duration, print a message clarifying that tracking continues in the target process after the command exits, and how to stop it early withmemray detach. (memray attach with --duration exits immediately instead of tracking for the given time #831)speedscopeoutput format formemray transform. (Add speedscope export timestamp fallback #899)--confidential-filesoption tomemray flamegraphto control whether source code lines are embedded in the generated report. By default, Memray uses heuristics to guess whether each file is likely to contain secrets, and omits source lines from files that might. You can use--confidential-files=allto omit all source lines, or--confidential-files=noneto include source lines from every file. See the docs on confidential source lines for more information. (Allow control over flame graph source inclusion #983)Deprecations and Removals
memray3.N(where "3.N" is the Python version that Memray was installed for). You can usepython3.N -m memrayinstead. (Use scikit-build #673)greenletmodule (which are from 2020 or earlier). (Fix greenlet integration with greenlet 3.4.0 #908)Bug Fixes
AttributeErrorcrash on shutdown when tracking a script that callsgevent.monkey.patch_all()(or otherwise replacesthreading.Threadwhile tracking). TheTrackernow records thethreading.Threadsubclass it patched on entry and removes its instrumentation from that same class on exit, instead of looking upthreading.Threadagain. (Crash on gevent: AttributeError: type object 'Thread' has no attribute '_name' #856)--split-threadsoption to the table reporter, matching the flamegraph reporter's existing option, and change the table reporter to no longer split allocations by thread by default. (Duplicate entries inmemray table --leaksreporter. #857)%%memray_flamegraphJupyter integration to correctly embed a flame graph for Python 3.12 and higher. Previously it was giving a 404 error due totempfile.mkdtempchanging to return absolute paths. (Jupyter Integration not displaying the results. It returns 404 : Not Found #896)greenletpackage when greenlet 3.4.0 is installed and when tracing is started before the greenlet module is imported. (Fix greenlet integration with greenlet 3.4.0 #908)memray attachfailed todlopenour library. The underlying permissions issue is now accounted for and a troubleshooting message prints when it arises. (Add diagnostic message for missing permissions on attach #940)memray attach. (Fix deadlocks in the GDB attach script #966)%%memray_flamegraphJupyter integration to correctly embed a flame graph when used with IPython 9.16.0 (a regression in that version broke our integration; it was fixed in IPython 9.16.1). (Pass IFrame path to IPython as a str #981)Miscellaneous
scikit-build-coreand CMake instead ofsetuptools. This should have little to no impact on end users, but redistributors like distro package maintainers will need to ensure that these tools are available when building Memray. (Use scikit-build #673)New Contributors
Full Changelog: v1.19.3...v1.20.0
This discussion was created from the release v1.20.0.
All reactions