Skip to content

Releases: plasma-umass/scalene

Maintenance release: fixes virtualized GPU issue, Windows loading, output issue

04 Feb 18:43
Compare
Choose a tag to compare

What's Changed

  • Adds exception handling to workaround a virtualized GPU issue (#323).
  • Added average memory consumption calculation to function summaries.
  • Fixes a missing argument issue in output (#344)
  • Fixes an issue with Jupyter notebooks when they don't have access to a web browser.

Full Changelog: v1.5.2...v1.5.3

Jupyter support for new GUI; auto-exit of server

03 Feb 17:26
Compare
Choose a tag to compare

What's Changed

  • Scalene's web-based GUI is now integrated into Jupyter notebooks
  • When using --cpu-only or profiling in Jupyter, columns for memory profiling (which would all be empty) are now hidden
  • The local webserver now exits after 5 seconds.

Full Changelog: v1.5.1...v1.5.2

Local web-based GUI

01 Feb 14:59
Compare
Choose a tag to compare

What's Changed

  • Scalene now launches its web-based GUI locally by default. After profiling, It opens a browser tab to a local webserver and automatically brings up the most recent profile. (The old behavior is still available by using --cli on the command line.)

Full Changelog: v1.5.0...v1.5.1

Web-based GUI

30 Jan 00:06
Compare
Choose a tag to compare

What's Changed

  • Scalene now supports a new web-based GUI. Invoke using --web; this opens a browser tab (http://plasma-umass.org/scalene-gui/) and prompts to upload the generated profile.json file in the current working directory.

Full Changelog: v1.4.2...v1.5.0

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.