[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: -warmup
From: |
Ahmet Göksu |
Subject: |
Re: -warmup |
Date: |
Fri, 18 Aug 2023 17:49:11 +0300 |
Hİ,
I have edited the code aligning with the Hin-Tak’s suggestion. Here is the two results pages, also pushed on gitlab.
On 18 Aug 2023 14:02 +0300, Werner LEMBERG <wl@gnu.org>, 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
Freetype Benchmark Results
Warning: Baseline and Benchmark have the same commit ID!
Info
Info | Baseline | Benchmark |
Parameters | -c 550 -w 50 | -c 550 -w 50 |
Commit ID | 35531481 | 35531481 |
Commit Date | 2023-08-18 02:04:38 +0300 | 2023-08-18 02:04:38 +0300 |
Branch | GSoC-2023-Ahmet | GSoC-2023-Ahmet |
* Average time for all iterations. Smaller values are better.
** N count in (x | y) format is for showing baseline and benchmark N counts seperately when they differs.
Total Results
Test | N | Baseline (µs) | Benchmark (µs) | Difference (%) |
Load | 250000 | 178180 | 190899 | -7.1 |
Load_Advances (Normal) | 250000 | 161654 | 159430 | 1.4 |
Load_Advances (Fast) | 250000 | 1047 | 1130 | -7.9 |
Load_Advances (Unscaled) | 250000 | 996 | 1006 | -1.0 |
Render | 250000 | 278410 | 276644 | 0.6 |
Get_Glyph | 250000 | 213564 | 209314 | 2.0 |
Get_Char_Index | 235000 | 1012 | 992 | 1.9 |
Iterate CMap | 2500 | 873 | 908 | -4.0 |
New_Face | 2500 | 12862 | 13004 | -1.1 |
Embolden | 250000 | 229042 | 226156 | 1.3 |
Stroke | 250000 | 956152 | 955616 | 0.1 |
Get_BBox | 250000 | 180922 | 177108 | 2.1 |
Get_CBox | 250000 | 211855 | 211493 | 0.2 |
New_Face & load glyph(s) | 250000 | 29090 | 28778 | 1.1 |
TOTAL | 2990000 | 2455658 | 2452479 | 0.1 |
Results for Roboto_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 60000 | 29964 | 31568 | -5.3 |
Load_Advances (Normal) | 60000 | 29942 | 27342 | 8.7 |
Load_Advances (Fast) | 60000 | 233 | 232 | 0.6 |
Load_Advances (Unscaled) | 60000 | 220 | 220 | 0.0 |
Render | 60000 | 53179 | 53842 | -1.2 |
Get_Glyph | 60000 | 38820 | 39532 | -1.8 |
Get_Char_Index | 47000 | 197 | 198 | -0.3 |
Iterate CMap | 500 | 185 | 194 | -4.6 |
New_Face | 500 | 2308 | 2267 | 1.8 |
Embolden | 60000 | 41109 | 41912 | -2.0 |
Stroke | 60000 | 213674 | 213932 | -0.1 |
Get_BBox | 60000 | 17216 | 16035 | 6.9 |
Get_CBox | 60000 | 38976 | 40102 | -2.9 |
New_Face & load glyph(s) | 60000 | 5564 | 5554 | 0.2 |
TOTAL | 1416000 | 471587 | 472930 | 0.3 |
Results for Arial_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 37834 | 43165 | -14.1 |
Load_Advances (Normal) | 47500 | 37650 | 35215 | 6.5 |
Load_Advances (Fast) | 47500 | 202 | 284 | -40.6 |
Load_Advances (Unscaled) | 47500 | 192 | 198 | -3.1 |
Render | 47500 | 60761 | 63992 | -5.3 |
Get_Glyph | 47500 | 47014 | 46873 | 0.3 |
Get_Char_Index | 47000 | 191 | 188 | 1.6 |
Iterate CMap | 500 | 164 | 162 | 0.6 |
New_Face | 500 | 2712 | 2687 | 0.9 |
Embolden | 47500 | 49745 | 49386 | 0.7 |
Stroke | 47500 | 182028 | 185064 | -1.7 |
Get_BBox | 47500 | 44360 | 44575 | -0.5 |
Get_CBox | 47500 | 46636 | 46844 | -0.4 |
New_Face & load glyph(s) | 47500 | 5809 | 5696 | 1.9 |
TOTAL | 1141000 | 515298 | 524329 | 1.8 |
Results for TimesNewRoman_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 53998 | 59007 | -9.3 |
Load_Advances (Normal) | 47500 | 41270 | 43176 | -4.6 |
Load_Advances (Fast) | 47500 | 205 | 205 | 0.0 |
Load_Advances (Unscaled) | 47500 | 194 | 195 | -0.5 |
Render | 47500 | 70520 | 69072 | 2.1 |
Get_Glyph | 47500 | 54836 | 53826 | 1.8 |
Get_Char_Index | 47000 | 198 | 195 | 1.5 |
Iterate CMap | 500 | 180 | 166 | 8.1 |
New_Face | 500 | 2838 | 2849 | -0.4 |
Embolden | 47500 | 59834 | 59346 | 0.8 |
Stroke | 47500 | 239306 | 239288 | 0.0 |
Get_BBox | 47500 | 51879 | 52767 | -1.7 |
Get_CBox | 47500 | 53574 | 55530 | -3.7 |
New_Face & load glyph(s) | 47500 | 7012 | 7013 | -0.0 |
TOTAL | 1141000 | 635844 | 642634 | 1.1 |
Results for Tahoma_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 27290 | 33068 | -21.2 |
Load_Advances (Normal) | 47500 | 26190 | 28596 | -9.2 |
Load_Advances (Fast) | 47500 | 202 | 205 | -1.5 |
Load_Advances (Unscaled) | 47500 | 193 | 197 | -2.1 |
Render | 47500 | 46174 | 46322 | -0.3 |
Get_Glyph | 47500 | 36092 | 35983 | 0.3 |
Get_Char_Index | 47000 | 230 | 215 | 6.3 |
Iterate CMap | 500 | 178 | 203 | -13.7 |
New_Face | 500 | 2552 | 2762 | -8.2 |
Embolden | 47500 | 38990 | 39810 | -2.1 |
Stroke | 47500 | 161374 | 162131 | -0.5 |
Get_BBox | 47500 | 33285 | 33466 | -0.5 |
Get_CBox | 47500 | 35792 | 36093 | -0.8 |
New_Face & load glyph(s) | 47500 | 5348 | 5316 | 0.6 |
TOTAL | 1141000 | 413890 | 424364 | 2.5 |
Results for Verdana_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 29093 | 24092 | 17.2 |
Load_Advances (Normal) | 47500 | 26602 | 25101 | 5.6 |
Load_Advances (Fast) | 47500 | 205 | 204 | 0.5 |
Load_Advances (Unscaled) | 47500 | 197 | 196 | 0.5 |
Render | 47500 | 47776 | 43416 | 9.1 |
Get_Glyph | 47500 | 36802 | 33101 | 10.1 |
Get_Char_Index | 47000 | 196 | 197 | -0.5 |
Iterate CMap | 500 | 166 | 183 | -10.2 |
New_Face | 500 | 2452 | 2440 | 0.5 |
Embolden | 47500 | 39363 | 35702 | 9.3 |
Stroke | 47500 | 159770 | 155200 | 2.9 |
Get_BBox | 47500 | 34184 | 30266 | 11.5 |
Get_CBox | 47500 | 36878 | 32924 | 10.7 |
New_Face & load glyph(s) | 47500 | 5356 | 5199 | 2.9 |
TOTAL | 1141000 | 419040 | 388223 | -7.4 |
Freetype Benchmark
Freetype Benchmark Results
Warning: Baseline and Benchmark have the same commit ID!
Info
Info | Baseline | Benchmark |
Parameters | -c 550 -w 50 | -c 550 -w 50 |
Commit ID | f3dfede6 | f3dfede6 |
Commit Date | 2023-08-18 17:42:53 +0300 | 2023-08-18 17:42:53 +0300 |
Branch | GSoC-2023-Ahmet | GSoC-2023-Ahmet |
* Average time for all iterations. Smaller values are better.
** N count in (x | y) format is for showing baseline and benchmark N counts seperately when they differs.
Total Results
Test | N | Baseline (µs) | Benchmark (µs) | Difference (%) |
Load | 250000 | 195162 | 192424 | 1.4 |
Load_Advances (Normal) | 250000 | 176304 | 165363 | 6.2 |
Load_Advances (Fast) | 250000 | 1108 | 1206 | -8.8 |
Load_Advances (Unscaled) | 250000 | 1087 | 1002 | 7.8 |
Render | 250000 | 287896 | 281738 | 2.1 |
Get_Glyph | 250000 | 229158 | 209460 | 8.6 |
Get_Char_Index | 235000 | 992 | 974 | 1.8 |
Iterate CMap | 2500 | 869 | 862 | 0.7 |
New_Face | 2500 | 14858 | 12944 | 12.9 |
Embolden | 250000 | 251134 | 225803 | 10.1 |
Stroke | 250000 | 1029943 | 952907 | 7.5 |
Get_BBox | 250000 | 194832 | 175632 | 9.9 |
Get_CBox | 250000 | 240592 | 208729 | 13.2 |
New_Face & load glyph(s) | 250000 | 30726 | 28956 | 5.8 |
TOTAL | 2990000 | 2654662 | 2458002 | 7.4 |
Results for Roboto_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 60000 | 32608 | 29986 | 8.0 |
Load_Advances (Normal) | 60000 | 25514 | 27810 | -9.0 |
Load_Advances (Fast) | 60000 | 234 | 236 | -0.4 |
Load_Advances (Unscaled) | 60000 | 222 | 222 | -0.2 |
Render | 60000 | 59280 | 53374 | 10.0 |
Get_Glyph | 60000 | 46564 | 38660 | 17.0 |
Get_Char_Index | 47000 | 189 | 192 | -1.9 |
Iterate CMap | 500 | 162 | 199 | -22.5 |
New_Face | 500 | 2365 | 2473 | -4.6 |
Embolden | 60000 | 42693 | 40797 | 4.4 |
Stroke | 60000 | 231927 | 213316 | 8.0 |
Get_BBox | 60000 | 17214 | 15458 | 10.2 |
Get_CBox | 60000 | 59079 | 38800 | 34.3 |
New_Face & load glyph(s) | 60000 | 5881 | 5673 | 3.5 |
TOTAL | 1416000 | 523930 | 467197 | -10.8 |
Results for Arial_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 46718 | 50918 | -9.0 |
Load_Advances (Normal) | 47500 | 48963 | 41102 | 16.1 |
Load_Advances (Fast) | 47500 | 220 | 203 | 7.9 |
Load_Advances (Unscaled) | 47500 | 212 | 194 | 8.5 |
Render | 47500 | 68496 | 63349 | 7.5 |
Get_Glyph | 47500 | 56682 | 47480 | 16.2 |
Get_Char_Index | 47000 | 205 | 191 | 6.8 |
Iterate CMap | 500 | 176 | 166 | 5.7 |
New_Face | 500 | 4460 | 2648 | 40.6 |
Embolden | 47500 | 65332 | 49192 | 24.7 |
Stroke | 47500 | 209668 | 181308 | 13.5 |
Get_BBox | 47500 | 45346 | 43772 | 3.5 |
Get_CBox | 47500 | 48516 | 46081 | 5.0 |
New_Face & load glyph(s) | 47500 | 6254 | 5712 | 8.7 |
TOTAL | 1141000 | 601248 | 532316 | -11.5 |
Results for TimesNewRoman_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 49522 | 53178 | -7.4 |
Load_Advances (Normal) | 47500 | 42683 | 41759 | 2.2 |
Load_Advances (Fast) | 47500 | 204 | 203 | 0.5 |
Load_Advances (Unscaled) | 47500 | 195 | 194 | 0.5 |
Render | 47500 | 69274 | 71641 | -3.4 |
Get_Glyph | 47500 | 55683 | 54139 | 2.8 |
Get_Char_Index | 47000 | 195 | 196 | -0.8 |
Iterate CMap | 500 | 166 | 166 | 0.6 |
New_Face | 500 | 2816 | 2772 | 1.6 |
Embolden | 47500 | 61636 | 60835 | 1.3 |
Stroke | 47500 | 243476 | 240778 | 1.1 |
Get_BBox | 47500 | 54669 | 52533 | 3.9 |
Get_CBox | 47500 | 56070 | 54882 | 2.1 |
New_Face & load glyph(s) | 47500 | 6931 | 6942 | -0.2 |
TOTAL | 1141000 | 643522 | 640218 | -0.5 |
Results for Tahoma_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 38173 | 29830 | 21.9 |
Load_Advances (Normal) | 47500 | 34392 | 27796 | 19.2 |
Load_Advances (Fast) | 47500 | 225 | 225 | 0.0 |
Load_Advances (Unscaled) | 47500 | 214 | 198 | 7.5 |
Render | 47500 | 46312 | 45885 | 0.9 |
Get_Glyph | 47500 | 36125 | 35452 | 1.9 |
Get_Char_Index | 47000 | 205 | 198 | 3.4 |
Iterate CMap | 500 | 196 | 167 | 15.0 |
New_Face | 500 | 2775 | 2561 | 7.7 |
Embolden | 47500 | 44650 | 38542 | 13.7 |
Stroke | 47500 | 185296 | 162308 | 12.4 |
Get_BBox | 47500 | 35112 | 32752 | 6.7 |
Get_CBox | 47500 | 42482 | 35130 | 17.3 |
New_Face & load glyph(s) | 47500 | 6473 | 5382 | 16.8 |
TOTAL | 1141000 | 472629 | 416426 | -11.9 |
Results for Verdana_subset.ttf
Test | N | * Baseline (µs) | * Benchmark (µs) | Difference (%) |
Load | 47500 | 28141 | 28512 | -1.3 |
Load_Advances (Normal) | 47500 | 24752 | 26896 | -8.7 |
Load_Advances (Fast) | 47500 | 224 | 339 | -51.0 |
Load_Advances (Unscaled) | 47500 | 244 | 194 | 20.5 |
Render | 47500 | 44534 | 47489 | -6.6 |
Get_Glyph | 47500 | 34104 | 33730 | 1.1 |
Get_Char_Index | 47000 | 198 | 196 | 1.0 |
Iterate CMap | 500 | 168 | 166 | 1.5 |
New_Face | 500 | 2442 | 2490 | -2.0 |
Embolden | 47500 | 36822 | 36436 | 1.0 |
Stroke | 47500 | 159577 | 155198 | 2.7 |
Get_BBox | 47500 | 42493 | 31116 | 26.8 |
Get_CBox | 47500 | 34445 | 33836 | 1.8 |
New_Face & load glyph(s) | 47500 | 5186 | 5246 | -1.2 |
TOTAL | 1141000 | 413332 | 401844 | -2.8 |
Freetype Benchmark
- Re: -warmup, (continued)
- Re: -warmup, Werner LEMBERG, 2023/08/07
- Re: -warmup, Ahmet Göksu, 2023/08/16
- Re: -warmup, Werner LEMBERG, 2023/08/17
- Re: -warmup, Werner LEMBERG, 2023/08/17
- Re: -warmup, Ahmet Göksu, 2023/08/17
- Re: -warmup, Hin-Tak Leung, 2023/08/18
- Re: -warmup, Ahmet Göksu, 2023/08/18
- Re: -warmup, Werner LEMBERG, 2023/08/18
- Re: -warmup, chris, 2023/08/18
- Re: -warmup, Werner LEMBERG, 2023/08/21
- Re: -warmup,
Ahmet Göksu <=
- Re: -warmup, Werner LEMBERG, 2023/08/21
- Re: -warmup, Werner LEMBERG, 2023/08/28
- Re: -warmup, Ahmet Göksu, 2023/08/29
- Re: -warmup, Werner LEMBERG, 2023/08/29
- Re: -warmup, Ahmet Göksu, 2023/08/29
- Re: -warmup, Werner LEMBERG, 2023/08/30
- Re: -warmup, Werner LEMBERG, 2023/08/30