Skip to content

Releases: plasma-umass/scalene

Bug fix to prevent hangs in Scalene

25 Jan 23:55
Compare
Choose a tag to compare

What's Changed

  • Fixed scalene looping infinitely in some functions by @sternj in #335

Full Changelog: v1.4.1...v1.4.2

Maintenance release: fixes small memory accounting issue, re-enables running in Jupyter notebooks, adds `--allocation-sampling-window`

20 Jan 21:20
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.4.0...v1.4.1

More Profiling Control, Leak Detector, Enhancements and Bug Fixes

12 Jan 17:12
a4d6c36
Compare
Choose a tag to compare

New features:

  • adds --profile-exclude flag to exclude from profiles any filenames containing the given strings (comma-separated)
  • adds experimental memory leak detection (--memory-leak-detector)

Enhancements:

  • provides more accurate memory accounting for small objects
  • higher resolution tracking of system vs. user time, per line, on Linux and Mac
  • new sampling approach, using “intervals” and per-line triggers, to ensure consistent accounting of per-line peak and average memory consumption

Bug fixes:

  • fixes build on Windows
  • adds -arm64e target to enable building on Apple Silicon (M1)
  • fixed exit signal propagation for failed scripts
  • ensures correct build on old Xcode + Mac OS combinations
  • distribution includes wheels for Windows

Python 3.10, bug fixes and cleanups

21 Oct 20:34
Compare
Choose a tag to compare
  • Added wheels for Python 3.10;
  • Improved granularity of memory recording;
  • Fixed "unable to find Python allocator functions" issue (#278);
  • Performed various cleanups;

Improved memory profiling, new features, bugfixes

04 Oct 18:26
Compare
Choose a tag to compare

Overhauled memory attribution logic:

  • uses Python's custom memory management APIs to efficiently disambiguate native vs. Python memory allocations, supplanting the prior approach that employed periodic call stack sampling.
  • performs immediate lookup of the location in source code responsible for allocation/deallocation, reducing the "smearing" effect in attributions previously caused by delayed attribution.
  • computes average memory consumption (rather than total) for each line of code (using the novel technique of "one-shot" tracing); lines executed many times no longer appear to have consumed large amounts of memory.
  • no longer reports negative memory growth from output, caused by lines freeing more than allocating, which has been a source of confusion for some users.
  • this release also resolves a memory leak.

Overhauled internal signal handling:

  • uses signal actors, an approach based on actors that decouples signal handling logic from the main thread, avoiding the risk of races and deadlocks and simplifying logic

Bug fixes:

  • fixed missing handling of pynvml.NVMLError_NotSupported exception (issue #262);
  • fixed issue cleaning up after profiling multiprocessor and multithreaded programs;
  • fixed issue not accounting for elapsed time when zero frames were recorded (issue #269).

New features:

  • added JSON output option (--json);
  • added programmatic profile control (scalene_profiler.start() and scalene_profiler.stop()).

Miscellaneous:

  • improved documentation.

Note: this release is for MacOS and Linux only.

Windows bugfix release

16 Jul 18:49
4dbfb90
Compare
Choose a tag to compare

Fixes Windows-specific bug introduced in 1.3.11 leading to empty outputs.
With this release, scalene on Windows now requires python 3.8 or newer.

Bugfix release for python compatibility

15 Jul 15:06
Compare
Choose a tag to compare

Fixed inadvertent use of signal.raise_signal, which isn't available in Python 3.7.

Adds Windows wheels to pypi

12 Jul 17:53
Compare
Choose a tag to compare

This release adds a Windows wheel to pypi, making it a C/C++ development environment unnecessary for installation.

Bugfix release for all platforms

11 Jul 22:12
Compare
Choose a tag to compare
  • Fixes pip install for Windows
  • Fixes @profile functionality

Bugfix release

29 Jun 17:01
Compare
Choose a tag to compare
  • fixed AttributeError bug running with --cpu-only;