https://github.com/kimikage/profilesvg.jl
Write flame graphs to SVG format and explore them interactively in Jupyter, Pluto, etc.
https://github.com/kimikage/profilesvg.jl
flame-graphs profiling
Last synced: 4 months ago
JSON representation
Write flame graphs to SVG format and explore them interactively in Jupyter, Pluto, etc.
- Host: GitHub
- URL: https://github.com/kimikage/profilesvg.jl
- Owner: kimikage
- License: mit
- Created: 2020-01-12T11:35:18.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-18T22:08:32.000Z (about 1 year ago)
- Last Synced: 2025-02-13T20:17:25.435Z (4 months ago)
- Topics: flame-graphs, profiling
- Language: Julia
- Homepage:
- Size: 2.05 MB
- Stars: 55
- Watchers: 4
- Forks: 7
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ProfileSVG
[](https://kimikage.github.io/ProfileSVG.jl/stable)
[](https://kimikage.github.io/ProfileSVG.jl/dev)
[](https://github.com/kimikage/ProfileSVG.jl/actions?query=workflow%3ACI)
[](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html)
[](https://codecov.io/gh/kimikage/ProfileSVG.jl)## Purpose
ProfileSVG allows you to export profiling data as an SVG file.
It can be used to display profiling results in
Jupyter/[IJulia](https://github.com/JuliaLang/IJulia.jl) notebooks,
[Pluto](https://github.com/fonsp/Pluto.jl) or any other SVG viewer.An alternative visualization package is the GTK-based
[ProfileView](https://github.com/timholy/ProfileView.jl).
That package offers more interactive features.
See the [documentation](https://kimikage.github.io/ProfileSVG.jl/dev/#Other-tools-for-displaying-profiles) for other visualization tools.ProfileSVG is a package built on top of
[FlameGraphs](https://github.com/timholy/FlameGraphs.jl).
Among the Julia packages, ProfileView currently has the most comprehensive
tutorial on how to interpret a flame graph.## Basic Usage in Jupyter
```julia
using ProfileSVG
@profview f(args...)
```
where `f(args...)` is the operation you want to profile.The following screenshot illustrates Jupyter usage on a demonstration function `profile_test`:

You can hover over individual blocks in the flame graph to get more detailed information.
## Third Party License Notes
The SVG data generated by ProfileSVG uses [Snap.svg](http://snapsvg.io/) v0.3.0.
Snap.svg is licensed under the Apache license version 2.0. See [deps/LICENSE](deps/LICENSE)
and [deps/NOTICE](deps/NOTICE) for details.