ftbench: last updates
Ahmet Göksu <[email protected]>
| Newsgroups | gmane.comp.fonts.freetype.devel |
|---|---|
| Message-ID | <20e6ef7f-aa07-41eb-a0f4-a5216ffeca30@Spark> |
Hi, It is a late message, sorry for this. > BTW, have you checked whether replacing `CLOCK_REALTIME` with > `CLOCK_MONOTONIC` gives better results? > > What platform do you actually develop on? What #if clause in > function `get_time` of `ftbench.c` is run on your computer? I tried to change the CLOCK_MONOTONIC but my system is not even run this if clause. I am running on a mac. It is runnning only this part > ... > #else /* clock() accuracy has improved since glibc 2.18 */ return 1E6 * (double)clock() / (double)CLOCKS_PER_SEC;#endif /* _POSIX_TIMERS */ -- > With 'bulk test' I mean that you don't time single iterations but do timings for 10 iterations in a group, say, thus avoiding issues with the granularity of the OS timing functions. I already changed the working way of the timing. I only start the benchmark at beginning and stop at the end. > Please separate this line slightly from the rest of the table > and print the *cumulated timing* (in 's', not 'µs') of all tests, > something like > I wouldn't use '**' – this looks like a footnote, and people start > searching where it belongs to. Instead, please use a simple > itemization. > > * I suggest to rename column 'N' to 'Iterations' or '#Iterations' (or > something similar). > > * The sentence about '(X | Y') is cryptic. Maybe simply start with done! > The links for `Baseline` and `Benchmark` to the `.txt` files are > absolute and thus not portable. They must be relative. I didnt get this clear. Since objs dir and the source dir different, I needed to give abs path. Best, Goksu goksu.in
benchmark.html
(text/html, 16 KB)
<html>
<head>
<style>
table {
table-layout: fixed;
}
th, td {
padding: 3px;
text-align: center;
}
th {
background-color: #ccc;
color: black;
}
.warning{
color: red;
}
.col1 {
background-color: #eee;
}
.highlight {
background-color: #0a0;
}
</style>
</head>
<body>
<h1>Freetype Benchmark Results</h1>
<h2 class="warning">Warning: Baseline and Benchmark have the same commit ID!</h2>
<h2>Info</h2>
<table border="1">
<tr><th>Info</th><th>Baseline</th><th>Benchmark</th></tr>
<tr><td class="col1">Parameters</td><td>-c 1000 -w 100</td><td>-c 1000 -w 100</td></tr>
<tr><td class="col1">Commit ID</td><td><a href="https://gitlab.freedesktop.org/freetype/freetype/-/commit/267f1914d67ca1095633ab3ecadf496246fedc5d">267f1914</a></td><td><a href="https://gitlab.freedesktop.org/freetype/freetype/-/commit/267f1914d67ca1095633ab3ecadf496246fedc5d">267f1914</a></td></tr>
<tr><td class="col1">Commit Date</td><td>2023-08-30 18:15:08 +0300</td><td>2023-08-30 18:15:08 +0300</td></tr>
<tr><td class="col1">Branch</td><td>GSoC-2023-Ahmet</td><td>GSoC-2023-Ahmet</td></tr>
</table><br/><p>* Average time for single iteration. Smaller values are better.</p><p> If two values are given in the 'Iterations' column, those are belong to baseline and benchmark in order. </p><h2>Total Results</h2>
<table border="1">
<tr><th>Test</th><th>Iterations</th><th>* Baseline (µs)</th> <th>* Benchmark (µs)</th><th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>100000</td> <td class="">635.3</td> <td class="highlight">591.8</td><td>6.9</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>100000</td> <td class="highlight">593.4</td> <td class="">608.9</td><td>-2.6</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>100000</td> <td class="">2.2</td> <td class="highlight">2.2</td><td>1.8</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>100000</td> <td class="">2.1</td> <td class="highlight">2.0</td><td>1.0</td></tr>
<tr><td class="col1">Render</td><td>100000</td> <td class="highlight">933.3</td> <td class="">935.3</td><td>-0.2</td></tr>
<tr><td class="col1">Get_Glyph</td><td>100000</td> <td class="highlight">677.8</td> <td class="">679.8</td><td>-0.3</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>94000</td> <td class="highlight">2.0</td> <td class="">2.0</td><td>-1.0</td></tr>
<tr><td class="col1">Iterate CMap</td><td>1000</td> <td class="">1.3</td> <td class="highlight">1.3</td><td>1.5</td></tr>
<tr><td class="col1">New_Face</td><td>1000</td> <td class="">51.3</td> <td class="highlight">48.0</td><td>6.5</td></tr>
<tr><td class="col1">Embolden</td><td>100000</td> <td class="">749.5</td> <td class="highlight">749.5</td><td>0.0</td></tr>
<tr><td class="col1">Stroke</td><td>58550 | 57600</td> <td class="highlight">2555.1</td> <td class="">2567.4</td><td>-0.5</td></tr>
<tr><td class="col1">Get_BBox</td><td>100000</td> <td class="">555.2</td> <td class="highlight">554.0</td><td>0.2</td></tr>
<tr><td class="col1">Get_CBox</td><td>100000</td> <td class="highlight">679.4</td> <td class="">680.6</td><td>-0.2</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>100000</td> <td class="">112.7</td> <td class="highlight">111.4</td><td>1.1</td></tr>
<tr><td class="col1">Total duration for all tests:</td><td class="col1" colspan="4">80 s</td></table>
<h3>Results for Roboto_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>Iterations</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/baseline/Roboto_subset.txt">Baseline</a> (µs)</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/benchmark/Roboto_subset.txt">Benchmark</a> (µs)</th> <th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>120000</td> <td class="">486.6</td><td class="highlight">485.6</td><td>0.2</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>120000</td> <td class="">489.4</td><td class="highlight">485.1</td><td>0.9</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>120000</td> <td class="highlight">2.6</td><td class="highlight">2.6</td><td>0.0</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>120000</td> <td class="highlight">2.4</td><td class="highlight">2.4</td><td>0.0</td></tr>
<tr><td class="col1">Render</td><td>120000</td> <td class="">885.6</td><td class="highlight">881.9</td><td>0.4</td></tr>
<tr><td class="col1">Get_Glyph</td><td>120000</td> <td class="">593.6</td><td class="highlight">589.6</td><td>0.7</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>94000</td> <td class="highlight">1.9</td><td class="highlight">1.9</td><td>0.0</td></tr>
<tr><td class="col1">Iterate CMap</td><td>1000</td> <td class="highlight">1.3</td><td class="highlight">1.3</td><td>0.0</td></tr>
<tr><td class="col1">New_Face</td><td>1000</td> <td class="">44.3</td><td class="highlight">41.6</td><td>6.1</td></tr>
<tr><td class="col1">Embolden</td><td>120000</td> <td class="">640.0</td><td class="highlight">639.3</td><td>0.1</td></tr>
<tr><td class="col1">Stroke</td><td>60000</td> <td class="">2335.8</td><td class="highlight">2323.6</td><td>0.5</td></tr>
<tr><td class="col1">Get_BBox</td><td>120000</td> <td class="">148.7</td><td class="highlight">138.6</td><td>6.8</td></tr>
<tr><td class="col1">Get_CBox</td><td>120000</td> <td class="">594.0</td><td class="highlight">590.8</td><td>0.5</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>120000</td> <td class="">114.3</td><td class="highlight">104.7</td><td>8.4</td></tr>
<tr><td class="col1">Total duration for the font:</td><td class="col1" colspan="4">14 s</td></table>
<h3>Results for Arial_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>Iterations</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/baseline/Arial_subset.txt">Baseline</a> (µs)</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/benchmark/Arial_subset.txt">Benchmark</a> (µs)</th> <th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>95000</td> <td class="">892.1</td><td class="highlight">713.2</td><td>20.1</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>95000</td> <td class="highlight">753.4</td><td class="">788.9</td><td>-4.7</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>95000</td> <td class="highlight">2.0</td><td class="">2.1</td><td>-5.0</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>95000</td> <td class="highlight">1.9</td><td class="highlight">1.9</td><td>0.0</td></tr>
<tr><td class="col1">Render</td><td>95000</td> <td class="">1057.4</td><td class="highlight">1037.1</td><td>1.9</td></tr>
<tr><td class="col1">Get_Glyph</td><td>95000</td> <td class="">812.5</td><td class="highlight">779.6</td><td>4.0</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>94000</td> <td class="highlight">2.4</td><td class="highlight">2.4</td><td>0.0</td></tr>
<tr><td class="col1">Iterate CMap</td><td>1000</td> <td class="">1.4</td><td class="highlight">1.3</td><td>7.1</td></tr>
<tr><td class="col1">New_Face</td><td>1000</td> <td class="">65.3</td><td class="highlight">51.8</td><td>20.7</td></tr>
<tr><td class="col1">Embolden</td><td>95000</td> <td class="">874.6</td><td class="highlight">835.5</td><td>4.5</td></tr>
<tr><td class="col1">Stroke</td><td>57000</td> <td class="">3458.1</td><td class="highlight">3425.7</td><td>0.9</td></tr>
<tr><td class="col1">Get_BBox</td><td>95000</td> <td class="">764.6</td><td class="highlight">719.4</td><td>5.9</td></tr>
<tr><td class="col1">Get_CBox</td><td>95000</td> <td class="">816.4</td><td class="highlight">766.2</td><td>6.1</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>95000</td> <td class="highlight">110.7</td><td class="">111.9</td><td>-1.1</td></tr>
<tr><td class="col1">Total duration for the font:</td><td class="col1" colspan="4">18 s</td></table>
<h3>Results for TimesNewRoman_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>Iterations</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/baseline/TimesNewRoman_subset.txt">Baseline</a> (µs)</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/benchmark/TimesNewRoman_subset.txt">Benchmark</a> (µs)</th> <th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>95000</td> <td class="">836.4</td><td class="highlight">821.0</td><td>1.8</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>95000</td> <td class="highlight">818.6</td><td class="">825.4</td><td>-0.8</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>95000</td> <td class="">2.1</td><td class="highlight">2.0</td><td>4.8</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>95000</td> <td class="highlight">1.9</td><td class="highlight">1.9</td><td>0.0</td></tr>
<tr><td class="col1">Render</td><td>95000</td> <td class="">1200.3</td><td class="highlight">1188.2</td><td>1.0</td></tr>
<tr><td class="col1">Get_Glyph</td><td>95000</td> <td class="highlight">900.1</td><td class="">906.8</td><td>-0.7</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>94000</td> <td class="highlight">1.8</td><td class="highlight">1.8</td><td>0.0</td></tr>
<tr><td class="col1">Iterate CMap</td><td>1000</td> <td class="highlight">1.3</td><td class="highlight">1.3</td><td>0.0</td></tr>
<tr><td class="col1">New_Face</td><td>1000</td> <td class="">53.2</td><td class="highlight">52.8</td><td>0.8</td></tr>
<tr><td class="col1">Embolden</td><td>95000</td> <td class="highlight">1024.7</td><td class="">1031.6</td><td>-0.7</td></tr>
<tr><td class="col1">Stroke</td><td>42750</td> <td class="highlight">1036.1</td><td class="">1042.9</td><td>-0.7</td></tr>
<tr><td class="col1">Get_BBox</td><td>95000</td> <td class="highlight">882.8</td><td class="">883.7</td><td>-0.1</td></tr>
<tr><td class="col1">Get_CBox</td><td>95000</td> <td class="highlight">905.2</td><td class="">908.9</td><td>-0.4</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>95000</td> <td class="">135.7</td><td class="highlight">133.9</td><td>1.3</td></tr>
<tr><td class="col1">Total duration for the font:</td><td class="col1" colspan="4">20 s</td></table>
<h3>Results for Tahoma_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>Iterations</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/baseline/Tahoma_subset.txt">Baseline</a> (µs)</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/benchmark/Tahoma_subset.txt">Benchmark</a> (µs)</th> <th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>95000</td> <td class="highlight">468.9</td><td class="">510.9</td><td>-9.0</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>95000</td> <td class="highlight">467.9</td><td class="">516.5</td><td>-10.4</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>95000</td> <td class="">2.2</td><td class="highlight">2.1</td><td>4.5</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>95000</td> <td class="">2.0</td><td class="highlight">1.9</td><td>5.0</td></tr>
<tr><td class="col1">Render</td><td>95000</td> <td class="highlight">769.0</td><td class="">827.5</td><td>-7.6</td></tr>
<tr><td class="col1">Get_Glyph</td><td>95000</td> <td class="highlight">558.6</td><td class="">607.6</td><td>-8.8</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>94000</td> <td class="highlight">1.8</td><td class="">1.9</td><td>-5.6</td></tr>
<tr><td class="col1">Iterate CMap</td><td>1000</td> <td class="highlight">1.3</td><td class="highlight">1.3</td><td>0.0</td></tr>
<tr><td class="col1">New_Face</td><td>1000</td> <td class="highlight">46.8</td><td class="">47.6</td><td>-1.7</td></tr>
<tr><td class="col1">Embolden</td><td>95000</td> <td class="highlight">625.4</td><td class="">665.5</td><td>-6.4</td></tr>
<tr><td class="col1">Stroke</td><td>66500 | 61750</td> <td class="highlight">3020.9</td><td class="">3125.7</td><td>-3.5</td></tr>
<tr><td class="col1">Get_BBox</td><td>95000</td> <td class="highlight">509.9</td><td class="">557.3</td><td>-9.3</td></tr>
<tr><td class="col1">Get_CBox</td><td>95000</td> <td class="highlight">560.1</td><td class="">613.1</td><td>-9.5</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>95000</td> <td class="highlight">101.2</td><td class="">104.5</td><td>-3.3</td></tr>
<tr><td class="col1">Total duration for the font:</td><td class="col1" colspan="4">14 s</td></table>
<h3>Results for Verdana_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>Iterations</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/baseline/Verdana_subset.txt">Baseline</a> (µs)</th> <th>* <a href="/Users/gks/Desktop/freetype/objs/benchmark/Verdana_subset.txt">Benchmark</a> (µs)</th> <th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>95000</td> <td class="">492.5</td><td class="highlight">428.1</td><td>13.1</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>95000</td> <td class="">437.8</td><td class="highlight">428.8</td><td>2.1</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>95000</td> <td class="">2.3</td><td class="highlight">2.2</td><td>4.3</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>95000</td> <td class="highlight">2.1</td><td class="highlight">2.1</td><td>0.0</td></tr>
<tr><td class="col1">Render</td><td>95000</td> <td class="">754.2</td><td class="highlight">741.8</td><td>1.6</td></tr>
<tr><td class="col1">Get_Glyph</td><td>95000</td> <td class="">524.4</td><td class="highlight">515.6</td><td>1.7</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>94000</td> <td class="highlight">1.9</td><td class="highlight">1.9</td><td>0.0</td></tr>
<tr><td class="col1">Iterate CMap</td><td>1000</td> <td class="highlight">1.3</td><td class="highlight">1.3</td><td>0.0</td></tr>
<tr><td class="col1">New_Face</td><td>1000</td> <td class="">46.8</td><td class="highlight">46.0</td><td>1.7</td></tr>
<tr><td class="col1">Embolden</td><td>95000</td> <td class="">583.0</td><td class="highlight">575.8</td><td>1.2</td></tr>
<tr><td class="col1">Stroke</td><td>66500</td> <td class="">2924.4</td><td class="highlight">2919.1</td><td>0.2</td></tr>
<tr><td class="col1">Get_BBox</td><td>95000</td> <td class="highlight">469.9</td><td class="">471.0</td><td>-0.2</td></tr>
<tr><td class="col1">Get_CBox</td><td>95000</td> <td class="highlight">521.2</td><td class="">523.9</td><td>-0.5</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>95000</td> <td class="highlight">101.4</td><td class="">101.9</td><td>-0.5</td></tr>
<tr><td class="col1">Total duration for the font:</td><td class="col1" colspan="4">14 s</td></table>
<center>Freetype Benchmark</center>
</body>
</html>