JuliaPerf / JuliaPerf/PProf.jl

Split package in two, to separate building profile protos from visualizing profiles

Open
#72 1 comment 1 reaction 0 assignees View on GitHub
enhancement help wanted
Dominant language
Julia
Stars
173
Forks
20
PR merge metrics
No merged PRs in 30d

Description

## Problem
- `pprof_jll` now depends on `Graphviz_jll` since https://github.com/JuliaPackaging/Yggdrasil/pull/5652.
- this is an attempt to address https://github.com/JuliaPerf/PProf.jl/issues/16
- This has some disadvantages
- dependency bloat
- adding packages with licenses some users may not want (e.g. custom libpng license, LGPL license for Cairo)
- It’s a significant number of JLLs that are added.
- graphviz, pango, cairo, etc.

## Proposal
Some users don't actually need `pprof_jll` as a dependency (for example, at RAI). The parts of PProf.jl that we do need, are the parts that convert a profile into the pprof protobuf format. The `pprof_jll` is there for users to be able to visualize the profiles. We only use PProf for generating protos, as part of https://github.com/JuliaPerf/PerformanceProfilingHttpEndpoints.jl.

What this suggests to me is that probably we should split the PProf package in two (in the same repo):
- `PProf.jl` (Visualization + generating profiles), and
- `PProfProducer`, or `PProfConverter`, or `PProfCore`, or something like that, which is a package that just provides the `profile => pprof.pb.gz` conversion functionality.

Then RAI could depend only on the latter, and thus we wouldn't depend on `graphviz_jll`.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.