Commit 58e86ccb authored by RazrFalcon's avatar RazrFalcon

Charts updated.

parent ba8ee0fe
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by https://github.com/RazrFalcon/barh -->
<svg height="260" shape-rendering="crispEdges" width="841" xmlns="http://www.w3.org/2000/svg">
<text font-family="Arial" font-size="16" x="61" y="38">resvg 0.3.0</text>
<text font-family="Arial" font-size="16" x="4" y="71">Chromium r555668</text>
<text font-family="Arial" font-size="16" x="78" y="104">Batik 1.9</text>
<svg height="293" shape-rendering="crispEdges" width="841" xmlns="http://www.w3.org/2000/svg">
<text font-family="Arial" font-size="16" x="61" y="38">resvg 0.4.0</text>
<text font-family="Arial" font-size="16" x="56" y="71">Firefox 64.0</text>
<text font-family="Arial" font-size="16" x="4" y="104">Chromium r609904</text>
<text font-family="Arial" font-size="16" x="27" y="137">Inkscape 0.92.2</text>
<text font-family="Arial" font-size="16" x="45" y="170">librsvg 2.42.4</text>
<text font-family="Arial" font-size="16" x="50" y="203">QtSvg 5.10.1</text>
<rect fill="#ccc" height="209" width="1" x="144" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="140" y="233">0</text>
<rect fill="#ccc" height="209" width="1" x="314" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="301" y="233">159</text>
<rect fill="#ccc" height="209" width="1" x="485" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="472" y="233">317</text>
<rect fill="#ccc" height="209" width="1" x="656" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="643" y="233">476</text>
<rect fill="#ccc" height="209" width="1" x="827" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="814" y="233">634</text>
<rect fill="#3260cd" height="22" width="632" x="144" y="21"/>
<text fill="#fff" font-family="Arial" font-size="16" x="746" y="38">587</text>
<rect fill="#3260cd" height="22" width="632" x="144" y="54"/>
<text fill="#fff" font-family="Arial" font-size="16" x="746" y="71">587</text>
<rect fill="#3260cd" height="22" width="517" x="144" y="87"/>
<text fill="#fff" font-family="Arial" font-size="16" x="631" y="104">480</text>
<rect fill="#3260cd" height="22" width="544" x="144" y="120"/>
<text fill="#fff" font-family="Arial" font-size="16" x="658" y="137">505</text>
<rect fill="#3260cd" height="22" width="494" x="144" y="153"/>
<text fill="#fff" font-family="Arial" font-size="16" x="608" y="170">459</text>
<rect fill="#3260cd" height="22" width="353" x="144" y="186"/>
<text fill="#fff" font-family="Arial" font-size="16" x="467" y="203">328</text>
<rect fill="#333" height="209" width="1" x="144" y="10"/>
<text font-family="Arial" font-size="16" font-style="italic" x="444" y="255">Tests passed</text>
<text font-family="Arial" font-size="16" x="48" y="170">librsvg 2.45.1</text>
<text font-family="Arial" font-size="16" x="78" y="203">Batik 1.9</text>
<text font-family="Arial" font-size="16" x="51" y="236">QtSvg 5.11.1</text>
<rect fill="#ccc" height="242" width="1" x="144" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="140" y="266">0</text>
<rect fill="#ccc" height="242" width="1" x="314" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="301" y="266">204</text>
<rect fill="#ccc" height="242" width="1" x="485" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="472" y="266">408</text>
<rect fill="#ccc" height="242" width="1" x="656" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="645" y="266">611</text>
<rect fill="#ccc" height="242" width="1" x="827" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="814" y="266">815</text>
<rect fill="#3260cd" height="22" width="651" x="144" y="21"/>
<text fill="#fff" font-family="Arial" font-size="16" x="765" y="38">778</text>
<rect fill="#3260cd" height="22" width="633" x="144" y="54"/>
<text fill="#fff" font-family="Arial" font-size="16" x="747" y="71">756</text>
<rect fill="#3260cd" height="22" width="622" x="144" y="87"/>
<text fill="#fff" font-family="Arial" font-size="16" x="736" y="104">743</text>
<rect fill="#3260cd" height="22" width="542" x="144" y="120"/>
<text fill="#fff" font-family="Arial" font-size="16" x="656" y="137">647</text>
<rect fill="#3260cd" height="22" width="534" x="144" y="153"/>
<text fill="#fff" font-family="Arial" font-size="16" x="648" y="170">638</text>
<rect fill="#3260cd" height="22" width="506" x="144" y="186"/>
<text fill="#fff" font-family="Arial" font-size="16" x="620" y="203">604</text>
<rect fill="#3260cd" height="22" width="306" x="144" y="219"/>
<text fill="#fff" font-family="Arial" font-size="16" x="420" y="236">366</text>
<rect fill="#333" height="242" width="1" x="144" y="10"/>
<text font-family="Arial" font-size="16" font-style="italic" x="444" y="288">Tests passed</text>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by https://github.com/RazrFalcon/barh -->
<svg height="260" shape-rendering="crispEdges" width="841" xmlns="http://www.w3.org/2000/svg">
<text font-family="Arial" font-size="16" x="61" y="36">resvg 0.3.0</text>
<text font-family="Arial" font-size="16" x="4" y="71">Chromium r555668</text>
<text font-family="Arial" font-size="16" x="78" y="104">Batik 1.9</text>
<svg height="293" shape-rendering="crispEdges" width="841" xmlns="http://www.w3.org/2000/svg">
<text font-family="Arial" font-size="16" x="61" y="38">resvg 0.4.0</text>
<text font-family="Arial" font-size="16" x="56" y="71">Firefox 64.0</text>
<text font-family="Arial" font-size="16" x="4" y="104">Chromium r609904</text>
<text font-family="Arial" font-size="16" x="27" y="137">Inkscape 0.92.2</text>
<text font-family="Arial" font-size="16" x="45" y="170">librsvg 2.42.4</text>
<text font-family="Arial" font-size="16" x="50" y="201">QtSvg 5.10.1</text>
<rect fill="#ccc" height="209" width="1" x="144" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="140" y="233">0</text>
<rect fill="#ccc" height="209" width="1" x="314" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="306" y="233">85</text>
<rect fill="#ccc" height="209" width="1" x="485" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="472" y="233">169</text>
<rect fill="#ccc" height="209" width="1" x="656" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="643" y="233">254</text>
<rect fill="#ccc" height="209" width="1" x="827" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="814" y="233">338</text>
<rect fill="#3260cd" height="22" width="446" x="144" y="21"/>
<text fill="#fff" font-family="Arial" font-size="16" x="562" y="36">221</text>
<rect fill="#3260cd" height="22" width="604" x="144" y="54"/>
<text fill="#fff" font-family="Arial" font-size="16" x="718" y="71">299</text>
<rect fill="#3260cd" height="22" width="513" x="144" y="87"/>
<text fill="#fff" font-family="Arial" font-size="16" x="627" y="104">254</text>
<rect fill="#3260cd" height="22" width="519" x="144" y="120"/>
<text fill="#fff" font-family="Arial" font-size="16" x="633" y="137">257</text>
<rect fill="#3260cd" height="22" width="408" x="144" y="153"/>
<text fill="#fff" font-family="Arial" font-size="16" x="522" y="170">202</text>
<rect fill="#3260cd" height="22" width="284" x="144" y="186"/>
<text fill="#fff" font-family="Arial" font-size="16" x="400" y="201">141</text>
<rect fill="#333" height="209" width="1" x="144" y="10"/>
<text font-family="Arial" font-size="16" font-style="italic" x="444" y="255">Tests passed</text>
<text font-family="Arial" font-size="16" x="48" y="170">librsvg 2.45.1</text>
<text font-family="Arial" font-size="16" x="78" y="203">Batik 1.9</text>
<text font-family="Arial" font-size="16" x="51" y="234">QtSvg 5.11.1</text>
<rect fill="#ccc" height="242" width="1" x="144" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="140" y="266">0</text>
<rect fill="#ccc" height="242" width="1" x="314" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="306" y="266">84</text>
<rect fill="#ccc" height="242" width="1" x="485" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="472" y="266">169</text>
<rect fill="#ccc" height="242" width="1" x="656" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="643" y="266">253</text>
<rect fill="#ccc" height="242" width="1" x="827" y="10"/>
<text fill="#000" font-family="Arial" font-size="16" x="814" y="266">337</text>
<rect fill="#3260cd" height="22" width="482" x="144" y="21"/>
<text fill="#fff" font-family="Arial" font-size="16" x="596" y="38">238</text>
<rect fill="#3260cd" height="22" width="585" x="144" y="54"/>
<text fill="#fff" font-family="Arial" font-size="16" x="699" y="71">289</text>
<rect fill="#3260cd" height="22" width="597" x="144" y="87"/>
<text fill="#fff" font-family="Arial" font-size="16" x="711" y="104">295</text>
<rect fill="#3260cd" height="22" width="516" x="144" y="120"/>
<text fill="#fff" font-family="Arial" font-size="16" x="630" y="137">255</text>
<rect fill="#3260cd" height="22" width="451" x="144" y="153"/>
<text fill="#fff" font-family="Arial" font-size="16" x="565" y="170">223</text>
<rect fill="#3260cd" height="22" width="516" x="144" y="186"/>
<text fill="#fff" font-family="Arial" font-size="16" x="630" y="203">255</text>
<rect fill="#3260cd" height="22" width="285" x="144" y="219"/>
<text fill="#fff" font-family="Arial" font-size="16" x="401" y="234">141</text>
<rect fill="#333" height="242" width="1" x="144" y="10"/>
<text font-family="Arial" font-size="16" font-style="italic" x="444" y="288">Tests passed</text>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by https://github.com/RazrFalcon/barh -->
<svg height="214" shape-rendering="crispEdges" width="833" xmlns="http://www.w3.org/2000/svg">
<text font-family="Arial" font-size="16" font-weight="bold" x="149" y="16">Time to render Elementary OS Icon Theme 5.0</text>
<text font-family="Arial" font-size="16" x="4" y="56">resvg 0.4.0 (cairo)</text>
<text font-family="Arial" font-size="16" x="25" y="91">resvg 0.4.0 (qt)</text>
<text font-family="Arial" font-size="16" x="43" y="124">QtSvg 5.11.1</text>
<text font-family="Arial" font-size="16" x="40" y="157">librsvg 2.45.1</text>
<rect fill="#ccc" height="143" width="1" x="149" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="132" y="187">0sec</text>
<rect fill="#ccc" height="143" width="1" x="314" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="293" y="187">10sec</text>
<rect fill="#ccc" height="143" width="1" x="480" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="459" y="187">20sec</text>
<rect fill="#ccc" height="143" width="1" x="645" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="624" y="187">30sec</text>
<rect fill="#ccc" height="143" width="1" x="811" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="790" y="187">40sec</text>
<rect fill="#3260cd" height="22" width="364" x="149" y="41"/>
<text fill="#fff" font-family="Arial" font-size="16" x="492" y="56">22</text>
<rect fill="#3260cd" height="22" width="628" x="149" y="74"/>
<text fill="#fff" font-family="Arial" font-size="16" x="756" y="91">38</text>
<rect fill="#3260cd" height="22" width="496" x="149" y="107"/>
<text fill="#fff" font-family="Arial" font-size="16" x="624" y="124">30</text>
<rect fill="#3260cd" height="22" width="314" x="149" y="140"/>
<text fill="#fff" font-family="Arial" font-size="16" x="442" y="157">19</text>
<rect fill="#333" height="143" width="1" x="149" y="30"/>
<text font-family="Arial" font-size="16" font-style="italic" x="437" y="209">Time passed</text>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by https://github.com/RazrFalcon/barh -->
<svg height="214" shape-rendering="crispEdges" width="833" xmlns="http://www.w3.org/2000/svg">
<text font-family="Arial" font-size="16" font-weight="bold" x="149" y="16">Time to render Oxygen Icon Theme 4.12</text>
<text font-family="Arial" font-size="16" x="4" y="58">resvg 0.4.0 (cairo)</text>
<text font-family="Arial" font-size="16" x="25" y="91">resvg 0.4.0 (qt)</text>
<text font-family="Arial" font-size="16" x="43" y="124">QtSvg 5.11.1</text>
<text font-family="Arial" font-size="16" x="40" y="157">librsvg 2.45.1</text>
<rect fill="#ccc" height="143" width="1" x="149" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="132" y="187">0sec</text>
<rect fill="#ccc" height="143" width="1" x="313" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="292" y="187">60sec</text>
<rect fill="#ccc" height="143" width="1" x="477" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="451" y="187">120sec</text>
<rect fill="#ccc" height="143" width="1" x="641" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="615" y="187">180sec</text>
<rect fill="#ccc" height="143" width="1" x="806" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="780" y="187">240sec</text>
<rect fill="#3260cd" height="22" width="547" x="149" y="41"/>
<text fill="#fff" font-family="Arial" font-size="16" x="666" y="58">200</text>
<rect fill="#3260cd" height="22" width="574" x="149" y="74"/>
<text fill="#fff" font-family="Arial" font-size="16" x="693" y="91">210</text>
<rect fill="#3260cd" height="22" width="561" x="149" y="107"/>
<text fill="#fff" font-family="Arial" font-size="16" x="680" y="124">205</text>
<rect fill="#3260cd" height="22" width="424" x="149" y="140"/>
<text fill="#fff" font-family="Arial" font-size="16" x="543" y="157">155</text>
<rect fill="#333" height="143" width="1" x="149" y="30"/>
<text font-family="Arial" font-size="16" font-style="italic" x="437" y="209">Time passed</text>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by https://github.com/RazrFalcon/barh -->
<svg height="280" shape-rendering="crispEdges" width="833" xmlns="http://www.w3.org/2000/svg">
<text font-family="Arial" font-size="16" font-weight="bold" x="149" y="16">Time to render Oxygen Icon Theme</text>
<text font-family="Arial" font-size="16" x="4" y="58">resvg 0.3.0 (cairo)</text>
<text font-family="Arial" font-size="16" x="25" y="91">resvg 0.3.0 (qt)</text>
<text font-family="Arial" font-size="16" x="42" y="124">QtSvg 5.10.1</text>
<text font-family="Arial" font-size="16" x="37" y="155">librsvg 2.42.4</text>
<text font-family="Arial" font-size="16" x="19" y="190">Inkscape 0.92.2</text>
<text font-family="Arial" font-size="16" x="70" y="223">Batik 1.9</text>
<rect fill="#ccc" height="209" width="1" x="149" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="132" y="253">0sec</text>
<rect fill="#ccc" height="209" width="1" x="312" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="282" y="253">1000sec</text>
<rect fill="#ccc" height="209" width="1" x="475" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="445" y="253">2000sec</text>
<rect fill="#ccc" height="209" width="1" x="638" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="608" y="253">3000sec</text>
<rect fill="#ccc" height="209" width="1" x="802" y="30"/>
<text fill="#000" font-family="Arial" font-size="16" x="772" y="253">4000sec</text>
<rect fill="#3260cd" height="22" width="22" x="149" y="41"/>
<rect fill="#999" height="1" width="12" x="171" y="52"/>
<text fill="#000" font-family="Arial" font-size="16" x="185" y="58">140</text>
<rect fill="#3260cd" height="22" width="25" x="149" y="74"/>
<rect fill="#999" height="1" width="12" x="174" y="85"/>
<text fill="#000" font-family="Arial" font-size="16" x="188" y="91">154</text>
<rect fill="#3260cd" height="22" width="26" x="149" y="107"/>
<rect fill="#999" height="1" width="12" x="175" y="118"/>
<text fill="#000" font-family="Arial" font-size="16" x="189" y="124">161</text>
<rect fill="#3260cd" height="22" width="39" x="149" y="140"/>
<text fill="#fff" font-family="Arial" font-size="16" x="158" y="155">242</text>
<rect fill="#3260cd" height="22" width="262" x="149" y="173"/>
<text fill="#fff" font-family="Arial" font-size="16" x="372" y="190">1610</text>
<rect fill="#3260cd" height="22" width="601" x="149" y="206"/>
<text fill="#fff" font-family="Arial" font-size="16" x="711" y="223">3686</text>
<rect fill="#333" height="209" width="1" x="149" y="30"/>
<text font-family="Arial" font-size="16" font-style="italic" x="437" y="275">Time passed</text>
</svg>
......@@ -81,12 +81,23 @@ It also includes alternative libraries.
## Performance
![Chart3](./.github/perf.svg)
Note that all tested applications have a different SVG support, which impacts the performance.
- `librsvg` is slower than `resvg` because Oxygen Icon Theme is using Gaussian blur heavily, which is expensive.
- QtSvg is fast because it doesn't support Gaussian blur, clipPath, mask and pattern that are heavily used in the Oxygen Icon Theme.
- Inkscape and Batik are slow just because.
- [More details.](https://github.com/RazrFalcon/resvg-test-suite/blob/master/tools/perf/README.md)
Also, we do not test against Chrome, Firefox, Inkscape and Batik because they have a huge startup time.
![Chart3](./.github/perf-elementary.svg)
- Elementary Icon Theme contains 3417 files.
- resvg-qt is slow for unknown reasons.
![Chart4](./.github/perf-oxygen.svg)
- Oxygen Icon Theme contains 4947 files.
- All images were converted from `.svgz` to `.svg` beforehand.
- `resvg` is slower than `librsvg` because Oxygen Icon Theme is using Gaussian blur heavily, which is expensive.
And `librsvg` uses box blur optimization and multithreading, while `resvg` always uses a single-threaded IIR blur (at least for now).
- QtSvg doesn't support `filter`, `clipPath`, `mask` and `pattern` that are heavily used in the Oxygen Icon Theme.
So it's actually very slow.
## Project structure
......@@ -106,7 +117,7 @@ All other dependencies aren't written by me for this project.
- The library must not panic. Any panic should be considered a critical bug and reported.
There are only few methods that can produce a panic.
- The core library structure (see above) does not use any `unsafe`,
but since all backends are implemented via FFI, we are stuck with the `unsafe` anyway.
but since all backends are implemented via FFI, we are stuck with `unsafe` anyway.
## License
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment