Scalene

Latest version: v1.5.49

Safety actively analyzes 685670 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 11 of 13

1.5.0

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**: https://github.com/plasma-umass/scalene/compare/v1.4.2...v1.5.0

1.4.2

What's Changed
* Fixed scalene looping infinitely in some functions by sternj in https://github.com/plasma-umass/scalene/pull/335

**Full Changelog**: https://github.com/plasma-umass/scalene/compare/v1.4.1...v1.4.2

1.4.1

What's Changed
* Update README.md by barseghyanartur in https://github.com/plasma-umass/scalene/pull/324
* Fixed double-counting newlines by sternj in https://github.com/plasma-umass/scalene/pull/328
* Added `--allocation-sampling-window`; fixed reporting of peak function summary by emeryberger in https://github.com/plasma-umass/scalene/pull/329
* Added in shim for get_context by sternj in https://github.com/plasma-umass/scalene/pull/320

**Full Changelog**: https://github.com/plasma-umass/scalene/compare/v1.4.0...v1.4.1

1.4.0

**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

1.3.16

- Added wheels for Python 3.10;
- Improved granularity of memory recording;
- Fixed "unable to find Python allocator functions" issue (278);
- Performed various cleanups;

1.3.15

Overhauled memory attribution logic:

- uses Python's [custom memory management APIs](https://docs.python.org/3/c-api/memory.html#customize-memory-allocators) 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](https://en.wikipedia.org/wiki/Actor_model) 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.

Page 11 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.