An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

        

# ProfileSVG

[![Docs Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://kimikage.github.io/ProfileSVG.jl/stable)
[![Docs Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://kimikage.github.io/ProfileSVG.jl/dev)
[![CI](https://github.com/kimikage/ProfileSVG.jl/workflows/CI/badge.svg)](https://github.com/kimikage/ProfileSVG.jl/actions?query=workflow%3ACI)
[![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/P/ProfileSVG.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html)
[![Codecov](https://codecov.io/gh/kimikage/ProfileSVG.jl/branch/master/graph/badge.svg)](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`:

![Jupyter Notebook](images/jupyter.png)

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.