timholy/ProfileView.jl — pull request #18 by darwindarak (2014-08-19 00:49:52+00:00)
Title: WIP: Speed up rendering for SVG backend

So it turns out that inserting ~10000 `

` elements directly into the DOM is very slow. This PR is an experiment in using [React.js](https://www.github.com/facebook/react) to render the flame graph.

The rendering speed is much faster for large datasets (< 1s as opposed to > 2 minutes). [Here's](https://doc-0o-68-docs.googleusercontent.com/docs/securesc/p6urp75u9mk6carts0irklrg3lt4a7ao/t5g1m5n6405glqmt5s6tcsons2e46o2q/1408406400000/14984941071090477091/14984941071090477091/0B517Rrk1ke9HWThUcGVPeXQxZGc?e=download&h=16653014193614665626&nonce=tk4jkg11t8h4a&user=14984941071090477091&hash=vuo6559asl6j3na5e5uspulvcnb7v81u) an example output (should work on Firefox and Chrome) generated by

```julia
using DataFrames, ProfileView
@profile reload("DataFrames")
ProfileView.svgwrite("testdata.html", C=true)
```

Major Issues:

- There are some problems with embedding React.js into a standalone SVG file. Dynamically inserting SVG elements seems to only work on '.html' files right now.
- Does not work with Safari for some reason

Still missing:

- [ ] Animated transition
- [ ] Scroll-wheel zooming
- [ ] Better text alignment