Re: -warmup
Ahmet Göksu <[email protected]>
| Newsgroups | gmane.comp.fonts.freetype.devel |
|---|---|
| Message-ID | <8ba9b6df-19a4-4b10-802c-5d12fa7f9949@Spark> |
Hİ, I have edited the code aligning with the Hin-Tak’s suggestion. Here is the two results pages, also pushed on gitlab. Best, Goksu goksu.in On 18 Aug 2023 14:02 +0300, Werner LEMBERG <[email protected]>, wrote: > > > What happens if you use, say, `-c 100000', just running the > > > `Get_Char_Index` test? Are the percental timing differences then > > > still that large? > > Actually Get_Char_Index, on the three pages I have sent in the > > prev. mail, is higher than 6% only 4 times out of 15 total. (which is > > seem on other tests as well). > > Well, the thing is that IMHO the difference should be *much* smaller – > your HTML pages show the execution of identical code on an identical > machine, right? > > > about outliers, i splitted every tests into chuncks that is sized > > 100. Made IQR calculations and calculated average time on valid > > chunks. you can find the result in the attachment also pushed to > > gitlab. > > Thanks. Hin-Tak gave additional suggestions how to possibly improve > the removal of outliers. > > > also, since statistics and benchmarking are a sciences their self, i > > am a bit struggling while approaching the problem as well as feels > > like out of the gsoc project scope. > > Indeed, the focus lately shifted from a representational aspect to a > more thorough approach how to handle benchmarks in general. You are > done with the first part, more or less, and it looks fine. The > latter, however, is definitely part of the GSoC project, too, and I'm > surprised that you think this might not be so: What are benchmark > timings good for if the returned values are completely meaningless? > > In most cases, a small performance optimization in FreeType might > yield, say, an improvement of 1%. Right now, such a change would not > be detectable at all if using the framework you are working on – it > would be completely hidden by noise. > > To summarize: Benchmark comparisons only work if there is a sound > mathematical foundation to reduce the noise. I don't ask you to > reinvent the wheel, but please do some more internet research and > check existing code how to tackle such problems. I'm 100% sure that > such code already exists (for example, the Google benchmark stuff > mentioned in a previous e-mail, scientific papers on arXiv, etc., > etc.) and can be easily used, adapted, and simplified for our > purposes. > > > Werner
benchmark.html
(text/html, 17.1 KB)
<html>
<head>
<style>
table {
}
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 550 -w 50</td><td>-c 550 -w 50</td></tr>
<tr><td class="col1">Commit ID</td><td><a href="https://gitlab.freedesktop.org/freetype/freetype/-/commit/3553148174ceb9c01eec1ca660aa77d5f0bd0b0e">35531481</a></td><td><a href="https://gitlab.freedesktop.org/freetype/freetype/-/commit/3553148174ceb9c01eec1ca660aa77d5f0bd0b0e">35531481</a></td></tr>
<tr><td class="col1">Commit Date</td><td>2023-08-18 02:04:38 +0300</td><td>2023-08-18 02:04:38 +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 all iterations. Smaller values are better.</p><p>** N count in (x | y) format is for showing baseline and benchmark N counts seperately when they differs.</p><h2>Total Results</h2>
<table border="1">
<tr><th>Test</th><th>N</th><th>Baseline (µs)</th> <th>Benchmark (µs)</th><th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>250000</td> <td class="highlight">178180</td> <td class="">190899</td><td>-7.1</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>250000</td> <td class="">161654</td> <td class="highlight">159430</td><td>1.4</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>250000</td> <td class="highlight">1047</td> <td class="">1130</td><td>-7.9</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>250000</td> <td class="highlight">996</td> <td class="">1006</td><td>-1.0</td></tr>
<tr><td class="col1">Render</td><td>250000</td> <td class="">278410</td> <td class="highlight">276644</td><td>0.6</td></tr>
<tr><td class="col1">Get_Glyph</td><td>250000</td> <td class="">213564</td> <td class="highlight">209314</td><td>2.0</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>235000</td> <td class="">1012</td> <td class="highlight">992</td><td>1.9</td></tr>
<tr><td class="col1">Iterate CMap</td><td>2500</td> <td class="highlight">873</td> <td class="">908</td><td>-4.0</td></tr>
<tr><td class="col1">New_Face</td><td>2500</td> <td class="highlight">12862</td> <td class="">13004</td><td>-1.1</td></tr>
<tr><td class="col1">Embolden</td><td>250000</td> <td class="">229042</td> <td class="highlight">226156</td><td>1.3</td></tr>
<tr><td class="col1">Stroke</td><td>250000</td> <td class="">956152</td> <td class="highlight">955616</td><td>0.1</td></tr>
<tr><td class="col1">Get_BBox</td><td>250000</td> <td class="">180922</td> <td class="highlight">177108</td><td>2.1</td></tr>
<tr><td class="col1">Get_CBox</td><td>250000</td> <td class="">211855</td> <td class="highlight">211493</td><td>0.2</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>250000</td> <td class="">29090</td> <td class="highlight">28778</td><td>1.1</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">2990000</td> <td class="col1">2455658</td><td class="col1">2452479</td> <td class="col1">0.1</td></tr>
</table><br/>
<h3>Results for Roboto_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>60000</td> <td class="highlight">29964</td><td class="lowlight">31568</td><td>-5.3</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>60000</td> <td class="lowlight">29942</td><td class="highlight">27342</td><td>8.7</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>60000</td> <td class="lowlight">233</td><td class="highlight">232</td><td>0.6</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>60000</td> <td class="highlight">220</td><td class="lowlight">220</td><td>0.0</td></tr>
<tr><td class="col1">Render</td><td>60000</td> <td class="highlight">53179</td><td class="lowlight">53842</td><td>-1.2</td></tr>
<tr><td class="col1">Get_Glyph</td><td>60000</td> <td class="highlight">38820</td><td class="lowlight">39532</td><td>-1.8</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="highlight">197</td><td class="lowlight">198</td><td>-0.3</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="highlight">185</td><td class="lowlight">194</td><td>-4.6</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="lowlight">2308</td><td class="highlight">2267</td><td>1.8</td></tr>
<tr><td class="col1">Embolden</td><td>60000</td> <td class="highlight">41109</td><td class="lowlight">41912</td><td>-2.0</td></tr>
<tr><td class="col1">Stroke</td><td>60000</td> <td class="highlight">213674</td><td class="lowlight">213932</td><td>-0.1</td></tr>
<tr><td class="col1">Get_BBox</td><td>60000</td> <td class="lowlight">17216</td><td class="highlight">16035</td><td>6.9</td></tr>
<tr><td class="col1">Get_CBox</td><td>60000</td> <td class="highlight">38976</td><td class="lowlight">40102</td><td>-2.9</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>60000</td> <td class="lowlight">5564</td><td class="highlight">5554</td><td>0.2</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1416000</td> <td class="col1">471587</td><td class="col1">472930</td><td class="col1">0.3</td></tr>
</table><br/>
<h3>Results for Arial_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="highlight">37834</td><td class="lowlight">43165</td><td>-14.1</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="lowlight">37650</td><td class="highlight">35215</td><td>6.5</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="highlight">202</td><td class="lowlight">284</td><td>-40.6</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="highlight">192</td><td class="lowlight">198</td><td>-3.1</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="highlight">60761</td><td class="lowlight">63992</td><td>-5.3</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">47014</td><td class="highlight">46873</td><td>0.3</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="lowlight">191</td><td class="highlight">188</td><td>1.6</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="lowlight">164</td><td class="highlight">162</td><td>0.6</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="lowlight">2712</td><td class="highlight">2687</td><td>0.9</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="lowlight">49745</td><td class="highlight">49386</td><td>0.7</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="highlight">182028</td><td class="lowlight">185064</td><td>-1.7</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="highlight">44360</td><td class="lowlight">44575</td><td>-0.5</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="highlight">46636</td><td class="lowlight">46844</td><td>-0.4</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="lowlight">5809</td><td class="highlight">5696</td><td>1.9</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">515298</td><td class="col1">524329</td><td class="col1">1.8</td></tr>
</table><br/>
<h3>Results for TimesNewRoman_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="highlight">53998</td><td class="lowlight">59007</td><td>-9.3</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="highlight">41270</td><td class="lowlight">43176</td><td>-4.6</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="highlight">205</td><td class="lowlight">205</td><td>0.0</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="highlight">194</td><td class="lowlight">195</td><td>-0.5</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="lowlight">70520</td><td class="highlight">69072</td><td>2.1</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">54836</td><td class="highlight">53826</td><td>1.8</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="lowlight">198</td><td class="highlight">195</td><td>1.5</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="lowlight">180</td><td class="highlight">166</td><td>8.1</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="highlight">2838</td><td class="lowlight">2849</td><td>-0.4</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="lowlight">59834</td><td class="highlight">59346</td><td>0.8</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="lowlight">239306</td><td class="highlight">239288</td><td>0.0</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="highlight">51879</td><td class="lowlight">52767</td><td>-1.7</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="highlight">53574</td><td class="lowlight">55530</td><td>-3.7</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="highlight">7012</td><td class="lowlight">7013</td><td>-0.0</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">635844</td><td class="col1">642634</td><td class="col1">1.1</td></tr>
</table><br/>
<h3>Results for Tahoma_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="highlight">27290</td><td class="lowlight">33068</td><td>-21.2</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="highlight">26190</td><td class="lowlight">28596</td><td>-9.2</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="highlight">202</td><td class="lowlight">205</td><td>-1.5</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="highlight">193</td><td class="lowlight">197</td><td>-2.1</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="highlight">46174</td><td class="lowlight">46322</td><td>-0.3</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">36092</td><td class="highlight">35983</td><td>0.3</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="lowlight">230</td><td class="highlight">215</td><td>6.3</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="highlight">178</td><td class="lowlight">203</td><td>-13.7</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="highlight">2552</td><td class="lowlight">2762</td><td>-8.2</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="highlight">38990</td><td class="lowlight">39810</td><td>-2.1</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="highlight">161374</td><td class="lowlight">162131</td><td>-0.5</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="highlight">33285</td><td class="lowlight">33466</td><td>-0.5</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="highlight">35792</td><td class="lowlight">36093</td><td>-0.8</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="lowlight">5348</td><td class="highlight">5316</td><td>0.6</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">413890</td><td class="col1">424364</td><td class="col1">2.5</td></tr>
</table><br/>
<h3>Results for Verdana_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="lowlight">29093</td><td class="highlight">24092</td><td>17.2</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="lowlight">26602</td><td class="highlight">25101</td><td>5.6</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="lowlight">205</td><td class="highlight">204</td><td>0.5</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="lowlight">197</td><td class="highlight">196</td><td>0.5</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="lowlight">47776</td><td class="highlight">43416</td><td>9.1</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">36802</td><td class="highlight">33101</td><td>10.1</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="highlight">196</td><td class="lowlight">197</td><td>-0.5</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="highlight">166</td><td class="lowlight">183</td><td>-10.2</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="lowlight">2452</td><td class="highlight">2440</td><td>0.5</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="lowlight">39363</td><td class="highlight">35702</td><td>9.3</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="lowlight">159770</td><td class="highlight">155200</td><td>2.9</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="lowlight">34184</td><td class="highlight">30266</td><td>11.5</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="lowlight">36878</td><td class="highlight">32924</td><td>10.7</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="lowlight">5356</td><td class="highlight">5199</td><td>2.9</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">419040</td><td class="col1">388223</td><td class="col1">-7.4</td></tr>
</table><br/>
<center>Freetype Benchmark</center>
</body>
</html>
benchmark copy.html
(text/html, 17.1 KB)
<html>
<head>
<style>
table {
}
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 550 -w 50</td><td>-c 550 -w 50</td></tr>
<tr><td class="col1">Commit ID</td><td><a href="https://gitlab.freedesktop.org/freetype/freetype/-/commit/f3dfede62f60c718d4aefc9c44b9025822f201d0">f3dfede6</a></td><td><a href="https://gitlab.freedesktop.org/freetype/freetype/-/commit/f3dfede62f60c718d4aefc9c44b9025822f201d0">f3dfede6</a></td></tr>
<tr><td class="col1">Commit Date</td><td>2023-08-18 17:42:53 +0300</td><td>2023-08-18 17:42:53 +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 all iterations. Smaller values are better.</p><p>** N count in (x | y) format is for showing baseline and benchmark N counts seperately when they differs.</p><h2>Total Results</h2>
<table border="1">
<tr><th>Test</th><th>N</th><th>Baseline (µs)</th> <th>Benchmark (µs)</th><th>Difference (%)</th></tr>
<tr><td class="col1">Load</td><td>250000</td> <td class="">195162</td> <td class="highlight">192424</td><td>1.4</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>250000</td> <td class="">176304</td> <td class="highlight">165363</td><td>6.2</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>250000</td> <td class="highlight">1108</td> <td class="">1206</td><td>-8.8</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>250000</td> <td class="">1087</td> <td class="highlight">1002</td><td>7.8</td></tr>
<tr><td class="col1">Render</td><td>250000</td> <td class="">287896</td> <td class="highlight">281738</td><td>2.1</td></tr>
<tr><td class="col1">Get_Glyph</td><td>250000</td> <td class="">229158</td> <td class="highlight">209460</td><td>8.6</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>235000</td> <td class="">992</td> <td class="highlight">974</td><td>1.8</td></tr>
<tr><td class="col1">Iterate CMap</td><td>2500</td> <td class="">869</td> <td class="highlight">862</td><td>0.7</td></tr>
<tr><td class="col1">New_Face</td><td>2500</td> <td class="">14858</td> <td class="highlight">12944</td><td>12.9</td></tr>
<tr><td class="col1">Embolden</td><td>250000</td> <td class="">251134</td> <td class="highlight">225803</td><td>10.1</td></tr>
<tr><td class="col1">Stroke</td><td>250000</td> <td class="">1029943</td> <td class="highlight">952907</td><td>7.5</td></tr>
<tr><td class="col1">Get_BBox</td><td>250000</td> <td class="">194832</td> <td class="highlight">175632</td><td>9.9</td></tr>
<tr><td class="col1">Get_CBox</td><td>250000</td> <td class="">240592</td> <td class="highlight">208729</td><td>13.2</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>250000</td> <td class="">30726</td> <td class="highlight">28956</td><td>5.8</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">2990000</td> <td class="col1">2654662</td><td class="col1">2458002</td> <td class="col1">7.4</td></tr>
</table><br/>
<h3>Results for Roboto_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>60000</td> <td class="lowlight">32608</td><td class="highlight">29986</td><td>8.0</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>60000</td> <td class="highlight">25514</td><td class="lowlight">27810</td><td>-9.0</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>60000</td> <td class="highlight">234</td><td class="lowlight">236</td><td>-0.4</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>60000</td> <td class="highlight">222</td><td class="lowlight">222</td><td>-0.2</td></tr>
<tr><td class="col1">Render</td><td>60000</td> <td class="lowlight">59280</td><td class="highlight">53374</td><td>10.0</td></tr>
<tr><td class="col1">Get_Glyph</td><td>60000</td> <td class="lowlight">46564</td><td class="highlight">38660</td><td>17.0</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="highlight">189</td><td class="lowlight">192</td><td>-1.9</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="highlight">162</td><td class="lowlight">199</td><td>-22.5</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="highlight">2365</td><td class="lowlight">2473</td><td>-4.6</td></tr>
<tr><td class="col1">Embolden</td><td>60000</td> <td class="lowlight">42693</td><td class="highlight">40797</td><td>4.4</td></tr>
<tr><td class="col1">Stroke</td><td>60000</td> <td class="lowlight">231927</td><td class="highlight">213316</td><td>8.0</td></tr>
<tr><td class="col1">Get_BBox</td><td>60000</td> <td class="lowlight">17214</td><td class="highlight">15458</td><td>10.2</td></tr>
<tr><td class="col1">Get_CBox</td><td>60000</td> <td class="lowlight">59079</td><td class="highlight">38800</td><td>34.3</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>60000</td> <td class="lowlight">5881</td><td class="highlight">5673</td><td>3.5</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1416000</td> <td class="col1">523930</td><td class="col1">467197</td><td class="col1">-10.8</td></tr>
</table><br/>
<h3>Results for Arial_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="highlight">46718</td><td class="lowlight">50918</td><td>-9.0</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="lowlight">48963</td><td class="highlight">41102</td><td>16.1</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="lowlight">220</td><td class="highlight">203</td><td>7.9</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="lowlight">212</td><td class="highlight">194</td><td>8.5</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="lowlight">68496</td><td class="highlight">63349</td><td>7.5</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">56682</td><td class="highlight">47480</td><td>16.2</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="lowlight">205</td><td class="highlight">191</td><td>6.8</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="lowlight">176</td><td class="highlight">166</td><td>5.7</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="lowlight">4460</td><td class="highlight">2648</td><td>40.6</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="lowlight">65332</td><td class="highlight">49192</td><td>24.7</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="lowlight">209668</td><td class="highlight">181308</td><td>13.5</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="lowlight">45346</td><td class="highlight">43772</td><td>3.5</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="lowlight">48516</td><td class="highlight">46081</td><td>5.0</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="lowlight">6254</td><td class="highlight">5712</td><td>8.7</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">601248</td><td class="col1">532316</td><td class="col1">-11.5</td></tr>
</table><br/>
<h3>Results for TimesNewRoman_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="highlight">49522</td><td class="lowlight">53178</td><td>-7.4</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="lowlight">42683</td><td class="highlight">41759</td><td>2.2</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="lowlight">204</td><td class="highlight">203</td><td>0.5</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="lowlight">195</td><td class="highlight">194</td><td>0.5</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="highlight">69274</td><td class="lowlight">71641</td><td>-3.4</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">55683</td><td class="highlight">54139</td><td>2.8</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="highlight">195</td><td class="lowlight">196</td><td>-0.8</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="lowlight">166</td><td class="highlight">166</td><td>0.6</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="lowlight">2816</td><td class="highlight">2772</td><td>1.6</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="lowlight">61636</td><td class="highlight">60835</td><td>1.3</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="lowlight">243476</td><td class="highlight">240778</td><td>1.1</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="lowlight">54669</td><td class="highlight">52533</td><td>3.9</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="lowlight">56070</td><td class="highlight">54882</td><td>2.1</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="highlight">6931</td><td class="lowlight">6942</td><td>-0.2</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">643522</td><td class="col1">640218</td><td class="col1">-0.5</td></tr>
</table><br/>
<h3>Results for Tahoma_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="lowlight">38173</td><td class="highlight">29830</td><td>21.9</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="lowlight">34392</td><td class="highlight">27796</td><td>19.2</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="highlight">225</td><td class="lowlight">225</td><td>0.0</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="lowlight">214</td><td class="highlight">198</td><td>7.5</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="lowlight">46312</td><td class="highlight">45885</td><td>0.9</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">36125</td><td class="highlight">35452</td><td>1.9</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="lowlight">205</td><td class="highlight">198</td><td>3.4</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="lowlight">196</td><td class="highlight">167</td><td>15.0</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="lowlight">2775</td><td class="highlight">2561</td><td>7.7</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="lowlight">44650</td><td class="highlight">38542</td><td>13.7</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="lowlight">185296</td><td class="highlight">162308</td><td>12.4</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="lowlight">35112</td><td class="highlight">32752</td><td>6.7</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="lowlight">42482</td><td class="highlight">35130</td><td>17.3</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="lowlight">6473</td><td class="highlight">5382</td><td>16.8</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">472629</td><td class="col1">416426</td><td class="col1">-11.9</td></tr>
</table><br/>
<h3>Results for Verdana_subset.ttf</h2>
<table border="1">
<tr><th>Test</th><th>N</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>47500</td> <td class="highlight">28141</td><td class="lowlight">28512</td><td>-1.3</td></tr>
<tr><td class="col1">Load_Advances (Normal)</td><td>47500</td> <td class="highlight">24752</td><td class="lowlight">26896</td><td>-8.7</td></tr>
<tr><td class="col1">Load_Advances (Fast)</td><td>47500</td> <td class="highlight">224</td><td class="lowlight">339</td><td>-51.0</td></tr>
<tr><td class="col1">Load_Advances (Unscaled)</td><td>47500</td> <td class="lowlight">244</td><td class="highlight">194</td><td>20.5</td></tr>
<tr><td class="col1">Render</td><td>47500</td> <td class="highlight">44534</td><td class="lowlight">47489</td><td>-6.6</td></tr>
<tr><td class="col1">Get_Glyph</td><td>47500</td> <td class="lowlight">34104</td><td class="highlight">33730</td><td>1.1</td></tr>
<tr><td class="col1">Get_Char_Index</td><td>47000</td> <td class="lowlight">198</td><td class="highlight">196</td><td>1.0</td></tr>
<tr><td class="col1">Iterate CMap</td><td>500</td> <td class="lowlight">168</td><td class="highlight">166</td><td>1.5</td></tr>
<tr><td class="col1">New_Face</td><td>500</td> <td class="highlight">2442</td><td class="lowlight">2490</td><td>-2.0</td></tr>
<tr><td class="col1">Embolden</td><td>47500</td> <td class="lowlight">36822</td><td class="highlight">36436</td><td>1.0</td></tr>
<tr><td class="col1">Stroke</td><td>47500</td> <td class="lowlight">159577</td><td class="highlight">155198</td><td>2.7</td></tr>
<tr><td class="col1">Get_BBox</td><td>47500</td> <td class="lowlight">42493</td><td class="highlight">31116</td><td>26.8</td></tr>
<tr><td class="col1">Get_CBox</td><td>47500</td> <td class="lowlight">34445</td><td class="highlight">33836</td><td>1.8</td></tr>
<tr><td class="col1">New_Face & load glyph(s)</td><td>47500</td> <td class="highlight">5186</td><td class="lowlight">5246</td><td>-1.2</td></tr>
<tr><td class="col1">TOTAL</td><td class="col1">1141000</td> <td class="col1">413332</td><td class="col1">401844</td><td class="col1">-2.8</td></tr>
</table><br/>
<center>Freetype Benchmark</center>
</body>
</html>