Releases: plasma-umass/scalene
Further improvements to AI-powered proposed optimizations
What's Changed
- Proposed optimizations now can be applied to identified regions (loops or functions) instead of just individual lines by @emeryberger in #534
Full Changelog: v1.5.18...v1.5.19
Maintenance release, attempting to fix Conda builds
Changed case of Cython in dependency to work with case-sensitive filesystems. Also includes minor UI tweaks.
Major UI enhancement, including AI-powered optimization suggestions
What's Changed
Enhancements
- Scalene now incorporates AI-powered optimization suggestions. To enable these, you need to enter an OpenAI key:
Once a valid key is entered, click on the lightning bolt (⚡) beside any line to generate a proposed optimization.
You can click as many times as you like on the lightning bolt, and it will generate different suggested optimizations.
Your mileage may vary, but in some cases, the suggestions are quite impressive. While this is currently limited to optimizing a single
line, we anticipate broadening this to groups of lines or even functions in the near future. To our knowledge, this is the first
integration of AI into profilers. It's a brave new world.
- The web UI now incorporates collapsible profiles to web GUI (#527). You can now
toggle the displayed lines of code (all or reduced), and show/hide individual files.
Bug fixes
- Improved logic for filtering out Python libraries from results.
- Added sorting to memory sample intake, made JSON work with subprocesses by @sternj in #513
- Fix C should_trace to support OS-specific path separators by @emeryberger in #521
- Eliminates binary file reading/writing and dependency on linecache. by @emeryberger in #522
- Disable Windows switching of on/off status of profiling for background processes by @emeryberger in #523
- Fixed some Win32 issues. by @emeryberger in #524
Full Changelog: v1.5.16...v1.5.17
Improved performance, better visualizations, a number of minor fixes
What's Changed
Enhancements
- Memory profiling now occasionally much faster: reimplemented
settrace
callback in C by @sternj (#479, #492, #494) - Incorporates (RDP) algorithm to compress visualizations without sacrificing overall shape by @emeryberger
- Uses local fork of crdp to include its dependency on Cython
- Improves time and space reporting logic for units (e.g.,
ms
,s
,m
) by @emeryberger (2041b10)
Bug fixes
- Fixes an install issue that required pre-installation of Cython by @emeryberger, thanks to help from @SnoopJ (a830fd2)
- Fixes an issue bringing up the web browser on some platforms by @emeryberger
- Fixes an issue running Scalene on Windows by @emeryberger (esp. 8877e22)
- Fixes an issue running Scalene with older GPUs by @emeryberger (c1aa3cb)
Other
- Now builds wheel for Python 3.11 by @jaltmayerpizzorno (52247f7, df26dc2)
- Removed install-time dependency on
wheel
by @emeryberger (ad4da28)
Full Changelog: v1.5.15...v1.5.16
UI and CLI enhancements, improved multiprocessing/module support, and Windows bugfixes
What's Changed
- Now generates HTML instead of using a web server by @emeryberger in #477
- Clearer command-line parameters (
--cpu
,--gpu
, and--memory
) by @emeryberger in #477 - Improved multiprocessing and module support by @RuRo in #484
- Fixes several issues running Scalene on Windows by @emeryberger
New Contributors
Full Changelog: v1.5.14...v1.5.15
Maintenance release: various bug fixes
Changes in this release:
Bug fixes:
- Disabled GPU profiling for very old NVIDIA platforms that don't support profiling utilization and/or memory consumption; this used to lead to failures
- More graceful handling of non source files (which could lead to failures)
- Uses correct path regardless of changes to the working directory
UI:
- forced profiles in Jupyter cells to consume 100% of the available width
- minor usability fix for Jupyter, fixing an issue with
%scrun
Full Changelog: v1.5.13...v1.5.14
Disable GPU profiling for Apple, since it is unreliable
Changes in this release:
- Disabled Apple GPU profiling for now since it is unreliable (the Apple GPU does not record activity on a per-process basis).
Full Changelog: v1.5.12...v1.5.13
Improved memory reporting
Changes in this release:
- Corrected some memory attribution errors (primarily relating to calculating average memory per line/function, as well as a race condition).
Full Changelog: v1.5.11...v1.5.12
Maintenance release
Changes in this release:
- Fixed pre-built MacOS Universal distributions not including M1 support;
- Fixed Scalene's assumption it would remain in the same directory, which caused problems when the profiled program did a
chdir
.
Full Changelog: v1.5.10...v1.5.11
Maintenance release: fixes, warnings, and changes for Conda
Changes in this release:
- Fixed a reference counting issue that could lead to failure (73c848b).
- Increased an internal buffer size to ensure safe handling when Scalene is accessing very long directory / pathnames.
- Added support for profiling applications that themselves use
LD_PRELOAD
(fixing #418). - Improved warning message for the current lack of support for
multiprocessing
on Windows (addressing #416). - Other changes to enable building on Conda (conda-forge/staged-recipes#18747).
Full Changelog: v1.5.9.1...v1.5.10