What's Changed
Enhancements
* Scalene now incorporates AI-powered optimization suggestions. To enable these, you need to enter an [OpenAI key](https://openai.com/api/):
<img width="411" alt="Screenshot 2023-01-01 at 6 36 40 PM" src="https://user-images.githubusercontent.com/1612723/210187555-d9334cf4-251b-425e-8a07-261441805591.png">
Once a valid key is entered, click on the lightning bolt (⚡) beside any line to generate a proposed optimization.
<img width="590" alt="Screenshot 2023-01-01 at 6 39 12 PM" src="https://user-images.githubusercontent.com/1612723/210187583-290b94f5-52fe-40c9-8725-8f5109552646.png">
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 (https://github.com/plasma-umass/scalene/pull/527). You can now
toggle the displayed lines of code (all or reduced), and show/hide individual files.
<img width="862" alt="Screenshot 2023-01-01 at 6 44 13 PM" src="https://user-images.githubusercontent.com/1612723/210187678-91b68d05-0910-4508-9e8f-8caab77c0f9d.png">
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 https://github.com/plasma-umass/scalene/pull/513
* Fix C should_trace to support OS-specific path separators by emeryberger in https://github.com/plasma-umass/scalene/pull/521
* Eliminates binary file reading/writing and dependency on linecache. by emeryberger in https://github.com/plasma-umass/scalene/pull/522
* Disable Windows switching of on/off status of profiling for background processes by emeryberger in https://github.com/plasma-umass/scalene/pull/523
* Fixed some Win32 issues. by emeryberger in https://github.com/plasma-umass/scalene/pull/524
**Full Changelog**: https://github.com/plasma-umass/scalene/compare/v1.5.16...v1.5.17