kimikage / ProfileSVG.jl

Write flame graphs to SVG format and explore them interactively in Jupyter, Pluto, etc.
MIT License
52 stars 7 forks source link

Problems with displaying function information #27

Closed kimikage closed 4 years ago

kimikage commented 4 years ago

There are roughly ~three~ 4 problems with text display.

1. No text is displayed when the script is disabled

https://kimikage.github.io/ProfileSVG.jl/v0.1.1/#Exporting-to-SVG-file-1 Simple is best, but it is useless as profiling data.

2. The path separator depends on the local OS

I intentionally made a mock-up of the profile data, which are obtained on Windows. https://github.com/kimikage/ProfileSVG.jl/blob/v0.1.1/docs/src/assets/profile_test.jl

And the SVGs in docs are generated on Linux CI environment. As a result, the generation of shortinfo fails. https://kimikage.github.io/ProfileSVG.jl/v0.1/assets/prof.svg

Of course this is a rare use case, but FlameGraphs v0.2 introduced a portable profile data format (* .jlprof). Therefore, I think improving data interoperability is good.

FYI, the categorization failure with StackFrameCategory was fixed in FlameGraphs v0.2.3 (cf. https://github.com/timholy/FlameGraphs.jl/pull/25).

3. Saving both the full and short info in an SVG file is wasteful

:smile:


Edit:

4. < and so on should be unescaped

https://github.com/kimikage/ProfileSVG.jl/blob/aae28450bb498de7dcdcac3e46af6710555c58da/src/viewer.js#L136 The lhs textContent does not require the HTML (or XML) escaping, even though the rhs string should be escaped.