Theme
Dataset
Default
10K
Generic version for any input
Key ideas from the start
13.490
17.991
Optimized generic float parsing
6.551
-51.4%
10.720
-40.4%
Optimized hash function
6.313
-3.6%
10.384
-3.1%
Using the input specs
Parse numbers as integers
5.229
-17.2%
8.627
-16.9%
Set dictionary capacity
4.341
-17.0%
8.951
3.8%
Optimized IndexOf
4.040
-6.9%
8.609
-3.8%
Use native integers everywhere
3.693
-8.6%
8.604
-0.1%
Use a custom dictionary
3.272
-11.4%
8.232
-4.3%
Fast Utf8Span.Equals
2.773
-15.3%
6.635
-19.4%
Optimize the inner loop
2.191
-21.0%
4.811
-27.5%
Low dictionary load factor
2.219
1.3%
4.185
-13.0%
Making it even faster
Faster Utf8Span.Equals
2.148
-3.2%
4.052
-3.2%
Better hash function
2.140
-0.4%
4.024
-0.7%
Smaller hot path, non inline rare paths
2.062
-3.6%
3.751
-6.8%
Init Summary during Add
2.025
-1.8%
3.752
0.0%
Copy keys to dict, better cache locality
1.975
-2.5%
3.394
-9.5%
ParseInt starts from semicolon
1.945
-1.5%
3.406
0.4%
Break chunks unevenly and munmap
at different times
1.814
-6.7%
3.256
-4.4%
Misc micro-optimizations
1.791
-1.3%
3.213
-1.3%
Final push
Final results, multiple changes
1.491
-16.8%
2.907
-9.5%
Windows has slow mmap
Last Linux (mmap based)
2.611
4.064
Use async RandomAccess on Windows
2.041
-21.8%
3.598
-11.5%