Skip to content

Benchmark: C-strings (null-terminated char array) vs ptr+length vs ptr+ptr_end

License

Notifications You must be signed in to change notification settings

gh0st-work/c-str-bench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Benchmark: C-strings (null-terminated char array) vs ptr+length vs ptr+ptr_end

  • C-strings - null-terminated char array
  • ptr+len - pointer to the start of the buffer and its length in a struct
  • ptr+ptr_end - pointer to the start of the buffer and pointer to the end
  • Idea: thought about this thread being pathetic for thinking in terms of some imaginary bs, also I was choosing string implementation for personal use
  • TL;DR: There is "Conclusions" section at the end

Assumptions:

  • C-strings are more error-prone and generally inconvenient & possibly require more compute to calc len
  • ptr+len possibly costs extra register
  • ptr+ptr_end possibly requires more compute to calc len & possibly costs extra register

Benchmark details:

  • Default scenario is: we got string from somewhere (dynamic data kinda), we need to cat+clone it
    • Implemented as reading from cat_me.txt file, as compilers can hardcode strlen(compile-time string) to functions assembly
  • cat (+ clone) is one of the most used string operations in modern software development (string formatting uses it a lot)
    • cat (& formatting) is considered a stdlib feature in any (esp. modern) language, so MUST be basic
  • Realistic only scenarios, meaning that we allocate inside a function and returning ptr, not pre-planning and stuff, library-like usage
  • Memory is NOT considered an issue
    • U record strlen a lot anyways
    • We are not in 70s, even in embedded
    • size_t is 32-64 bits, not so far from 8 bits (char for null-terminator)
    • U use size_t everywhere anyways
  • malloc is considered bad as it's a long syscall (RAII (C++ & Rust) is considered bad for mallocing too much kekw)
    • Arena alloc is used instead
  • memmove is optimized af
    • I know it for sure as once tried to reimplement it on SSE+AVX, I've failed only reaching extremely close performance (~1% diff) to memmove in most cases
      • If u think otherwise (and consider my implementation nooby) - go forward and prove it
  • From previous bullet point also compilers optimize stuff af, esp. in simple functions like those one, so all your yOuRe-DoInG-iT-wRoNg bs is optimized out anyways
    • If u think otherwise (and consider my implementation nooby) - go forward and prove it
  • If existing C compiler can optimize out the difference - some other compiler can (esp. when lots of people use LLVM backend)
  • Terminology:
    • (n)nt - (Not-)Null-Terminated
    • nl - (No-)Length provided, cat function will call strlen
      • l - Length provided as size_t like in C stdlib, to compete with this - is kinda hard-mode
    • str0 is c-string, str1 is ptr+len, str2 is ptr+ptr_end
  • Cases (length):
    • 8+2 = 10
    • 7+18 = 25
    • 35+15 = 50
    • 45+55 = 100
    • 99+151 = 250
    • 368+132 = 500
  • Stats design:
    • Parse and store data (float timing seconds) for multiple runs
    • Select stats metric (avg/med/p5/p10/p90/p95)
    • Select implementation variant (nl/l, nl for example)
    • Calculate and store "time saved" percent for each run (dt/c-string nl)
      • ((this implementation nl timing for this run)-(c-string nl timing for this run))/(c-string nl timing for this run)*100
      • So they are dependent on its own run
      • Thus we don't think about raw ms or machines, just see stable and easy to comprehend numbers
    • Make stats on this percent (on runs)
    • Calculate winners

Results clang -O3 (1000 runs * 10_000 iters):

str0:nl:10:            avg:  0.001244 | med:  0.001183 | min:  0.000278 | max:  0.041288 | p5:  0.000777 | p10:  0.000780 | p90:  0.001375 | p95:  0.001484 
str0:nl:25:            avg:  0.001066 | med:  0.001019 | min:  0.000478 | max:  0.003365 | p5:  0.000798 | p10:  0.000908 | p90:  0.001329 | p95:  0.001469 
str0:nl:50:            avg:  0.001438 | med:  0.001429 | min:  0.000212 | max:  0.037911 | p5:  0.000709 | p10:  0.000746 | p90:  0.001756 | p95:  0.001922 
str0:nl:100:           avg:  0.001631 | med:  0.001643 | min:  0.000235 | max:  0.026397 | p5:  0.000703 | p10:  0.000707 | p90:  0.002580 | p95:  0.002742 
str0:nl:250:           avg:  0.002161 | med:  0.001936 | min:  0.001219 | max:  0.041365 | p5:  0.001731 | p10:  0.001752 | p90:  0.002625 | p95:  0.002815 
str0:nl:500:           avg:  0.003494 | med:  0.003233 | min:  0.002275 | max:  0.046027 | p5:  0.002875 | p10:  0.002932 | p90:  0.003822 | p95:  0.004133 
str0:l:10:             avg:  0.000475 | med:  0.000427 | min:  0.000162 | max:  0.002854 | p5:  0.000312 | p10:  0.000313 | p90:  0.000651 | p95:  0.000942 
str0:l:25:             avg:  0.000477 | med:  0.000389 | min:  0.000147 | max:  0.002811 | p5:  0.000275 | p10:  0.000276 | p90:  0.000915 | p95:  0.000937 
str0:l:50:             avg:  0.000696 | med:  0.000493 | min:  0.000239 | max:  0.036200 | p5:  0.000378 | p10:  0.000473 | p90:  0.001070 | p95:  0.001203 
str0:l:100:            avg:  0.001002 | med:  0.000883 | min:  0.000252 | max:  0.035174 | p5:  0.000615 | p10:  0.000655 | p90:  0.001329 | p95:  0.001405 
str0:l:250:            avg:  0.001915 | med:  0.001724 | min:  0.001187 | max:  0.037856 | p5:  0.001603 | p10:  0.001622 | p90:  0.002326 | p95:  0.002479 
str0:l:500:            avg:  0.003190 | med:  0.002987 | min:  0.002316 | max:  0.032808 | p5:  0.002668 | p10:  0.002701 | p90:  0.003525 | p95:  0.003649 
str1:nt:10:            avg:  0.000622 | med:  0.000534 | min:  0.000193 | max:  0.002222 | p5:  0.000519 | p10:  0.000521 | p90:  0.000934 | p95:  0.001061 
  str1:nt:10 dt/nl:    avg:   -38.82% | med:   -37.83% | min:   -98.68% | max:  +286.38% | p5:   -63.34% | p10:   -60.28% | p90:   -16.71% | p95:    -5.65% 
  str1:nt:10  dt/l:    avg:   +42.60% | med:   +25.66% | min:   -81.32% | max:  +425.30% | p5:   -37.35% | p10:   -17.44% | p90:  +116.29% | p95:  +150.70% 
str1:nt:25:            avg:  0.000672 | med:  0.000523 | min:  0.000196 | max:  0.003211 | p5:  0.000313 | p10:  0.000502 | p90:  0.001068 | p95:  0.001229 
  str1:nt:25 dt/nl:    avg:   -35.00% | med:   -45.22% | min:   -88.64% | max:  +251.31% | p5:   -67.87% | p10:   -57.72% | p90:    +0.21% | p95:   +20.90% 
  str1:nt:25  dt/l:    avg:   +66.58% | med:   +34.38% | min:   -89.69% | max:  +673.73% | p5:   -44.84% | p10:   -38.21% | p90:  +188.83% | p95:  +273.55% 
str1:nt:50:            avg:  0.000813 | med:  0.000610 | min:  0.000246 | max:  0.031004 | p5:  0.000404 | p10:  0.000479 | p90:  0.001204 | p95:  0.001319 
  str1:nt:50 dt/nl:    avg:   -37.88% | med:   -52.43% | min:   -93.33% | max: +2132.11% | p5:   -70.14% | p10:   -68.40% | p90:    -9.74% | p95:    +4.29% 
  str1:nt:50  dt/l:    avg:   +49.63% | med:   +23.26% | min:   -98.34% | max: +7809.18% | p5:   -52.94% | p10:   -43.38% | p90:  +148.01% | p95:  +192.87% 
str1:nt:100:           avg:  0.001116 | med:  0.001131 | min:  0.000303 | max:  0.004272 | p5:  0.000587 | p10:  0.000647 | p90:  0.001530 | p95:  0.001758 
  str1:nt:100 dt/nl:   avg:   -18.51% | med:   -18.65% | min:   -84.19% | max:  +397.41% | p5:   -69.91% | p10:   -63.81% | p90:   +12.77% | p95:   +59.57% 
  str1:nt:100  dt/l:   avg:   +37.79% | med:   +22.04% | min:   -96.88% | max:  +544.11% | p5:   -52.79% | p10:   -47.02% | p90:  +124.89% | p95:  +164.47% 
str1:nt:250:           avg:  0.001961 | med:  0.001831 | min:  0.001159 | max:  0.005320 | p5:  0.001549 | p10:  0.001568 | p90:  0.002405 | p95:  0.002647 
  str1:nt:250 dt/nl:   avg:    -5.26% | med:    -6.63% | min:   -92.69% | max:   +99.62% | p5:   -27.36% | p10:   -20.78% | p90:   +14.44% | p95:   +22.81% 
  str1:nt:250  dt/l:   avg:    +7.06% | med:    +5.75% | min:   -92.03% | max:  +227.38% | p5:   -29.09% | p10:   -23.21% | p90:   +40.95% | p95:   +46.65% 
str1:nt:500:           avg:  0.003128 | med:  0.003038 | min:  0.002000 | max:  0.008480 | p5:  0.002566 | p10:  0.002619 | p90:  0.003539 | p95:  0.003775 
  str1:nt:500 dt/nl:   avg:    -7.34% | med:    -7.66% | min:   -86.97% | max:  +120.69% | p5:   -23.32% | p10:   -18.46% | p90:    +3.62% | p95:    +8.71% 
  str1:nt:500  dt/l:   avg:    +1.23% | med:    +0.20% | min:   -81.70% | max:  +180.34% | p5:   -24.29% | p10:   -20.94% | p90:   +24.80% | p95:   +28.83% 
str1:nnt:10:           avg:  0.000549 | med:  0.000529 | min:  0.000112 | max:  0.025325 | p5:  0.000307 | p10:  0.000307 | p90:  0.000894 | p95:  0.001066 
  str1:nnt:10 dt/nl:   avg:   -43.06% | med:   -56.17% | min:   -99.21% | max: +3101.64% | p5:   -77.66% | p10:   -75.63% | p90:    -4.62% | p95:   +26.80% 
  str1:nnt:10  dt/l:   avg:   +21.82% | med:    +6.19% | min:   -83.11% | max: +5830.91% | p5:   -45.56% | p10:   -29.91% | p90:   +80.23% | p95:  +121.80% 
str1:nnt:25:           avg:  0.000544 | med:  0.000501 | min:  0.000101 | max:  0.002847 | p5:  0.000286 | p10:  0.000288 | p90:  0.001020 | p95:  0.001088 
  str1:nnt:25 dt/nl:   avg:   -47.38% | med:   -55.47% | min:   -89.03% | max:  +211.49% | p5:   -77.90% | p10:   -74.13% | p90:    -2.79% | p95:    +9.54% 
  str1:nnt:25  dt/l:   avg:   +20.50% | med:    +6.18% | min:   -75.32% | max:  +553.70% | p5:   -44.53% | p10:   -26.82% | p90:   +99.23% | p95:  +156.14% 
str1:nnt:50:           avg:  0.000679 | med:  0.000591 | min:  0.000142 | max:  0.004023 | p5:  0.000402 | p10:  0.000404 | p90:  0.001135 | p95:  0.001213 
  str1:nnt:50 dt/nl:   avg:   -48.39% | med:   -57.57% | min:   -98.87% | max:  +188.18% | p5:   -77.72% | p10:   -74.81% | p90:   -18.27% | p95:    -4.97% 
  str1:nnt:50  dt/l:   avg:    +7.50% | med:    -4.44% | min:   -88.89% | max:  +318.69% | p5:   -50.06% | p10:   -35.45% | p90:   +61.43% | p95:  +115.65% 
str1:nnt:100:          avg:  0.001077 | med:  0.001123 | min:  0.000227 | max:  0.021093 | p5:  0.000586 | p10:  0.000591 | p90:  0.001424 | p95:  0.001756 
  str1:nnt:100 dt/nl:  avg:    -5.04% | med:   -45.03% | min:   -96.95% | max: +2750.21% | p5:   -76.77% | p10:   -73.81% | p90:   +68.57% | p95:   +88.08% 
  str1:nnt:100  dt/l:  avg:   +13.82% | med:    -1.13% | min:   -92.45% | max: +3048.21% | p5:   -27.81% | p10:   -18.40% | p90:   +52.36% | p95:   +85.24% 
str1:nnt:250:          avg:  0.001909 | med:  0.001717 | min:  0.001097 | max:  0.022936 | p5:  0.001542 | p10:  0.001548 | p90:  0.002326 | p95:  0.002548 
  str1:nnt:250 dt/nl:  avg:    -6.48% | med:   -11.47% | min:   -91.35% | max: +1129.81% | p5:   -40.34% | p10:   -35.82% | p90:   +21.61% | p95:   +30.48% 
  str1:nnt:250  dt/l:  avg:    +2.03% | med:    -2.50% | min:   -87.13% | max:  +847.51% | p5:   -20.50% | p10:   -14.32% | p90:   +19.36% | p95:   +34.42% 
str1:nnt:500:          avg:  0.003060 | med:  0.002917 | min:  0.002194 | max:  0.008574 | p5:  0.002554 | p10:  0.002590 | p90:  0.003494 | p95:  0.003714 
  str1:nnt:500 dt/nl:  avg:    -8.39% | med:    -9.95% | min:   -87.31% | max:  +133.16% | p5:   -32.90% | p10:   -28.83% | p90:   +13.89% | p95:   +18.91% 
  str1:nnt:500  dt/l:  avg:    -2.25% | med:    -3.57% | min:   -83.83% | max:  +102.59% | p5:   -15.40% | p10:   -11.65% | p90:    +6.70% | p95:   +12.70% 
str2:nt:10:            avg:  0.000383 | med:  0.000326 | min:  0.000109 | max:  0.001370 | p5:  0.000324 | p10:  0.000324 | p90:  0.000497 | p95:  0.000851 
  str2:nt:10 dt/nl:    avg:   -61.91% | med:   -62.67% | min:   -99.22% | max:  +245.88% | p5:   -78.02% | p10:   -75.87% | p90:   -49.43% | p95:   -29.97% 
  str2:nt:10  dt/l:    avg:   -11.80% | med:   -23.08% | min:   -89.84% | max:  +449.38% | p5:   -61.94% | p10:   -50.08% | p90:   +23.64% | p95:   +59.02% 
str2:nt:25:            avg:  0.000399 | med:  0.000302 | min:  0.000100 | max:  0.002194 | p5:  0.000296 | p10:  0.000297 | p90:  0.000835 | p95:  0.000911 
  str2:nt:25 dt/nl:    avg:   -60.64% | med:   -69.74% | min:   -91.75% | max:  +117.77% | p5:   -77.78% | p10:   -74.51% | p90:   -35.53% | p95:    -5.42% 
  str2:nt:25  dt/l:    avg:    -0.77% | med:   -22.02% | min:   -89.26% | max:  +469.87% | p5:   -68.15% | p10:   -66.81% | p90:  +114.99% | p95:  +146.39% 
str2:nt:50:            avg:  0.000609 | med:  0.000419 | min:  0.000139 | max:  0.003446 | p5:  0.000411 | p10:  0.000412 | p90:  0.001023 | p95:  0.001134 
  str2:nt:50 dt/nl:    avg:   -53.04% | med:   -66.82% | min:   -93.62% | max:   +94.81% | p5:   -76.28% | p10:   -73.82% | p90:   -24.52% | p95:    +7.75% 
  str2:nt:50  dt/l:    avg:   +10.50% | med:   -14.32% | min:   -98.86% | max:  +614.94% | p5:   -63.96% | p10:   -59.85% | p90:  +113.50% | p95:  +145.44% 
str2:nt:100:           avg:  0.000938 | med:  0.000829 | min:  0.000238 | max:  0.003802 | p5:  0.000596 | p10:  0.000598 | p90:  0.001287 | p95:  0.001382 
  str2:nt:100 dt/nl:   avg:   -31.51% | med:   -31.37% | min:   -89.34% | max:  +236.84% | p5:   -75.34% | p10:   -72.30% | p90:    -4.23% | p95:   +28.83% 
  str2:nt:100  dt/l:   avg:   +16.16% | med:    -6.26% | min:   -98.31% | max:  +474.32% | p5:   -56.11% | p10:   -53.37% | p90:   +93.49% | p95:  +109.32% 
str2:nt:250:           avg:  0.001824 | med:  0.001671 | min:  0.000928 | max:  0.017451 | p5:  0.001545 | p10:  0.001552 | p90:  0.002224 | p95:  0.002385 
  str2:nt:250 dt/nl:   avg:   -11.79% | med:   -14.25% | min:   -93.10% | max:  +621.12% | p5:   -33.97% | p10:   -27.29% | p90:    +3.47% | p95:   +16.37% 
  str2:nt:250  dt/l:   avg:    -0.57% | med:    -3.94% | min:   -89.82% | max:  +755.02% | p5:   -33.41% | p10:   -29.35% | p90:   +28.87% | p95:   +36.37% 
str2:nt:500:           avg:  0.003027 | med:  0.002826 | min:  0.001722 | max:  0.008183 | p5:  0.002557 | p10:  0.002586 | p90:  0.003398 | p95:  0.003680 
  str2:nt:500 dt/nl:   avg:   -10.20% | med:   -11.50% | min:   -87.86% | max:  +167.44% | p5:   -27.88% | p10:   -21.54% | p90:    +0.09% | p95:    +9.66% 
  str2:nt:500  dt/l:   avg:    -1.84% | med:    -4.51% | min:   -84.69% | max:  +203.30% | p5:   -26.41% | p10:   -23.93% | p90:   +20.27% | p95:   +25.26% 
str2:nnt:10:           avg:  0.000389 | med:  0.000308 | min:  0.000153 | max:  0.002430 | p5:  0.000306 | p10:  0.000306 | p90:  0.000543 | p95:  0.000835 
  str2:nnt:10 dt/nl:   avg:   -60.51% | med:   -65.40% | min:   -99.26% | max:   +88.96% | p5:   -79.03% | p10:   -77.28% | p90:   -31.63% | p95:   -20.72% 
  str2:nnt:10  dt/l:   avg:   -10.84% | med:   -27.08% | min:   -89.28% | max:  +399.77% | p5:   -62.59% | p10:   -50.40% | p90:   +26.78% | p95:   +84.42% 
str2:nnt:25:           avg:  0.000443 | med:  0.000284 | min:  0.000110 | max:  0.002365 | p5:  0.000278 | p10:  0.000279 | p90:  0.000820 | p95:  0.000972 
  str2:nnt:25 dt/nl:   avg:   -56.73% | med:   -69.13% | min:   -92.52% | max:  +132.13% | p5:   -80.01% | p10:   -77.05% | p90:   -14.02% | p95:    -4.99% 
  str2:nnt:25  dt/l:   avg:    +1.44% | med:   -14.30% | min:   -89.87% | max:  +458.27% | p5:   -62.18% | p10:   -45.35% | p90:   +60.76% | p95:  +109.87% 
str2:nnt:50:           avg:  0.000612 | med:  0.000476 | min:  0.000160 | max:  0.002698 | p5:  0.000389 | p10:  0.000390 | p90:  0.001056 | p95:  0.001137 
  str2:nnt:50 dt/nl:   avg:   -53.57% | med:   -61.54% | min:   -98.26% | max:  +103.01% | p5:   -78.54% | p10:   -75.99% | p90:   -22.56% | p95:   -18.00% 
  str2:nnt:50  dt/l:   avg:    -1.29% | med:   -10.71% | min:   -93.92% | max:  +445.05% | p5:   -56.91% | p10:   -42.63% | p90:   +33.74% | p95:   +93.93% 
str2:nnt:100:          avg:  0.000971 | med:  0.000936 | min:  0.000282 | max:  0.003784 | p5:  0.000572 | p10:  0.000580 | p90:  0.001365 | p95:  0.001455 
  str2:nnt:100 dt/nl:  avg:   -17.51% | med:   -47.18% | min:   -97.77% | max:  +421.77% | p5:   -75.86% | p10:   -72.32% | p90:   +61.45% | p95:   +72.71% 
  str2:nnt:100  dt/l:  avg:    +3.95% | med:    -2.70% | min:   -93.32% | max:  +370.18% | p5:   -40.17% | p10:   -25.67% | p90:   +32.10% | p95:   +80.21% 
str2:nnt:250:          avg:  0.001851 | med:  0.001741 | min:  0.001045 | max:  0.005913 | p5:  0.001525 | p10:  0.001534 | p90:  0.002316 | p95:  0.002441 
  str2:nnt:250 dt/nl:  avg:    -9.29% | med:   -11.64% | min:   -92.90% | max:  +218.42% | p5:   -40.06% | p10:   -35.09% | p90:   +21.00% | p95:   +26.37% 
  str2:nnt:250  dt/l:  avg:    -0.08% | med:    -2.11% | min:   -92.51% | max:  +247.41% | p5:   -27.82% | p10:   -19.69% | p90:   +16.55% | p95:   +32.43% 
str2:nnt:500:          avg:  0.003821 | med:  0.003724 | min:  0.001896 | max:  0.008581 | p5:  0.002779 | p10:  0.002978 | p90:  0.004692 | p95:  0.004942 
  str2:nnt:500 dt/nl:  avg:   +14.20% | med:    +9.40% | min:   -87.49% | max:  +132.13% | p5:   -14.97% | p10:    -9.67% | p90:   +50.53% | p95:   +57.99% 
  str2:nnt:500  dt/l:  avg:   +24.50% | med:   +26.84% | min:   -85.17% | max:  +127.80% | p5:   -19.19% | p10:   -13.58% | p90:   +60.60% | p95:   +67.09% 

Winners (draw/- is <7%):

nl
  nt:10
    avg: str2  ( -61.91% | W: str2 | W-W2:  -23.09%)
    med: str2  ( -62.67% | W: str2 | W-W2:  -24.84%)
    p5:  str2  ( -78.02% | W: str2 | W-W2:  -14.68%)
    p10: str2  ( -75.87% | W: str2 | W-W2:  -15.59%)
    p90: str2  ( -49.43% | W: str2 | W-W2:  -32.72%)
    p95: str2  ( -29.97% | W: str2 | W-W2:  -24.32%)
  nt:25
    avg: str2  ( -60.64% | W: str2 | W-W2:  -25.64%)
    med: str2  ( -69.74% | W: str2 | W-W2:  -24.52%)
    p5:  str2  ( -77.78% | W: str2 | W-W2:   -9.90%)
    p10: str2  ( -74.51% | W: str2 | W-W2:  -16.79%)
    p90: str2  ( -35.53% | W: str2 | W-W2:  -35.74%)
    p95: str2  (  -5.42% | W: str2 | W-W2:  -26.32%)
  nt:50
    avg: str2  ( -53.04% | W: str2 | W-W2:  -15.16%)
    med: str2  ( -66.82% | W: str2 | W-W2:  -14.39%)
    p5:  -     ( -76.28% | W: str2 | W-W2:   -6.14%)
    p10: -     ( -73.82% | W: str2 | W-W2:   -5.41%)
    p90: str2  ( -24.52% | W: str2 | W-W2:  -14.78%)
    p95: -     (  +4.29% | W: str1 | W-W2:   -3.46%)
  nt:100
    avg: str2  ( -31.51% | W: str2 | W-W2:  -13.01%)
    med: str2  ( -31.37% | W: str2 | W-W2:  -12.72%)
    p5:  -     ( -75.34% | W: str2 | W-W2:   -5.43%)
    p10: str2  ( -72.30% | W: str2 | W-W2:   -8.48%)
    p90: str2  (  -4.23% | W: str2 | W-W2:  -17.00%)
    p95: str2  ( +28.83% | W: str2 | W-W2:  -30.74%)
  nt:250
    avg: -     ( -11.79% | W: str2 | W-W2:   -6.53%)
    med: str2  ( -14.25% | W: str2 | W-W2:   -7.63%)
    p5:  -     ( -33.97% | W: str2 | W-W2:   -6.61%)
    p10: -     ( -27.29% | W: str2 | W-W2:   -6.51%)
    p90: str2  (  +3.47% | W: str2 | W-W2:  -10.97%)
    p95: -     ( +16.37% | W: str2 | W-W2:   -6.44%)
  nt:500
    avg: -     ( -10.20% | W: str2 | W-W2:   -2.86%)
    med: -     ( -11.50% | W: str2 | W-W2:   -3.84%)
    p5:  -     ( -27.88% | W: str2 | W-W2:   -4.56%)
    p10: -     ( -21.54% | W: str2 | W-W2:   -3.07%)
    p90: -     (  +0.09% | W: str2 | W-W2:   -3.53%)
    p95: -     (  +8.71% | W: str1 | W-W2:   -0.95%)
  nnt:10
    avg: str2  ( -60.51% | W: str2 | W-W2:  -17.45%)
    med: str2  ( -65.40% | W: str2 | W-W2:   -9.23%)
    p5:  -     ( -79.03% | W: str2 | W-W2:   -1.37%)
    p10: -     ( -77.28% | W: str2 | W-W2:   -1.64%)
    p90: str2  ( -31.63% | W: str2 | W-W2:  -27.01%)
    p95: str2  ( -20.72% | W: str2 | W-W2:  -47.52%)
  nnt:25
    avg: str2  ( -56.73% | W: str2 | W-W2:   -9.36%)
    med: str2  ( -69.13% | W: str2 | W-W2:  -13.66%)
    p5:  -     ( -80.01% | W: str2 | W-W2:   -2.11%)
    p10: -     ( -77.05% | W: str2 | W-W2:   -2.91%)
    p90: str2  ( -14.02% | W: str2 | W-W2:  -11.23%)
    p95: str2  (  -4.99% | W: str2 | W-W2:  -14.53%)
  nnt:50
    avg: -     ( -53.57% | W: str2 | W-W2:   -5.18%)
    med: -     ( -61.54% | W: str2 | W-W2:   -3.98%)
    p5:  -     ( -78.54% | W: str2 | W-W2:   -0.82%)
    p10: -     ( -75.99% | W: str2 | W-W2:   -1.17%)
    p90: -     ( -22.56% | W: str2 | W-W2:   -4.29%)
    p95: str2  ( -18.00% | W: str2 | W-W2:  -13.03%)
  nnt:100
    avg: str2  ( -17.51% | W: str2 | W-W2:  -12.48%)
    med: -     ( -47.18% | W: str2 | W-W2:   -2.16%)
    p5:  -     ( -76.77% | W: str1 | W-W2:   -0.91%)
    p10: -     ( -73.81% | W: str1 | W-W2:   -1.48%)
    p90: str2  ( +61.45% | W: str2 | W-W2:   -7.12%)
    p95: str2  ( +72.71% | W: str2 | W-W2:  -15.37%)
  nnt:250
    avg: -     (  -9.29% | W: str2 | W-W2:   -2.81%)
    med: -     ( -11.64% | W: str2 | W-W2:   -0.18%)
    p5:  -     ( -40.34% | W: str1 | W-W2:   -0.28%)
    p10: -     ( -35.82% | W: str1 | W-W2:   -0.72%)
    p90: -     ( +21.00% | W: str2 | W-W2:   -0.61%)
    p95: -     ( +26.37% | W: str2 | W-W2:   -4.12%)
  nnt:500
    avg: str1  (  -8.39% | W: str1 | W-W2:  -22.59%)
    med: str1  (  -9.95% | W: str1 | W-W2:  -19.36%)
    p5:  str1  ( -32.90% | W: str1 | W-W2:  -17.93%)
    p10: str1  ( -28.83% | W: str1 | W-W2:  -19.16%)
    p90: str1  ( +13.89% | W: str1 | W-W2:  -36.64%)
    p95: str1  ( +18.91% | W: str1 | W-W2:  -39.08%)
l
  nt:10
    avg: str2  ( -11.80% | W: str2 | W-W2:  -54.40%)
    med: str2  ( -23.08% | W: str2 | W-W2:  -48.73%)
    p5:  str2  ( -61.94% | W: str2 | W-W2:  -24.59%)
    p10: str2  ( -50.08% | W: str2 | W-W2:  -32.64%)
    p90: str2  ( +23.64% | W: str2 | W-W2:  -92.65%)
    p95: str2  ( +59.02% | W: str2 | W-W2:  -91.68%)
  nt:25
    avg: str2  (  -0.77% | W: str2 | W-W2:  -67.35%)
    med: str2  ( -22.02% | W: str2 | W-W2:  -56.40%)
    p5:  str2  ( -68.15% | W: str2 | W-W2:  -23.31%)
    p10: str2  ( -66.81% | W: str2 | W-W2:  -28.60%)
    p90: str2  (+114.99% | W: str2 | W-W2:  -73.84%)
    p95: str2  (+146.39% | W: str2 | W-W2: -127.16%)
  nt:50
    avg: str2  ( +10.50% | W: str2 | W-W2:  -39.14%)
    med: str2  ( -14.32% | W: str2 | W-W2:  -37.57%)
    p5:  str2  ( -63.96% | W: str2 | W-W2:  -11.02%)
    p10: str2  ( -59.85% | W: str2 | W-W2:  -16.46%)
    p90: str2  (+113.50% | W: str2 | W-W2:  -34.51%)
    p95: str2  (+145.44% | W: str2 | W-W2:  -47.43%)
  nt:100
    avg: str2  ( +16.16% | W: str2 | W-W2:  -21.63%)
    med: str2  (  -6.26% | W: str2 | W-W2:  -28.30%)
    p5:  -     ( -56.11% | W: str2 | W-W2:   -3.31%)
    p10: -     ( -53.37% | W: str2 | W-W2:   -6.35%)
    p90: str2  ( +93.49% | W: str2 | W-W2:  -31.39%)
    p95: str2  (+109.32% | W: str2 | W-W2:  -55.15%)
  nt:250
    avg: str2  (  -0.57% | W: str2 | W-W2:   -7.63%)
    med: str2  (  -3.94% | W: str2 | W-W2:   -9.69%)
    p5:  -     ( -33.41% | W: str2 | W-W2:   -4.32%)
    p10: -     ( -29.35% | W: str2 | W-W2:   -6.13%)
    p90: str2  ( +28.87% | W: str2 | W-W2:  -12.08%)
    p95: str2  ( +36.37% | W: str2 | W-W2:  -10.28%)
  nt:500
    avg: -     (  -1.84% | W: str2 | W-W2:   -3.07%)
    med: -     (  -4.51% | W: str2 | W-W2:   -4.71%)
    p5:  -     ( -26.41% | W: str2 | W-W2:   -2.11%)
    p10: -     ( -23.93% | W: str2 | W-W2:   -2.98%)
    p90: -     ( +20.27% | W: str2 | W-W2:   -4.53%)
    p95: -     ( +25.26% | W: str2 | W-W2:   -3.56%)
  nnt:10
    avg: str2  ( -10.84% | W: str2 | W-W2:  -32.66%)
    med: str2  ( -27.08% | W: str2 | W-W2:  -33.27%)
    p5:  str2  ( -62.59% | W: str2 | W-W2:  -17.04%)
    p10: str2  ( -50.40% | W: str2 | W-W2:  -20.50%)
    p90: str2  ( +26.78% | W: str2 | W-W2:  -53.45%)
    p95: str2  ( +84.42% | W: str2 | W-W2:  -37.38%)
  nnt:25
    avg: str2  (  +1.44% | W: str2 | W-W2:  -19.06%)
    med: str2  ( -14.30% | W: str2 | W-W2:  -20.48%)
    p5:  str2  ( -62.18% | W: str2 | W-W2:  -17.65%)
    p10: str2  ( -45.35% | W: str2 | W-W2:  -18.53%)
    p90: str2  ( +60.76% | W: str2 | W-W2:  -38.47%)
    p95: str2  (+109.87% | W: str2 | W-W2:  -46.27%)
  nnt:50
    avg: str2  (  -1.29% | W: str2 | W-W2:   -8.79%)
    med: -     ( -10.71% | W: str2 | W-W2:   -6.27%)
    p5:  -     ( -56.91% | W: str2 | W-W2:   -6.84%)
    p10: str2  ( -42.63% | W: str2 | W-W2:   -7.17%)
    p90: str2  ( +33.74% | W: str2 | W-W2:  -27.69%)
    p95: str2  ( +93.93% | W: str2 | W-W2:  -21.71%)
  nnt:100
    avg: str2  (  +3.95% | W: str2 | W-W2:   -9.87%)
    med: -     (  -2.70% | W: str2 | W-W2:   -1.58%)
    p5:  str2  ( -40.17% | W: str2 | W-W2:  -12.35%)
    p10: str2  ( -25.67% | W: str2 | W-W2:   -7.27%)
    p90: str2  ( +32.10% | W: str2 | W-W2:  -20.26%)
    p95: -     ( +80.21% | W: str2 | W-W2:   -5.02%)
  nnt:250
    avg: -     (  -0.08% | W: str2 | W-W2:   -2.11%)
    med: -     (  -2.50% | W: str1 | W-W2:   -0.39%)
    p5:  str2  ( -27.82% | W: str2 | W-W2:   -7.32%)
    p10: -     ( -19.69% | W: str2 | W-W2:   -5.36%)
    p90: -     ( +16.55% | W: str2 | W-W2:   -2.80%)
    p95: -     ( +32.43% | W: str2 | W-W2:   -1.99%)
  nnt:500
    avg: str1  (  -2.25% | W: str1 | W-W2:  -26.75%)
    med: str1  (  -3.57% | W: str1 | W-W2:  -30.40%)
    p5:  -     ( -19.19% | W: str2 | W-W2:   -3.79%)
    p10: -     ( -13.58% | W: str2 | W-W2:   -1.94%)
    p90: str1  (  +6.70% | W: str1 | W-W2:  -53.90%)
    p95: str1  ( +12.70% | W: str1 | W-W2:  -54.40%)

Results clang -Ofast (1000 runs * 10_000 iters):

str0:nl:10:            avg:  0.001087 | med:  0.001038 | min:  0.000281 | max:  0.040013 | p5:  0.000777 | p10:  0.000780 | p90:  0.001357 | p95:  0.001499 
str0:nl:25:            avg:  0.001056 | med:  0.001020 | min:  0.000185 | max:  0.003432 | p5:  0.000664 | p10:  0.000908 | p90:  0.001327 | p95:  0.001472 
str0:nl:50:            avg:  0.001385 | med:  0.001434 | min:  0.000238 | max:  0.002871 | p5:  0.000685 | p10:  0.000744 | p90:  0.001782 | p95:  0.001889 
str0:nl:100:           avg:  0.001587 | med:  0.001587 | min:  0.000249 | max:  0.004307 | p5:  0.000704 | p10:  0.000761 | p90:  0.002558 | p95:  0.002719 
str0:nl:250:           avg:  0.002184 | med:  0.001936 | min:  0.000918 | max:  0.043972 | p5:  0.001731 | p10:  0.001764 | p90:  0.002608 | p95:  0.002717 
str0:nl:500:           avg:  0.003424 | med:  0.003218 | min:  0.002138 | max:  0.042965 | p5:  0.002851 | p10:  0.002931 | p90:  0.003771 | p95:  0.003891 
str0:l:10:             avg:  0.000460 | med:  0.000427 | min:  0.000113 | max:  0.002815 | p5:  0.000312 | p10:  0.000313 | p90:  0.000588 | p95:  0.000936 
str0:l:25:             avg:  0.000476 | med:  0.000389 | min:  0.000117 | max:  0.002702 | p5:  0.000275 | p10:  0.000277 | p90:  0.000911 | p95:  0.000935 
str0:l:50:             avg:  0.000669 | med:  0.000490 | min:  0.000144 | max:  0.036373 | p5:  0.000378 | p10:  0.000445 | p90:  0.001045 | p95:  0.001151 
str0:l:100:            avg:  0.000988 | med:  0.001004 | min:  0.000233 | max:  0.003280 | p5:  0.000652 | p10:  0.000657 | p90:  0.001346 | p95:  0.001423 
str0:l:250:            avg:  0.001858 | med:  0.001736 | min:  0.001110 | max:  0.004220 | p5:  0.001611 | p10:  0.001622 | p90:  0.002273 | p95:  0.002390 
str0:l:500:            avg:  0.003111 | med:  0.002939 | min:  0.002081 | max:  0.031947 | p5:  0.002669 | p10:  0.002691 | p90:  0.003473 | p95:  0.003609 
str1:nt:10:            avg:  0.000635 | med:  0.000536 | min:  0.000202 | max:  0.002021 | p5:  0.000518 | p10:  0.000521 | p90:  0.001018 | p95:  0.001088 
  str1:nt:10 dt/nl:    avg:   -36.09% | med:   -34.22% | min:   -98.70% | max:  +310.54% | p5:   -61.54% | p10:   -58.73% | p90:   -13.67% | p95:    -3.82% 
  str1:nt:10  dt/l:    avg:   +48.77% | med:   +25.71% | min:   -80.21% | max:  +421.26% | p5:   -30.94% | p10:    -1.33% | p90:  +132.39% | p95:  +164.67% 
str1:nt:25:            avg:  0.000637 | med:  0.000519 | min:  0.000144 | max:  0.003857 | p5:  0.000290 | p10:  0.000501 | p90:  0.001046 | p95:  0.001124 
  str1:nt:25 dt/nl:    avg:   -37.03% | med:   -47.97% | min:   -89.06% | max:  +261.89% | p5:   -68.27% | p10:   -60.44% | p90:    -4.38% | p95:   +17.74% 
  str1:nt:25  dt/l:    avg:   +56.91% | med:   +33.25% | min:   -80.16% | max:  +896.64% | p5:   -45.48% | p10:   -36.97% | p90:  +172.61% | p95:  +226.18% 
str1:nt:50:            avg:  0.000777 | med:  0.000611 | min:  0.000252 | max:  0.002847 | p5:  0.000404 | p10:  0.000459 | p90:  0.001194 | p95:  0.001286 
  str1:nt:50 dt/nl:    avg:   -39.20% | med:   -52.93% | min:   -83.67% | max:  +345.54% | p5:   -69.90% | p10:   -66.03% | p90:   -10.75% | p95:   +15.25% 
  str1:nt:50  dt/l:    avg:   +46.75% | med:   +24.84% | min:   -98.34% | max:  +651.39% | p5:   -51.62% | p10:   -43.23% | p90:  +156.37% | p95:  +192.33% 
str1:nt:100:           avg:  0.001134 | med:  0.001113 | min:  0.000307 | max:  0.028465 | p5:  0.000586 | p10:  0.000640 | p90:  0.001445 | p95:  0.001568 
  str1:nt:100 dt/nl:   avg:   -16.33% | med:   -19.54% | min:   -85.21% | max: +3341.96% | p5:   -68.40% | p10:   -62.68% | p90:   +10.09% | p95:   +29.96% 
  str1:nt:100  dt/l:   avg:   +38.42% | med:   +11.78% | min:   -80.18% | max: +3317.48% | p5:   -52.43% | p10:   -47.67% | p90:  +114.09% | p95:  +138.30% 
str1:nt:250:           avg:  0.002019 | med:  0.001832 | min:  0.001151 | max:  0.029715 | p5:  0.001548 | p10:  0.001588 | p90:  0.002394 | p95:  0.002480 
  str1:nt:250 dt/nl:   avg:    -1.52% | med:    -6.05% | min:   -93.74% | max: +1454.13% | p5:   -24.29% | p10:   -19.36% | p90:   +10.85% | p95:   +22.68% 
  str1:nt:250  dt/l:   avg:   +11.41% | med:    +4.93% | min:   -55.19% | max: +1706.38% | p5:   -27.33% | p10:   -21.63% | p90:   +39.44% | p95:   +48.64% 
str1:nt:500:           avg:  0.003169 | med:  0.003012 | min:  0.001929 | max:  0.030047 | p5:  0.002567 | p10:  0.002619 | p90:  0.003577 | p95:  0.003845 
  str1:nt:500 dt/nl:   avg:    -4.98% | med:    -7.08% | min:   -87.87% | max:  +814.95% | p5:   -22.35% | p10:   -17.53% | p90:    +4.34% | p95:   +11.04% 
  str1:nt:500  dt/l:   avg:    +4.64% | med:    +1.50% | min:   -80.33% | max: +1020.74% | p5:   -24.32% | p10:   -21.16% | p90:   +27.90% | p95:   +34.08% 
str1:nnt:10:           avg:  0.000540 | med:  0.000532 | min:  0.000106 | max:  0.002664 | p5:  0.000307 | p10:  0.000308 | p90:  0.000939 | p95:  0.001046 
  str1:nnt:10 dt/nl:   avg:   -42.99% | med:   -54.76% | min:   -99.23% | max:  +294.06% | p5:   -77.43% | p10:   -75.36% | p90:    +3.81% | p95:   +24.26% 
  str1:nnt:10  dt/l:   avg:   +22.66% | med:   +22.23% | min:   -88.75% | max:  +513.82% | p5:   -44.35% | p10:   -29.26% | p90:  +101.41% | p95:  +135.13% 
str1:nnt:25:           avg:  0.000545 | med:  0.000505 | min:  0.000106 | max:  0.003908 | p5:  0.000285 | p10:  0.000288 | p90:  0.000979 | p95:  0.001078 
  str1:nnt:25 dt/nl:   avg:   -45.89% | med:   -52.88% | min:   -91.19% | max:  +284.65% | p5:   -78.71% | p10:   -74.98% | p90:    -2.05% | p95:   +15.21% 
  str1:nnt:25  dt/l:   avg:   +21.31% | med:    +6.57% | min:   -87.54% | max:  +544.53% | p5:   -46.10% | p10:   -28.39% | p90:  +109.62% | p95:  +152.32% 
str1:nnt:50:           avg:  0.000679 | med:  0.000596 | min:  0.000148 | max:  0.004134 | p5:  0.000402 | p10:  0.000404 | p90:  0.001130 | p95:  0.001239 
  str1:nnt:50 dt/nl:   avg:   -47.70% | med:   -55.95% | min:   -90.44% | max:  +186.09% | p5:   -77.45% | p10:   -74.78% | p90:   -16.35% | p95:    -3.62% 
  str1:nnt:50  dt/l:   avg:   +11.86% | med:    +2.63% | min:   -94.07% | max:  +640.86% | p5:   -40.95% | p10:   -24.35% | p90:   +57.51% | p95:  +118.75% 
str1:nnt:100:          avg:  0.001079 | med:  0.001164 | min:  0.000209 | max:  0.002674 | p5:  0.000626 | p10:  0.000629 | p90:  0.001522 | p95:  0.001810 
  str1:nnt:100 dt/nl:  avg:    -7.36% | med:   -39.55% | min:   -91.37% | max:  +383.94% | p5:   -74.68% | p10:   -71.60% | p90:   +82.47% | p95:   +98.44% 
  str1:nnt:100  dt/l:  avg:   +13.00% | med:    +3.25% | min:   -71.17% | max:  +301.99% | p5:   -25.80% | p10:   -16.34% | p90:   +50.10% | p95:   +87.52% 
str1:nnt:250:          avg:  0.001864 | med:  0.001710 | min:  0.000897 | max:  0.023653 | p5:  0.001539 | p10:  0.001547 | p90:  0.002327 | p95:  0.002485 
  str1:nnt:250 dt/nl:  avg:    -7.63% | med:   -12.06% | min:   -93.74% | max: +1163.51% | p5:   -41.18% | p10:   -36.00% | p90:   +21.47% | p95:   +28.89% 
  str1:nnt:250  dt/l:  avg:    +1.55% | med:    -2.59% | min:   -55.43% | max: +1368.22% | p5:   -22.78% | p10:   -15.44% | p90:   +21.49% | p95:   +35.17% 
str1:nnt:500:          avg:  0.003013 | med:  0.002851 | min:  0.001676 | max:  0.008094 | p5:  0.002547 | p10:  0.002578 | p90:  0.003441 | p95:  0.003550 
  str1:nnt:500 dt/nl:  avg:    -8.58% | med:   -12.17% | min:   -87.10% | max:  +156.30% | p5:   -31.36% | p10:   -28.76% | p90:   +13.66% | p95:   +17.67% 
  str1:nnt:500  dt/l:  avg:    -1.96% | med:    -2.81% | min:   -77.19% | max:  +151.92% | p5:   -18.62% | p10:   -12.46% | p90:    +7.67% | p95:   +14.16% 
str2:nt:10:            avg:  0.000394 | med:  0.000326 | min:  0.000117 | max:  0.002226 | p5:  0.000324 | p10:  0.000324 | p90:  0.000526 | p95:  0.000856 
  str2:nt:10 dt/nl:    avg:   -59.71% | med:   -61.48% | min:   -99.19% | max:  +222.18% | p5:   -77.41% | p10:   -75.13% | p90:   -42.98% | p95:   -26.12% 
  str2:nt:10  dt/l:    avg:    -6.59% | med:   -23.17% | min:   -90.19% | max:  +704.42% | p5:   -57.67% | p10:   -41.39% | p90:   +30.00% | p95:  +102.55% 
str2:nt:25:            avg:  0.000393 | med:  0.000301 | min:  0.000113 | max:  0.002104 | p5:  0.000295 | p10:  0.000296 | p90:  0.000833 | p95:  0.000894 
  str2:nt:25 dt/nl:    avg:   -59.92% | med:   -70.04% | min:   -91.31% | max:  +361.08% | p5:   -77.99% | p10:   -74.94% | p90:   -32.73% | p95:    +1.32% 
  str2:nt:25  dt/l:    avg:    -3.35% | med:   -22.31% | min:   -88.16% | max:  +472.10% | p5:   -67.91% | p10:   -64.34% | p90:  +113.92% | p95:  +134.96% 
str2:nt:50:            avg:  0.000602 | med:  0.000420 | min:  0.000141 | max:  0.002519 | p5:  0.000410 | p10:  0.000411 | p90:  0.001013 | p95:  0.001114 
  str2:nt:50 dt/nl:    avg:   -51.68% | med:   -66.54% | min:   -93.64% | max:  +294.21% | p5:   -76.55% | p10:   -74.22% | p90:   -26.73% | p95:   +26.08% 
  str2:nt:50  dt/l:    avg:   +13.97% | med:   -13.81% | min:   -98.87% | max:  +677.42% | p5:   -63.52% | p10:   -59.86% | p90:  +113.66% | p95:  +145.02% 
str2:nt:100:           avg:  0.000911 | med:  0.000783 | min:  0.000256 | max:  0.003022 | p5:  0.000595 | p10:  0.000598 | p90:  0.001255 | p95:  0.001303 
  str2:nt:100 dt/nl:   avg:   -32.65% | med:   -31.71% | min:   -86.07% | max:  +198.16% | p5:   -75.37% | p10:   -72.81% | p90:    -4.38% | p95:   +19.01% 
  str2:nt:100  dt/l:   avg:   +12.12% | med:   -10.74% | min:   -81.83% | max:  +428.76% | p5:   -56.90% | p10:   -53.80% | p90:   +88.06% | p95:  +105.27% 
str2:nt:250:           avg:  0.001780 | med:  0.001645 | min:  0.000979 | max:  0.005569 | p5:  0.001542 | p10:  0.001548 | p90:  0.002211 | p95:  0.002323 
  str2:nt:250 dt/nl:   avg:   -12.98% | med:   -14.71% | min:   -93.61% | max:  +162.20% | p5:   -34.74% | p10:   -26.37% | p90:    -0.28% | p95:   +13.35% 
  str2:nt:250  dt/l:   avg:    -1.90% | med:    -4.70% | min:   -62.27% | max:  +196.59% | p5:   -32.22% | p10:   -28.73% | p90:   +29.04% | p95:   +36.89% 
str2:nt:500:           avg:  0.003008 | med:  0.002808 | min:  0.001607 | max:  0.019060 | p5:  0.002554 | p10:  0.002578 | p90:  0.003366 | p95:  0.003465 
  str2:nt:500 dt/nl:   avg:    -9.77% | med:   -11.46% | min:   -88.29% | max:  +467.43% | p5:   -26.94% | p10:   -20.94% | p90:    -1.08% | p95:    +6.83% 
  str2:nt:500  dt/l:   avg:    -0.73% | med:    -3.29% | min:   -83.94% | max:  +559.52% | p5:   -26.35% | p10:   -23.97% | p90:   +20.14% | p95:   +24.34% 
str2:nnt:10:           avg:  0.000377 | med:  0.000308 | min:  0.000106 | max:  0.001224 | p5:  0.000306 | p10:  0.000306 | p90:  0.000543 | p95:  0.000719 
  str2:nnt:10 dt/nl:   avg:   -60.82% | med:   -63.88% | min:   -99.24% | max:   +78.98% | p5:   -78.75% | p10:   -76.94% | p90:   -32.36% | p95:   -25.67% 
  str2:nnt:10  dt/l:   avg:   -11.67% | med:   -27.19% | min:   -89.09% | max:  +235.46% | p5:   -60.64% | p10:   -44.40% | p90:   +28.40% | p95:   +76.60% 
str2:nnt:25:           avg:  0.000424 | med:  0.000282 | min:  0.000097 | max:  0.002772 | p5:  0.000278 | p10:  0.000278 | p90:  0.000812 | p95:  0.000903 
  str2:nnt:25 dt/nl:   avg:   -57.87% | med:   -69.39% | min:   -92.45% | max:  +176.10% | p5:   -79.85% | p10:   -77.15% | p90:   -18.09% | p95:    -7.09% 
  str2:nnt:25  dt/l:   avg:    -3.69% | med:   -25.27% | min:   -88.95% | max:  +264.73% | p5:   -62.33% | p10:   -48.52% | p90:   +41.75% | p95:  +108.53% 
str2:nnt:50:           avg:  0.000594 | med:  0.000463 | min:  0.000140 | max:  0.002414 | p5:  0.000388 | p10:  0.000389 | p90:  0.000998 | p95:  0.001127 
  str2:nnt:50 dt/nl:   avg:   -54.22% | med:   -61.62% | min:   -93.10% | max:   +78.15% | p5:   -78.21% | p10:   -75.99% | p90:   -23.89% | p95:   -20.50% 
  str2:nnt:50  dt/l:   avg:    -0.72% | med:    -9.22% | min:   -93.40% | max:  +382.80% | p5:   -59.61% | p10:   -36.57% | p90:   +25.91% | p95:   +89.29% 
str2:nnt:100:          avg:  0.000969 | med:  0.000941 | min:  0.000254 | max:  0.003084 | p5:  0.000572 | p10:  0.000577 | p90:  0.001348 | p95:  0.001429 
  str2:nnt:100 dt/nl:  avg:   -17.83% | med:   -46.83% | min:   -87.46% | max:  +366.27% | p5:   -75.74% | p10:   -72.40% | p90:   +60.80% | p95:   +73.15% 
  str2:nnt:100  dt/l:  avg:    +2.33% | med:    -2.95% | min:   -72.91% | max:  +262.54% | p5:   -47.33% | p10:   -30.18% | p90:   +31.52% | p95:   +69.32% 
str2:nnt:250:          avg:  0.001856 | med:  0.001745 | min:  0.001069 | max:  0.009903 | p5:  0.001525 | p10:  0.001534 | p90:  0.002318 | p95:  0.002452 
  str2:nnt:250 dt/nl:  avg:    -8.20% | med:   -11.17% | min:   -93.79% | max:  +435.59% | p5:   -39.78% | p10:   -34.88% | p90:   +20.77% | p95:   +27.73% 
  str2:nnt:250  dt/l:  avg:    +1.31% | med:    -0.73% | min:   -57.94% | max:  +353.64% | p5:   -28.78% | p10:   -19.82% | p90:   +20.19% | p95:   +35.36% 
str2:nnt:500:          avg:  0.003833 | med:  0.003713 | min:  0.002295 | max:  0.007304 | p5:  0.002811 | p10:  0.002928 | p90:  0.004737 | p95:  0.005030 
  str2:nnt:500 dt/nl:  avg:   +15.69% | med:   +10.41% | min:   -86.41% | max:  +128.87% | p5:   -13.99% | p10:    -8.70% | p90:   +52.23% | p95:   +61.15% 
  str2:nnt:500  dt/l:  avg:   +27.01% | med:   +30.34% | min:   -80.72% | max:  +167.70% | p5:   -18.95% | p10:   -14.19% | p90:   +63.37% | p95:   +72.02% 

Winners (draw/- is <7%):

nl
  nt:10
    avg: str2  ( -59.71% | W: str2 | W-W2:  -23.62%)
    med: str2  ( -61.48% | W: str2 | W-W2:  -27.25%)
    p5:  str2  ( -77.41% | W: str2 | W-W2:  -15.86%)
    p10: str2  ( -75.13% | W: str2 | W-W2:  -16.41%)
    p90: str2  ( -42.98% | W: str2 | W-W2:  -29.31%)
    p95: str2  ( -26.12% | W: str2 | W-W2:  -22.30%)
  nt:25
    avg: str2  ( -59.92% | W: str2 | W-W2:  -22.89%)
    med: str2  ( -70.04% | W: str2 | W-W2:  -22.06%)
    p5:  str2  ( -77.99% | W: str2 | W-W2:   -9.72%)
    p10: str2  ( -74.94% | W: str2 | W-W2:  -14.50%)
    p90: str2  ( -32.73% | W: str2 | W-W2:  -28.35%)
    p95: str2  (  +1.32% | W: str2 | W-W2:  -16.42%)
  nt:50
    avg: str2  ( -51.68% | W: str2 | W-W2:  -12.47%)
    med: str2  ( -66.54% | W: str2 | W-W2:  -13.61%)
    p5:  -     ( -76.55% | W: str2 | W-W2:   -6.65%)
    p10: str2  ( -74.22% | W: str2 | W-W2:   -8.19%)
    p90: str2  ( -26.73% | W: str2 | W-W2:  -15.99%)
    p95: str1  ( +15.25% | W: str1 | W-W2:  -10.83%)
  nt:100
    avg: str2  ( -32.65% | W: str2 | W-W2:  -16.32%)
    med: str2  ( -31.71% | W: str2 | W-W2:  -12.17%)
    p5:  -     ( -75.37% | W: str2 | W-W2:   -6.96%)
    p10: str2  ( -72.81% | W: str2 | W-W2:  -10.13%)
    p90: str2  (  -4.38% | W: str2 | W-W2:  -14.47%)
    p95: str2  ( +19.01% | W: str2 | W-W2:  -10.95%)
  nt:250
    avg: str2  ( -12.98% | W: str2 | W-W2:  -11.46%)
    med: str2  ( -14.71% | W: str2 | W-W2:   -8.66%)
    p5:  str2  ( -34.74% | W: str2 | W-W2:  -10.45%)
    p10: str2  ( -26.37% | W: str2 | W-W2:   -7.01%)
    p90: str2  (  -0.28% | W: str2 | W-W2:  -11.13%)
    p95: str2  ( +13.35% | W: str2 | W-W2:   -9.33%)
  nt:500
    avg: -     (  -9.77% | W: str2 | W-W2:   -4.79%)
    med: -     ( -11.46% | W: str2 | W-W2:   -4.38%)
    p5:  -     ( -26.94% | W: str2 | W-W2:   -4.58%)
    p10: -     ( -20.94% | W: str2 | W-W2:   -3.41%)
    p90: -     (  -1.08% | W: str2 | W-W2:   -5.42%)
    p95: -     (  +6.83% | W: str2 | W-W2:   -4.21%)
  nnt:10
    avg: str2  ( -60.82% | W: str2 | W-W2:  -17.83%)
    med: str2  ( -63.88% | W: str2 | W-W2:   -9.12%)
    p5:  -     ( -78.75% | W: str2 | W-W2:   -1.33%)
    p10: -     ( -76.94% | W: str2 | W-W2:   -1.58%)
    p90: str2  ( -32.36% | W: str2 | W-W2:  -36.18%)
    p95: str2  ( -25.67% | W: str2 | W-W2:  -49.93%)
  nnt:25
    avg: str2  ( -57.87% | W: str2 | W-W2:  -11.98%)
    med: str2  ( -69.39% | W: str2 | W-W2:  -16.51%)
    p5:  -     ( -79.85% | W: str2 | W-W2:   -1.14%)
    p10: -     ( -77.15% | W: str2 | W-W2:   -2.17%)
    p90: str2  ( -18.09% | W: str2 | W-W2:  -16.04%)
    p95: str2  (  -7.09% | W: str2 | W-W2:  -22.31%)
  nnt:50
    avg: -     ( -54.22% | W: str2 | W-W2:   -6.52%)
    med: -     ( -61.62% | W: str2 | W-W2:   -5.68%)
    p5:  -     ( -78.21% | W: str2 | W-W2:   -0.76%)
    p10: -     ( -75.99% | W: str2 | W-W2:   -1.20%)
    p90: str2  ( -23.89% | W: str2 | W-W2:   -7.54%)
    p95: str2  ( -20.50% | W: str2 | W-W2:  -16.88%)
  nnt:100
    avg: str2  ( -17.83% | W: str2 | W-W2:  -10.47%)
    med: str2  ( -46.83% | W: str2 | W-W2:   -7.28%)
    p5:  -     ( -75.74% | W: str2 | W-W2:   -1.07%)
    p10: -     ( -72.40% | W: str2 | W-W2:   -0.81%)
    p90: str2  ( +60.80% | W: str2 | W-W2:  -21.68%)
    p95: str2  ( +73.15% | W: str2 | W-W2:  -25.29%)
  nnt:250
    avg: -     (  -8.20% | W: str2 | W-W2:   -0.57%)
    med: -     ( -12.06% | W: str1 | W-W2:   -0.89%)
    p5:  -     ( -41.18% | W: str1 | W-W2:   -1.40%)
    p10: -     ( -36.00% | W: str1 | W-W2:   -1.12%)
    p90: -     ( +20.77% | W: str2 | W-W2:   -0.70%)
    p95: -     ( +27.73% | W: str2 | W-W2:   -1.16%)
  nnt:500
    avg: str1  (  -8.58% | W: str1 | W-W2:  -24.27%)
    med: str1  ( -12.17% | W: str1 | W-W2:  -22.58%)
    p5:  str1  ( -31.36% | W: str1 | W-W2:  -17.37%)
    p10: str1  ( -28.76% | W: str1 | W-W2:  -20.06%)
    p90: str1  ( +13.66% | W: str1 | W-W2:  -38.57%)
    p95: str1  ( +17.67% | W: str1 | W-W2:  -43.47%)
l
  nt:10
    avg: str2  (  -6.59% | W: str2 | W-W2:  -55.36%)
    med: str2  ( -23.17% | W: str2 | W-W2:  -48.88%)
    p5:  str2  ( -57.67% | W: str2 | W-W2:  -26.73%)
    p10: str2  ( -41.39% | W: str2 | W-W2:  -40.06%)
    p90: str2  ( +30.00% | W: str2 | W-W2: -102.39%)
    p95: str2  (+102.55% | W: str2 | W-W2:  -62.11%)
  nt:25
    avg: str2  (  -3.35% | W: str2 | W-W2:  -60.26%)
    med: str2  ( -22.31% | W: str2 | W-W2:  -55.55%)
    p5:  str2  ( -67.91% | W: str2 | W-W2:  -22.43%)
    p10: str2  ( -64.34% | W: str2 | W-W2:  -27.36%)
    p90: str2  (+113.92% | W: str2 | W-W2:  -58.69%)
    p95: str2  (+134.96% | W: str2 | W-W2:  -91.22%)
  nt:50
    avg: str2  ( +13.97% | W: str2 | W-W2:  -32.77%)
    med: str2  ( -13.81% | W: str2 | W-W2:  -38.65%)
    p5:  str2  ( -63.52% | W: str2 | W-W2:  -11.91%)
    p10: str2  ( -59.86% | W: str2 | W-W2:  -16.63%)
    p90: str2  (+113.66% | W: str2 | W-W2:  -42.72%)
    p95: str2  (+145.02% | W: str2 | W-W2:  -47.31%)
  nt:100
    avg: str2  ( +12.12% | W: str2 | W-W2:  -26.30%)
    med: str2  ( -10.74% | W: str2 | W-W2:  -22.51%)
    p5:  -     ( -56.90% | W: str2 | W-W2:   -4.47%)
    p10: -     ( -53.80% | W: str2 | W-W2:   -6.14%)
    p90: str2  ( +88.06% | W: str2 | W-W2:  -26.04%)
    p95: str2  (+105.27% | W: str2 | W-W2:  -33.03%)
  nt:250
    avg: str2  (  -1.90% | W: str2 | W-W2:  -13.32%)
    med: str2  (  -4.70% | W: str2 | W-W2:   -9.63%)
    p5:  -     ( -32.22% | W: str2 | W-W2:   -4.89%)
    p10: str2  ( -28.73% | W: str2 | W-W2:   -7.10%)
    p90: str2  ( +29.04% | W: str2 | W-W2:  -10.40%)
    p95: str2  ( +36.89% | W: str2 | W-W2:  -11.75%)
  nt:500
    avg: -     (  -0.73% | W: str2 | W-W2:   -5.37%)
    med: -     (  -3.29% | W: str2 | W-W2:   -4.78%)
    p5:  -     ( -26.35% | W: str2 | W-W2:   -2.03%)
    p10: -     ( -23.97% | W: str2 | W-W2:   -2.81%)
    p90: str2  ( +20.14% | W: str2 | W-W2:   -7.76%)
    p95: str2  ( +24.34% | W: str2 | W-W2:   -9.74%)
  nnt:10
    avg: str2  ( -11.67% | W: str2 | W-W2:  -34.34%)
    med: str2  ( -27.19% | W: str2 | W-W2:  -49.42%)
    p5:  str2  ( -60.64% | W: str2 | W-W2:  -16.29%)
    p10: str2  ( -44.40% | W: str2 | W-W2:  -15.14%)
    p90: str2  ( +28.40% | W: str2 | W-W2:  -73.00%)
    p95: str2  ( +76.60% | W: str2 | W-W2:  -58.53%)
  nnt:25
    avg: str2  (  -3.69% | W: str2 | W-W2:  -25.00%)
    med: str2  ( -25.27% | W: str2 | W-W2:  -31.84%)
    p5:  str2  ( -62.33% | W: str2 | W-W2:  -16.24%)
    p10: str2  ( -48.52% | W: str2 | W-W2:  -20.13%)
    p90: str2  ( +41.75% | W: str2 | W-W2:  -67.87%)
    p95: str2  (+108.53% | W: str2 | W-W2:  -43.79%)
  nnt:50
    avg: str2  (  -0.72% | W: str2 | W-W2:  -12.59%)
    med: str2  (  -9.22% | W: str2 | W-W2:  -11.86%)
    p5:  str2  ( -59.61% | W: str2 | W-W2:  -18.66%)
    p10: str2  ( -36.57% | W: str2 | W-W2:  -12.22%)
    p90: str2  ( +25.91% | W: str2 | W-W2:  -31.59%)
    p95: str2  ( +89.29% | W: str2 | W-W2:  -29.46%)
  nnt:100
    avg: str2  (  +2.33% | W: str2 | W-W2:  -10.67%)
    med: -     (  -2.95% | W: str2 | W-W2:   -6.20%)
    p5:  str2  ( -47.33% | W: str2 | W-W2:  -21.53%)
    p10: str2  ( -30.18% | W: str2 | W-W2:  -13.84%)
    p90: str2  ( +31.52% | W: str2 | W-W2:  -18.58%)
    p95: str2  ( +69.32% | W: str2 | W-W2:  -18.20%)
  nnt:250
    avg: -     (  +1.31% | W: str2 | W-W2:   -0.23%)
    med: -     (  -2.59% | W: str1 | W-W2:   -1.86%)
    p5:  -     ( -28.78% | W: str2 | W-W2:   -6.00%)
    p10: -     ( -19.82% | W: str2 | W-W2:   -4.38%)
    p90: -     ( +20.19% | W: str2 | W-W2:   -1.30%)
    p95: -     ( +35.17% | W: str1 | W-W2:   -0.19%)
  nnt:500
    avg: str1  (  -1.96% | W: str1 | W-W2:  -28.97%)
    med: str1  (  -2.81% | W: str1 | W-W2:  -33.15%)
    p5:  -     ( -18.95% | W: str2 | W-W2:   -0.32%)
    p10: -     ( -14.19% | W: str2 | W-W2:   -1.73%)
    p90: str1  (  +7.67% | W: str1 | W-W2:  -55.70%)
    p95: str1  ( +14.16% | W: str1 | W-W2:  -57.86%)

Results gcc -O3 (1000 runs * 10_000 iters):

str0:nl:10:            avg:  0.000791 | med:  0.000687 | min:  0.000317 | max:  0.003398 | p5:  0.000676 | p10:  0.000677 | p90:  0.000980 | p95:  0.001185 
str0:nl:25:            avg:  0.001111 | med:  0.000916 | min:  0.000379 | max:  0.029799 | p5:  0.000709 | p10:  0.000891 | p90:  0.001396 | p95:  0.001548 
str0:nl:50:            avg:  0.001387 | med:  0.001325 | min:  0.000582 | max:  0.027479 | p5:  0.000623 | p10:  0.000623 | p90:  0.001770 | p95:  0.001912 
str0:nl:100:           avg:  0.001712 | med:  0.001514 | min:  0.000257 | max:  0.082501 | p5:  0.000744 | p10:  0.000745 | p90:  0.002545 | p95:  0.002668 
str0:nl:250:           avg:  0.002203 | med:  0.001933 | min:  0.000880 | max:  0.038044 | p5:  0.001807 | p10:  0.001812 | p90:  0.002639 | p95:  0.002909 
str0:nl:500:           avg:  0.003520 | med:  0.003276 | min:  0.001799 | max:  0.054758 | p5:  0.002899 | p10:  0.002930 | p90:  0.003823 | p95:  0.004073 
str0:l:10:             avg:  0.000447 | med:  0.000386 | min:  0.000129 | max:  0.002549 | p5:  0.000384 | p10:  0.000384 | p90:  0.000550 | p95:  0.000913 
str0:l:25:             avg:  0.000470 | med:  0.000357 | min:  0.000121 | max:  0.003112 | p5:  0.000354 | p10:  0.000354 | p90:  0.000894 | p95:  0.000971 
str0:l:50:             avg:  0.000662 | med:  0.000454 | min:  0.000179 | max:  0.027209 | p5:  0.000449 | p10:  0.000450 | p90:  0.001037 | p95:  0.001129 
str0:l:100:            avg:  0.000964 | med:  0.001142 | min:  0.000211 | max:  0.003392 | p5:  0.000618 | p10:  0.000620 | p90:  0.001298 | p95:  0.001373 
str0:l:250:            avg:  0.001797 | med:  0.001637 | min:  0.000806 | max:  0.005474 | p5:  0.001552 | p10:  0.001555 | p90:  0.002214 | p95:  0.002331 
str0:l:500:            avg:  0.003059 | med:  0.002763 | min:  0.001775 | max:  0.034501 | p5:  0.002570 | p10:  0.002583 | p90:  0.003373 | p95:  0.003787 
str1:nt:10:            avg:  0.000473 | med:  0.000419 | min:  0.000142 | max:  0.001714 | p5:  0.000416 | p10:  0.000417 | p90:  0.000576 | p95:  0.000951 
  str1:nt:10 dt/nl:    avg:   -38.09% | med:   -38.77% | min:   -86.02% | max:   +85.76% | p5:   -62.82% | p10:   -53.79% | p90:   -21.19% | p95:   -11.34% 
  str1:nt:10  dt/l:    avg:   +13.29% | med:    +8.55% | min:   -83.64% | max:  +566.03% | p5:   -53.98% | p10:   -23.20% | p90:   +43.26% | p95:  +117.37% 
str1:nt:25:            avg:  0.000490 | med:  0.000381 | min:  0.000129 | max:  0.002359 | p5:  0.000377 | p10:  0.000378 | p90:  0.000918 | p95:  0.000974 
  str1:nt:25 dt/nl:    avg:   -51.63% | med:   -57.72% | min:   -98.68% | max:  +152.64% | p5:   -74.01% | p10:   -69.85% | p90:   -26.55% | p95:   -14.94% 
  str1:nt:25  dt/l:    avg:   +21.27% | med:    +6.74% | min:   -85.87% | max:  +658.68% | p5:   -60.13% | p10:   -57.19% | p90:  +156.74% | p95:  +162.80% 
str1:nt:50:            avg:  0.000673 | med:  0.000491 | min:  0.000166 | max:  0.002649 | p5:  0.000483 | p10:  0.000484 | p90:  0.001066 | p95:  0.001147 
  str1:nt:50 dt/nl:    avg:   -44.27% | med:   -57.98% | min:   -94.06% | max:  +298.56% | p5:   -70.91% | p10:   -67.70% | p90:   -19.41% | p95:    -1.93% 
  str1:nt:50  dt/l:    avg:   +27.24% | med:    +7.78% | min:   -98.21% | max:  +488.67% | p5:   -56.31% | p10:   -51.92% | p90:  +129.49% | p95:  +149.12% 
str1:nt:100:           avg:  0.000970 | med:  0.000793 | min:  0.000230 | max:  0.004922 | p5:  0.000656 | p10:  0.000658 | p90:  0.001317 | p95:  0.001389 
  str1:nt:100 dt/nl:   avg:   -27.78% | med:   -25.23% | min:   -97.75% | max:  +156.81% | p5:   -70.79% | p10:   -66.75% | p90:    -4.02% | p95:    +5.63% 
  str1:nt:100  dt/l:   avg:   +23.31% | med:   -24.05% | min:   -82.77% | max:  +533.91% | p5:   -51.22% | p10:   -47.70% | p90:  +107.07% | p95:  +116.05% 
str1:nt:250:           avg:  0.001920 | med:  0.001700 | min:  0.000856 | max:  0.029554 | p5:  0.001595 | p10:  0.001600 | p90:  0.002264 | p95:  0.002419 
  str1:nt:250 dt/nl:   avg:    -8.38% | med:   -12.01% | min:   -88.40% | max: +1194.59% | p5:   -31.09% | p10:   -22.74% | p90:    -0.22% | p95:    +8.91% 
  str1:nt:250  dt/l:   avg:    +9.61% | med:    +3.07% | min:   -55.33% | max: +1750.59% | p5:   -27.00% | p10:   -24.33% | p90:   +38.14% | p95:   +45.68% 
str1:nt:500:           avg:  0.003136 | med:  0.002950 | min:  0.002154 | max:  0.014138 | p5:  0.002624 | p10:  0.002662 | p90:  0.003471 | p95:  0.003799 
  str1:nt:500 dt/nl:   avg:    -8.48% | med:    -9.09% | min:   -85.77% | max:  +148.65% | p5:   -23.09% | p10:   -18.72% | p90:    -0.20% | p95:    +4.64% 
  str1:nt:500  dt/l:   avg:    +6.22% | med:    +5.02% | min:   -85.03% | max:  +240.73% | p5:   -21.36% | p10:   -17.84% | p90:   +29.92% | p95:   +33.76% 
str1:nnt:10:           avg:  0.000475 | med:  0.000407 | min:  0.000153 | max:  0.002161 | p5:  0.000404 | p10:  0.000405 | p90:  0.000599 | p95:  0.000935 
  str1:nnt:10 dt/nl:   avg:   -37.13% | med:   -40.53% | min:   -86.47% | max:  +215.94% | p5:   -64.65% | p10:   -55.73% | p90:   -16.27% | p95:   +17.05% 
  str1:nnt:10  dt/l:   avg:   +11.32% | med:    +5.44% | min:   -76.56% | max:  +385.71% | p5:   -31.77% | p10:   -18.60% | p90:   +45.34% | p95:   +65.19% 
str1:nnt:25:           avg:  0.000496 | med:  0.000383 | min:  0.000143 | max:  0.003361 | p5:  0.000378 | p10:  0.000378 | p90:  0.000918 | p95:  0.001005 
  str1:nnt:25 dt/nl:   avg:   -50.17% | med:   -57.67% | min:   -98.73% | max:  +104.09% | p5:   -74.70% | p10:   -71.94% | p90:    -0.65% | p95:    +5.75% 
  str1:nnt:25  dt/l:   avg:   +12.16% | med:    +6.76% | min:   -84.47% | max:  +841.46% | p5:   -28.52% | p10:   -17.10% | p90:   +42.13% | p95:   +63.66% 
str1:nnt:50:           avg:  0.000669 | med:  0.000492 | min:  0.000183 | max:  0.004225 | p5:  0.000484 | p10:  0.000485 | p90:  0.001085 | p95:  0.001215 
  str1:nnt:50 dt/nl:   avg:   -45.12% | med:   -57.80% | min:   -98.22% | max:  +132.99% | p5:   -73.82% | p10:   -70.82% | p90:   -15.24% | p95:    -4.12% 
  str1:nnt:50  dt/l:   avg:   +10.71% | med:    +7.78% | min:   -90.96% | max:  +402.84% | p5:   -43.26% | p10:   -19.93% | p90:   +39.51% | p95:   +54.99% 
str1:nnt:100:          avg:  0.001015 | med:  0.001182 | min:  0.000342 | max:  0.002850 | p5:  0.000658 | p10:  0.000660 | p90:  0.001364 | p95:  0.001426 
  str1:nnt:100 dt/nl:  avg:    -8.30% | med:   -42.47% | min:   -99.02% | max:  +517.90% | p5:   -74.40% | p10:   -72.36% | p90:   +71.41% | p95:   +83.04% 
  str1:nnt:100  dt/l:  avg:    +8.93% | med:    +6.16% | min:   -77.44% | max:  +286.82% | p5:   -29.41% | p10:   -12.43% | p90:   +30.60% | p95:   +44.12% 
str1:nnt:250:          avg:  0.001896 | med:  0.001752 | min:  0.001065 | max:  0.008441 | p5:  0.001598 | p10:  0.001606 | p90:  0.002327 | p95:  0.002484 
  str1:nnt:250 dt/nl:  avg:    -7.99% | med:   -10.82% | min:   -91.26% | max:  +156.80% | p5:   -39.55% | p10:   -34.84% | p90:   +21.08% | p95:   +29.08% 
  str1:nnt:250  dt/l:  avg:    +6.59% | med:    +4.52% | min:   -47.83% | max:  +170.03% | p5:   -14.31% | p10:    -7.92% | p90:   +20.47% | p95:   +34.66% 
str1:nnt:500:          avg:  0.003127 | med:  0.002872 | min:  0.002377 | max:  0.019104 | p5:  0.002630 | p10:  0.002655 | p90:  0.003457 | p95:  0.003787 
  str1:nnt:500 dt/nl:  avg:    -7.59% | med:   -11.39% | min:   -90.71% | max:  +506.48% | p5:   -29.94% | p10:   -27.60% | p90:   +11.65% | p95:   +16.87% 
  str1:nnt:500  dt/l:  avg:    +4.39% | med:    +2.67% | min:   -81.98% | max:  +509.94% | p5:   -10.49% | p10:    -5.98% | p90:   +12.28% | p95:   +21.65% 
str2:nt:10:            avg:  0.000467 | med:  0.000410 | min:  0.000140 | max:  0.002674 | p5:  0.000404 | p10:  0.000405 | p90:  0.000573 | p95:  0.000935 
  str2:nt:10 dt/nl:    avg:   -37.97% | med:   -40.29% | min:   -93.54% | max:  +210.93% | p5:   -64.65% | p10:   -57.10% | p90:   -21.90% | p95:   +14.34% 
  str2:nt:10  dt/l:    avg:   +11.59% | med:    +5.96% | min:   -83.99% | max:  +792.25% | p5:   -45.79% | p10:   -22.68% | p90:   +34.46% | p95:  +118.65% 
str2:nt:25:            avg:  0.000506 | med:  0.000392 | min:  0.000138 | max:  0.002840 | p5:  0.000386 | p10:  0.000388 | p90:  0.000927 | p95:  0.000988 
  str2:nt:25 dt/nl:    avg:   -48.40% | med:   -56.62% | min:   -98.65% | max:  +153.12% | p5:   -73.36% | p10:   -70.84% | p90:   -21.69% | p95:   +31.72% 
  str2:nt:25  dt/l:    avg:   +26.06% | med:    +9.58% | min:   -85.76% | max:  +736.36% | p5:   -58.39% | p10:   -55.96% | p90:  +158.77% | p95:  +166.57% 
str2:nt:50:            avg:  0.000700 | med:  0.000489 | min:  0.000173 | max:  0.015096 | p5:  0.000480 | p10:  0.000482 | p90:  0.001074 | p95:  0.001158 
  str2:nt:50 dt/nl:    avg:   -40.12% | med:   -60.53% | min:   -98.23% | max: +1383.27% | p5:   -72.34% | p10:   -69.25% | p90:   -11.93% | p95:   +61.80% 
  str2:nt:50  dt/l:    avg:   +32.36% | med:    +7.30% | min:   -98.23% | max: +3217.80% | p5:   -54.80% | p10:   -51.79% | p90:  +130.18% | p95:  +146.17% 
str2:nt:100:           avg:  0.001003 | med:  0.000822 | min:  0.000235 | max:  0.017312 | p5:  0.000657 | p10:  0.000659 | p90:  0.001322 | p95:  0.001412 
  str2:nt:100 dt/nl:   avg:   -24.34% | med:   -24.15% | min:   -98.15% | max:  +751.13% | p5:   -73.39% | p10:   -69.09% | p90:    +2.66% | p95:   +47.71% 
  str2:nt:100  dt/l:   avg:   +26.05% | med:    -3.30% | min:   -79.81% | max: +2401.73% | p5:   -50.38% | p10:   -46.96% | p90:  +106.58% | p95:  +120.64% 
str2:nt:250:           avg:  0.001871 | med:  0.001705 | min:  0.000927 | max:  0.005797 | p5:  0.001592 | p10:  0.001599 | p90:  0.002300 | p95:  0.002623 
  str2:nt:250 dt/nl:   avg:   -10.46% | med:   -12.06% | min:   -87.28% | max:  +169.66% | p5:   -33.14% | p10:   -24.32% | p90:    +3.83% | p95:   +18.93% 
  str2:nt:250  dt/l:   avg:    +6.53% | med:    +2.93% | min:   -58.76% | max:  +130.32% | p5:   -26.54% | p10:   -23.72% | p90:   +40.46% | p95:   +47.92% 
str2:nt:500:           avg:  0.003179 | med:  0.002909 | min:  0.001821 | max:  0.025396 | p5:  0.002617 | p10:  0.002637 | p90:  0.003490 | p95:  0.004024 
  str2:nt:500 dt/nl:   avg:    -7.28% | med:   -10.21% | min:   -85.44% | max:  +414.82% | p5:   -24.56% | p10:   -19.43% | p90:    +0.85% | p95:   +10.67% 
  str2:nt:500  dt/l:   avg:    +7.67% | med:    +4.47% | min:   -84.77% | max:  +609.47% | p5:   -20.32% | p10:   -18.20% | p90:   +28.59% | p95:   +33.62% 
str2:nnt:10:           avg:  0.000455 | med:  0.000399 | min:  0.000135 | max:  0.001973 | p5:  0.000394 | p10:  0.000395 | p90:  0.000558 | p95:  0.000919 
  str2:nnt:10 dt/nl:   avg:   -39.86% | med:   -41.80% | min:   -86.71% | max:  +134.21% | p5:   -65.51% | p10:   -56.64% | p90:   -24.56% | p95:    +8.15% 
  str2:nnt:10  dt/l:   avg:    +8.66% | med:    +3.35% | min:   -84.46% | max:  +411.14% | p5:   -47.99% | p10:   -24.43% | p90:   +39.90% | p95:   +89.38% 
str2:nnt:25:           avg:  0.000475 | med:  0.000371 | min:  0.000126 | max:  0.002667 | p5:  0.000366 | p10:  0.000367 | p90:  0.000907 | p95:  0.000970 
  str2:nnt:25 dt/nl:   avg:   -52.49% | med:   -58.97% | min:   -98.76% | max:  +115.03% | p5:   -75.27% | p10:   -72.65% | p90:   -10.44% | p95:    +1.11% 
  str2:nnt:25  dt/l:   avg:    +9.57% | med:    +3.65% | min:   -86.46% | max:  +496.62% | p5:   -57.71% | p10:   -28.96% | p90:   +39.22% | p95:  +137.99% 
str2:nnt:50:           avg:  0.000646 | med:  0.000472 | min:  0.000164 | max:  0.008135 | p5:  0.000462 | p10:  0.000464 | p90:  0.001022 | p95:  0.001138 
  str2:nnt:50 dt/nl:   avg:   -47.58% | med:   -60.85% | min:   -98.28% | max:  +489.11% | p5:   -74.22% | p10:   -72.17% | p90:   -21.07% | p95:   -10.58% 
  str2:nnt:50  dt/l:   avg:   +10.37% | med:    +3.10% | min:   -98.30% | max: +1614.73% | p5:   -53.20% | p10:   -35.74% | p90:   +37.39% | p95:  +119.87% 
str2:nnt:100:          avg:  0.001013 | med:  0.001170 | min:  0.000268 | max:  0.008040 | p5:  0.000642 | p10:  0.000644 | p90:  0.001335 | p95:  0.001478 
  str2:nnt:100 dt/nl:  avg:   -10.75% | med:   -43.30% | min:   -98.19% | max:  +939.69% | p5:   -73.45% | p10:   -71.06% | p90:   +67.29% | p95:   +75.73% 
  str2:nnt:100  dt/l:  avg:   +10.62% | med:    +3.64% | min:   -78.25% | max: +1205.19% | p5:   -44.14% | p10:   -25.00% | p90:   +42.86% | p95:   +91.54% 
str2:nnt:250:          avg:  0.001859 | med:  0.001682 | min:  0.000808 | max:  0.008322 | p5:  0.001578 | p10:  0.001584 | p90:  0.002297 | p95:  0.002531 
  str2:nnt:250 dt/nl:  avg:    -9.63% | med:   -12.87% | min:   -91.86% | max:  +180.37% | p5:   -40.19% | p10:   -36.41% | p90:   +19.51% | p95:   +26.95% 
  str2:nnt:250  dt/l:  avg:    +5.04% | med:    +1.87% | min:   -52.47% | max:  +181.92% | p5:   -24.89% | p10:   -15.42% | p90:   +28.51% | p95:   +40.91% 
str2:nnt:500:          avg:  0.003889 | med:  0.003745 | min:  0.002565 | max:  0.013937 | p5:  0.002813 | p10:  0.002970 | p90:  0.004795 | p95:  0.005414 
  str2:nnt:500 dt/nl:  avg:   +14.99% | med:    +9.80% | min:   -91.27% | max:  +216.75% | p5:   -14.02% | p10:    -9.54% | p90:   +50.87% | p95:   +60.89% 
  str2:nnt:500  dt/l:  avg:   +32.77% | med:   +36.50% | min:   -85.59% | max:  +207.47% | p5:   -14.64% | p10:   -10.04% | p90:   +69.21% | p95:   +77.91% 

Winners (draw/- is <7%):

nl
  nt:10
    avg: -     ( -38.09% | W: str1 | W-W2:   -0.12%)
    med: -     ( -40.29% | W: str2 | W-W2:   -1.53%)
    p5:  -     ( -64.65% | W: str2 | W-W2:   -1.83%)
    p10: -     ( -57.10% | W: str2 | W-W2:   -3.31%)
    p90: -     ( -21.90% | W: str2 | W-W2:   -0.71%)
    p95: str1  ( -11.34% | W: str1 | W-W2:  -25.68%)
  nt:25
    avg: -     ( -51.63% | W: str1 | W-W2:   -3.23%)
    med: -     ( -57.72% | W: str1 | W-W2:   -1.10%)
    p5:  -     ( -74.01% | W: str1 | W-W2:   -0.65%)
    p10: -     ( -70.84% | W: str2 | W-W2:   -0.99%)
    p90: -     ( -26.55% | W: str1 | W-W2:   -4.86%)
    p95: str1  ( -14.94% | W: str1 | W-W2:  -46.66%)
  nt:50
    avg: -     ( -44.27% | W: str1 | W-W2:   -4.15%)
    med: -     ( -60.53% | W: str2 | W-W2:   -2.56%)
    p5:  -     ( -72.34% | W: str2 | W-W2:   -1.43%)
    p10: -     ( -69.25% | W: str2 | W-W2:   -1.54%)
    p90: str1  ( -19.41% | W: str1 | W-W2:   -7.48%)
    p95: str1  (  -1.93% | W: str1 | W-W2:  -63.72%)
  nt:100
    avg: -     ( -27.78% | W: str1 | W-W2:   -3.43%)
    med: -     ( -25.23% | W: str1 | W-W2:   -1.09%)
    p5:  -     ( -73.39% | W: str2 | W-W2:   -2.60%)
    p10: -     ( -69.09% | W: str2 | W-W2:   -2.34%)
    p90: -     (  -4.02% | W: str1 | W-W2:   -6.68%)
    p95: str1  (  +5.63% | W: str1 | W-W2:  -42.08%)
  nt:250
    avg: -     ( -10.46% | W: str2 | W-W2:   -2.07%)
    med: -     ( -12.06% | W: str2 | W-W2:   -0.05%)
    p5:  -     ( -33.14% | W: str2 | W-W2:   -2.05%)
    p10: -     ( -24.32% | W: str2 | W-W2:   -1.59%)
    p90: -     (  -0.22% | W: str1 | W-W2:   -4.05%)
    p95: str1  (  +8.91% | W: str1 | W-W2:  -10.02%)
  nt:500
    avg: -     (  -8.48% | W: str1 | W-W2:   -1.20%)
    med: -     ( -10.21% | W: str2 | W-W2:   -1.11%)
    p5:  -     ( -24.56% | W: str2 | W-W2:   -1.47%)
    p10: -     ( -19.43% | W: str2 | W-W2:   -0.70%)
    p90: -     (  -0.20% | W: str1 | W-W2:   -1.05%)
    p95: -     (  +4.64% | W: str1 | W-W2:   -6.03%)
  nnt:10
    avg: -     ( -39.86% | W: str2 | W-W2:   -2.73%)
    med: -     ( -41.80% | W: str2 | W-W2:   -1.27%)
    p5:  -     ( -65.51% | W: str2 | W-W2:   -0.85%)
    p10: -     ( -56.64% | W: str2 | W-W2:   -0.92%)
    p90: str2  ( -24.56% | W: str2 | W-W2:   -8.29%)
    p95: str2  (  +8.15% | W: str2 | W-W2:   -8.91%)
  nnt:25
    avg: -     ( -52.49% | W: str2 | W-W2:   -2.32%)
    med: -     ( -58.97% | W: str2 | W-W2:   -1.30%)
    p5:  -     ( -75.27% | W: str2 | W-W2:   -0.57%)
    p10: -     ( -72.65% | W: str2 | W-W2:   -0.71%)
    p90: str2  ( -10.44% | W: str2 | W-W2:   -9.80%)
    p95: -     (  +1.11% | W: str2 | W-W2:   -4.64%)
  nnt:50
    avg: -     ( -47.58% | W: str2 | W-W2:   -2.45%)
    med: -     ( -60.85% | W: str2 | W-W2:   -3.05%)
    p5:  -     ( -74.22% | W: str2 | W-W2:   -0.40%)
    p10: -     ( -72.17% | W: str2 | W-W2:   -1.35%)
    p90: -     ( -21.07% | W: str2 | W-W2:   -5.83%)
    p95: -     ( -10.58% | W: str2 | W-W2:   -6.46%)
  nnt:100
    avg: -     ( -10.75% | W: str2 | W-W2:   -2.45%)
    med: -     ( -43.30% | W: str2 | W-W2:   -0.82%)
    p5:  -     ( -74.40% | W: str1 | W-W2:   -0.94%)
    p10: -     ( -72.36% | W: str1 | W-W2:   -1.30%)
    p90: -     ( +67.29% | W: str2 | W-W2:   -4.11%)
    p95: str2  ( +75.73% | W: str2 | W-W2:   -7.31%)
  nnt:250
    avg: -     (  -9.63% | W: str2 | W-W2:   -1.64%)
    med: -     ( -12.87% | W: str2 | W-W2:   -2.06%)
    p5:  -     ( -40.19% | W: str2 | W-W2:   -0.63%)
    p10: -     ( -36.41% | W: str2 | W-W2:   -1.58%)
    p90: -     ( +19.51% | W: str2 | W-W2:   -1.56%)
    p95: -     ( +26.95% | W: str2 | W-W2:   -2.13%)
  nnt:500
    avg: str1  (  -7.59% | W: str1 | W-W2:  -22.57%)
    med: str1  ( -11.39% | W: str1 | W-W2:  -21.19%)
    p5:  str1  ( -29.94% | W: str1 | W-W2:  -15.91%)
    p10: str1  ( -27.60% | W: str1 | W-W2:  -18.06%)
    p90: str1  ( +11.65% | W: str1 | W-W2:  -39.22%)
    p95: str1  ( +16.87% | W: str1 | W-W2:  -44.02%)
l
  nt:10
    avg: -     ( +11.59% | W: str2 | W-W2:   -1.71%)
    med: -     (  +5.96% | W: str2 | W-W2:   -2.59%)
    p5:  str1  ( -53.98% | W: str1 | W-W2:   -8.19%)
    p10: -     ( -23.20% | W: str1 | W-W2:   -0.52%)
    p90: str2  ( +34.46% | W: str2 | W-W2:   -8.81%)
    p95: -     (+117.37% | W: str1 | W-W2:   -1.28%)
  nt:25
    avg: -     ( +21.27% | W: str1 | W-W2:   -4.79%)
    med: -     (  +6.74% | W: str1 | W-W2:   -2.84%)
    p5:  -     ( -60.13% | W: str1 | W-W2:   -1.74%)
    p10: -     ( -57.19% | W: str1 | W-W2:   -1.24%)
    p90: -     (+156.74% | W: str1 | W-W2:   -2.03%)
    p95: -     (+162.80% | W: str1 | W-W2:   -3.78%)
  nt:50
    avg: -     ( +27.24% | W: str1 | W-W2:   -5.13%)
    med: -     (  +7.30% | W: str2 | W-W2:   -0.48%)
    p5:  -     ( -56.31% | W: str1 | W-W2:   -1.51%)
    p10: -     ( -51.92% | W: str1 | W-W2:   -0.13%)
    p90: -     (+129.49% | W: str1 | W-W2:   -0.69%)
    p95: -     (+146.17% | W: str2 | W-W2:   -2.95%)
  nt:100
    avg: -     ( +23.31% | W: str1 | W-W2:   -2.74%)
    med: str1  ( -24.05% | W: str1 | W-W2:  -20.75%)
    p5:  -     ( -51.22% | W: str1 | W-W2:   -0.84%)
    p10: -     ( -47.70% | W: str1 | W-W2:   -0.75%)
    p90: -     (+106.58% | W: str2 | W-W2:   -0.49%)
    p95: -     (+116.05% | W: str1 | W-W2:   -4.59%)
  nt:250
    avg: -     (  +6.53% | W: str2 | W-W2:   -3.08%)
    med: -     (  +2.93% | W: str2 | W-W2:   -0.14%)
    p5:  -     ( -27.00% | W: str1 | W-W2:   -0.46%)
    p10: -     ( -24.33% | W: str1 | W-W2:   -0.61%)
    p90: -     ( +38.14% | W: str1 | W-W2:   -2.33%)
    p95: -     ( +45.68% | W: str1 | W-W2:   -2.24%)
  nt:500
    avg: -     (  +6.22% | W: str1 | W-W2:   -1.45%)
    med: -     (  +4.47% | W: str2 | W-W2:   -0.55%)
    p5:  -     ( -21.36% | W: str1 | W-W2:   -1.04%)
    p10: -     ( -18.20% | W: str2 | W-W2:   -0.37%)
    p90: -     ( +28.59% | W: str2 | W-W2:   -1.33%)
    p95: -     ( +33.62% | W: str2 | W-W2:   -0.14%)
  nnt:10
    avg: -     (  +8.66% | W: str2 | W-W2:   -2.66%)
    med: -     (  +3.35% | W: str2 | W-W2:   -2.09%)
    p5:  str2  ( -47.99% | W: str2 | W-W2:  -16.22%)
    p10: -     ( -24.43% | W: str2 | W-W2:   -5.83%)
    p90: -     ( +39.90% | W: str2 | W-W2:   -5.44%)
    p95: str1  ( +65.19% | W: str1 | W-W2:  -24.19%)
  nnt:25
    avg: -     (  +9.57% | W: str2 | W-W2:   -2.59%)
    med: -     (  +3.65% | W: str2 | W-W2:   -3.11%)
    p5:  str2  ( -57.71% | W: str2 | W-W2:  -29.20%)
    p10: str2  ( -28.96% | W: str2 | W-W2:  -11.86%)
    p90: -     ( +39.22% | W: str2 | W-W2:   -2.92%)
    p95: str1  ( +63.66% | W: str1 | W-W2:  -74.33%)
  nnt:50
    avg: -     ( +10.37% | W: str2 | W-W2:   -0.34%)
    med: -     (  +3.10% | W: str2 | W-W2:   -4.68%)
    p5:  str2  ( -53.20% | W: str2 | W-W2:   -9.94%)
    p10: str2  ( -35.74% | W: str2 | W-W2:  -15.81%)
    p90: -     ( +37.39% | W: str2 | W-W2:   -2.12%)
    p95: str1  ( +54.99% | W: str1 | W-W2:  -64.88%)
  nnt:100
    avg: -     (  +8.93% | W: str1 | W-W2:   -1.70%)
    med: -     (  +3.64% | W: str2 | W-W2:   -2.52%)
    p5:  str2  ( -44.14% | W: str2 | W-W2:  -14.72%)
    p10: str2  ( -25.00% | W: str2 | W-W2:  -12.57%)
    p90: str1  ( +30.60% | W: str1 | W-W2:  -12.26%)
    p95: str1  ( +44.12% | W: str1 | W-W2:  -47.42%)
  nnt:250
    avg: -     (  +5.04% | W: str2 | W-W2:   -1.55%)
    med: -     (  +1.87% | W: str2 | W-W2:   -2.65%)
    p5:  str2  ( -24.89% | W: str2 | W-W2:  -10.59%)
    p10: str2  ( -15.42% | W: str2 | W-W2:   -7.49%)
    p90: str1  ( +20.47% | W: str1 | W-W2:   -8.04%)
    p95: -     ( +34.66% | W: str1 | W-W2:   -6.24%)
  nnt:500
    avg: str1  (  +4.39% | W: str1 | W-W2:  -28.38%)
    med: str1  (  +2.67% | W: str1 | W-W2:  -33.83%)
    p5:  -     ( -14.64% | W: str2 | W-W2:   -4.15%)
    p10: -     ( -10.04% | W: str2 | W-W2:   -4.06%)
    p90: str1  ( +12.28% | W: str1 | W-W2:  -56.94%)
    p95: str1  ( +21.65% | W: str1 | W-W2:  -56.25%)

Results gcc -Ofast (1000 runs * 10_000 iters):

str0:nl:10:            avg:  0.000838 | med:  0.000685 | min:  0.000248 | max:  0.040224 | p5:  0.000675 | p10:  0.000676 | p90:  0.000964 | p95:  0.001144 
str0:nl:25:            avg:  0.001019 | med:  0.000906 | min:  0.000331 | max:  0.015792 | p5:  0.000551 | p10:  0.000889 | p90:  0.001322 | p95:  0.001429 
str0:nl:50:            avg:  0.001402 | med:  0.001321 | min:  0.000496 | max:  0.038158 | p5:  0.000623 | p10:  0.000624 | p90:  0.001704 | p95:  0.001817 
str0:nl:100:           avg:  0.001853 | med:  0.001642 | min:  0.000396 | max:  0.039693 | p5:  0.000744 | p10:  0.000745 | p90:  0.002556 | p95:  0.002751 
str0:nl:250:           avg:  0.002167 | med:  0.001920 | min:  0.000916 | max:  0.036355 | p5:  0.001805 | p10:  0.001809 | p90:  0.002594 | p95:  0.002775 
str0:nl:500:           avg:  0.003417 | med:  0.003195 | min:  0.001979 | max:  0.040874 | p5:  0.002903 | p10:  0.002933 | p90:  0.003745 | p95:  0.003929 
str0:l:10:             avg:  0.000448 | med:  0.000386 | min:  0.000129 | max:  0.001394 | p5:  0.000384 | p10:  0.000384 | p90:  0.000564 | p95:  0.000918 
str0:l:25:             avg:  0.000494 | med:  0.000357 | min:  0.000120 | max:  0.030992 | p5:  0.000354 | p10:  0.000354 | p90:  0.000890 | p95:  0.000940 
str0:l:50:             avg:  0.000667 | med:  0.000455 | min:  0.000157 | max:  0.034322 | p5:  0.000449 | p10:  0.000450 | p90:  0.001041 | p95:  0.001118 
str0:l:100:            avg:  0.000934 | med:  0.000807 | min:  0.000213 | max:  0.003003 | p5:  0.000618 | p10:  0.000619 | p90:  0.001275 | p95:  0.001330 
str0:l:250:            avg:  0.001849 | med:  0.001625 | min:  0.000781 | max:  0.034997 | p5:  0.001550 | p10:  0.001554 | p90:  0.002201 | p95:  0.002327 
str0:l:500:            avg:  0.003004 | med:  0.002801 | min:  0.001867 | max:  0.011287 | p5:  0.002565 | p10:  0.002587 | p90:  0.003352 | p95:  0.003516 
str1:nt:10:            avg:  0.000473 | med:  0.000419 | min:  0.000140 | max:  0.002752 | p5:  0.000416 | p10:  0.000416 | p90:  0.000561 | p95:  0.000949 
  str1:nt:10 dt/nl:    avg:   -37.04% | med:   -38.71% | min:   -93.87% | max:  +275.39% | p5:   -62.94% | p10:   -52.93% | p90:   -20.86% | p95:    -9.00% 
  str1:nt:10  dt/l:    avg:   +14.33% | med:    +8.33% | min:   -84.04% | max:  +616.67% | p5:   -54.41% | p10:   -26.19% | p90:   +42.66% | p95:  +146.37% 
str1:nt:25:            avg:  0.000472 | med:  0.000381 | min:  0.000128 | max:  0.001244 | p5:  0.000376 | p10:  0.000377 | p90:  0.000914 | p95:  0.000933 
  str1:nt:25 dt/nl:    avg:   -50.53% | med:   -57.70% | min:   -97.60% | max:  +120.40% | p5:   -72.30% | p10:   -66.61% | p90:   -27.28% | p95:    -8.35% 
  str1:nt:25  dt/l:    avg:   +20.01% | med:    +6.72% | min:   -98.16% | max:  +617.97% | p5:   -59.85% | p10:   -57.14% | p90:  +156.37% | p95:  +161.97% 
str1:nt:50:            avg:  0.000650 | med:  0.000489 | min:  0.000164 | max:  0.002494 | p5:  0.000483 | p10:  0.000484 | p90:  0.001042 | p95:  0.001127 
  str1:nt:50 dt/nl:    avg:   -45.90% | med:   -61.99% | min:   -93.90% | max:  +235.12% | p5:   -71.39% | p10:   -68.03% | p90:   -19.90% | p95:    -3.39% 
  str1:nt:50  dt/l:    avg:   +23.19% | med:    +7.54% | min:   -98.58% | max:  +557.32% | p5:   -56.23% | p10:   -51.88% | p90:  +128.22% | p95:  +145.68% 
str1:nt:100:           avg:  0.000981 | med:  0.000849 | min:  0.000223 | max:  0.002841 | p5:  0.000657 | p10:  0.000658 | p90:  0.001322 | p95:  0.001387 
  str1:nt:100 dt/nl:   avg:   -29.25% | med:   -28.22% | min:   -97.92% | max:  +117.50% | p5:   -71.60% | p10:   -68.34% | p90:    -2.78% | p95:    +9.95% 
  str1:nt:100  dt/l:   avg:   +29.11% | med:    +7.33% | min:   -80.73% | max:  +470.42% | p5:   -49.81% | p10:   -47.21% | p90:  +109.97% | p95:  +122.03% 
str1:nt:250:           avg:  0.001863 | med:  0.001703 | min:  0.001080 | max:  0.023215 | p5:  0.001592 | p10:  0.001599 | p90:  0.002267 | p95:  0.002363 
  str1:nt:250 dt/nl:   avg:    -9.84% | med:   -11.68% | min:   -90.69% | max: +1125.71% | p5:   -26.86% | p10:   -21.92% | p90:    -1.28% | p95:    +7.12% 
  str1:nt:250  dt/l:   avg:    +7.01% | med:    +3.14% | min:   -91.28% | max: +1374.90% | p5:   -27.41% | p10:   -23.34% | p90:   +40.00% | p95:   +45.25% 
str1:nt:500:           avg:  0.003096 | med:  0.002888 | min:  0.001830 | max:  0.027302 | p5:  0.002618 | p10:  0.002653 | p90:  0.003434 | p95:  0.003615 
  str1:nt:500 dt/nl:   avg:    -7.83% | med:    -8.92% | min:   -81.54% | max:  +810.37% | p5:   -20.54% | p10:   -17.60% | p90:    -0.78% | p95:    +5.43% 
  str1:nt:500  dt/l:   avg:    +5.13% | med:    +2.94% | min:   -49.05% | max:  +782.70% | p5:   -20.79% | p10:   -17.88% | p90:   +28.48% | p95:   +32.92% 
str1:nnt:10:           avg:  0.000461 | med:  0.000407 | min:  0.000138 | max:  0.003158 | p5:  0.000403 | p10:  0.000404 | p90:  0.000578 | p95:  0.000689 
  str1:nnt:10 dt/nl:   avg:   -37.08% | med:   -40.46% | min:   -99.00% | max:  +362.37% | p5:   -64.37% | p10:   -57.59% | p90:   -18.98% | p95:    +4.88% 
  str1:nnt:10  dt/l:   avg:    +9.37% | med:    +5.26% | min:   -77.99% | max:  +718.13% | p5:   -52.34% | p10:   -25.18% | p90:   +42.43% | p95:   +62.08% 
str1:nnt:25:           avg:  0.000498 | med:  0.000383 | min:  0.000129 | max:  0.002638 | p5:  0.000377 | p10:  0.000378 | p90:  0.000921 | p95:  0.001006 
  str1:nnt:25 dt/nl:   avg:   -47.57% | med:   -57.61% | min:   -97.60% | max:  +193.11% | p5:   -73.01% | p10:   -70.63% | p90:    +0.89% | p95:    +5.47% 
  str1:nnt:25  dt/l:   avg:   +14.55% | med:    +6.80% | min:   -91.49% | max:  +572.03% | p5:   -34.54% | p10:   -20.16% | p90:   +50.00% | p95:   +81.84% 
str1:nnt:50:           avg:  0.000675 | med:  0.000492 | min:  0.000168 | max:  0.002749 | p5:  0.000483 | p10:  0.000484 | p90:  0.001091 | p95:  0.001191 
  str1:nnt:50 dt/nl:   avg:   -44.35% | med:   -56.24% | min:   -98.73% | max:  +111.14% | p5:   -72.71% | p10:   -70.65% | p90:   -16.99% | p95:    -6.72% 
  str1:nnt:50  dt/l:   avg:   +13.06% | med:    +7.73% | min:   -93.35% | max:  +509.53% | p5:   -36.44% | p10:   -20.03% | p90:   +44.03% | p95:   +83.59% 
str1:nnt:100:          avg:  0.001001 | med:  0.000914 | min:  0.000235 | max:  0.003035 | p5:  0.000658 | p10:  0.000659 | p90:  0.001361 | p95:  0.001436 
  str1:nnt:100 dt/nl:  avg:   -11.91% | med:   -45.74% | min:   -98.35% | max:  +280.56% | p5:   -74.87% | p10:   -72.07% | p90:   +73.35% | p95:   +85.90% 
  str1:nnt:100  dt/l:  avg:   +10.85% | med:    +6.26% | min:   -69.92% | max:  +386.39% | p5:   -17.81% | p10:   -10.69% | p90:   +32.74% | p95:   +47.05% 
str1:nnt:250:          avg:  0.001862 | med:  0.001729 | min:  0.000842 | max:  0.005713 | p5:  0.001594 | p10:  0.001602 | p90:  0.002297 | p95:  0.002483 
  str1:nnt:250 dt/nl:  avg:    -8.48% | med:   -10.49% | min:   -91.54% | max:  +158.31% | p5:   -38.86% | p10:   -35.35% | p90:   +19.19% | p95:   +28.44% 
  str1:nnt:250  dt/l:  avg:    +5.21% | med:    +4.00% | min:   -91.75% | max:  +115.88% | p5:   -18.02% | p10:    -9.40% | p90:   +17.77% | p95:   +25.47% 
str1:nnt:500:          avg:  0.003119 | med:  0.002896 | min:  0.001983 | max:  0.027924 | p5:  0.002626 | p10:  0.002659 | p90:  0.003447 | p95:  0.003664 
  str1:nnt:500 dt/nl:  avg:    -6.27% | med:    -9.18% | min:   -86.76% | max:  +633.88% | p5:   -28.94% | p10:   -26.72% | p90:   +12.61% | p95:   +16.52% 
  str1:nnt:500  dt/l:  avg:    +4.49% | med:    +2.41% | min:   -36.89% | max:  +823.11% | p5:    -9.63% | p10:    -5.72% | p90:   +13.15% | p95:   +21.46% 
str2:nt:10:            avg:  0.000459 | med:  0.000409 | min:  0.000139 | max:  0.001518 | p5:  0.000403 | p10:  0.000404 | p90:  0.000569 | p95:  0.000938 
  str2:nt:10 dt/nl:    avg:   -37.37% | med:   -40.32% | min:   -99.00% | max:  +271.48% | p5:   -65.33% | p10:   -58.47% | p90:   -18.65% | p95:   +34.20% 
  str2:nt:10  dt/l:    avg:   +10.82% | med:    +5.70% | min:   -74.92% | max:  +293.26% | p5:   -55.56% | p10:   -30.00% | p90:   +41.82% | p95:  +142.60% 
str2:nt:25:            avg:  0.000492 | med:  0.000392 | min:  0.000133 | max:  0.002692 | p5:  0.000386 | p10:  0.000387 | p90:  0.000924 | p95:  0.000982 
  str2:nt:25 dt/nl:    avg:   -46.47% | med:   -56.64% | min:   -97.54% | max:  +377.82% | p5:   -72.95% | p10:   -70.15% | p90:   -20.17% | p95:   +66.97% 
  str2:nt:25  dt/l:    avg:   +25.16% | med:    +9.55% | min:   -98.74% | max:  +638.20% | p5:   -59.05% | p10:   -56.18% | p90:  +158.99% | p95:  +170.34% 
str2:nt:50:            avg:  0.000650 | med:  0.000488 | min:  0.000167 | max:  0.002410 | p5:  0.000480 | p10:  0.000482 | p90:  0.001067 | p95:  0.001143 
  str2:nt:50 dt/nl:    avg:   -44.18% | med:   -62.14% | min:   -98.68% | max:  +238.73% | p5:   -73.05% | p10:   -69.11% | p90:   -11.35% | p95:   +47.80% 
  str2:nt:50  dt/l:    avg:   +23.96% | med:    +7.12% | min:   -98.60% | max:  +583.95% | p5:   -56.62% | p10:   -52.27% | p90:  +129.98% | p95:  +151.11% 
str2:nt:100:           avg:  0.000993 | med:  0.000831 | min:  0.000230 | max:  0.013252 | p5:  0.000656 | p10:  0.000658 | p90:  0.001315 | p95:  0.001400 
  str2:nt:100 dt/nl:   avg:   -27.41% | med:   -28.05% | min:   -98.00% | max:  +576.12% | p5:   -74.56% | p10:   -69.53% | p90:    +0.27% | p95:   +36.71% 
  str2:nt:100  dt/l:   avg:   +29.43% | med:    +7.22% | min:   -85.03% | max: +1625.52% | p5:   -50.34% | p10:   -46.84% | p90:  +107.87% | p95:  +122.17% 
str2:nt:250:           avg:  0.001847 | med:  0.001698 | min:  0.000911 | max:  0.006455 | p5:  0.001594 | p10:  0.001599 | p90:  0.002252 | p95:  0.002350 
  str2:nt:250 dt/nl:   avg:   -10.57% | med:   -11.98% | min:   -90.60% | max:  +160.18% | p5:   -31.60% | p10:   -22.21% | p90:    +0.78% | p95:   +17.16% 
  str2:nt:250  dt/l:   avg:    +6.01% | med:    +3.02% | min:   -90.33% | max:  +301.43% | p5:   -27.50% | p10:   -23.82% | p90:   +39.11% | p95:   +45.25% 
str2:nt:500:           avg:  0.003080 | med:  0.002841 | min:  0.002090 | max:  0.015987 | p5:  0.002616 | p10:  0.002637 | p90:  0.003383 | p95:  0.003566 
  str2:nt:500 dt/nl:   avg:    -8.35% | med:   -10.02% | min:   -82.20% | max:  +369.81% | p5:   -23.93% | p10:   -18.35% | p90:    -2.15% | p95:    +5.63% 
  str2:nt:500  dt/l:   avg:    +4.63% | med:    +1.18% | min:   -51.04% | max:  +487.58% | p5:   -20.79% | p10:   -18.25% | p90:   +26.80% | p95:   +30.27% 
str2:nnt:10:           avg:  0.000439 | med:  0.000399 | min:  0.000140 | max:  0.002213 | p5:  0.000394 | p10:  0.000395 | p90:  0.000518 | p95:  0.000607 
  str2:nnt:10 dt/nl:   avg:   -40.12% | med:   -41.75% | min:   -99.01% | max:  +261.60% | p5:   -64.98% | p10:   -58.25% | p90:   -24.63% | p95:   -10.89% 
  str2:nnt:10  dt/l:   avg:    +6.01% | med:    +3.12% | min:   -82.09% | max:  +474.81% | p5:   -56.44% | p10:   -29.48% | p90:   +32.99% | p95:   +60.16% 
str2:nnt:25:           avg:  0.000462 | med:  0.000371 | min:  0.000127 | max:  0.002322 | p5:  0.000366 | p10:  0.000367 | p90:  0.000903 | p95:  0.000955 
  str2:nnt:25 dt/nl:   avg:   -51.35% | med:   -58.89% | min:   -97.69% | max:  +202.32% | p5:   -73.78% | p10:   -71.51% | p90:    -7.20% | p95:    +2.11% 
  str2:nnt:25  dt/l:   avg:    +9.22% | med:    +3.67% | min:   -98.82% | max:  +317.50% | p5:   -58.43% | p10:   -28.15% | p90:   +37.57% | p95:  +138.46% 
str2:nnt:50:           avg:  0.000637 | med:  0.000472 | min:  0.000159 | max:  0.003343 | p5:  0.000462 | p10:  0.000463 | p90:  0.001025 | p95:  0.001121 
  str2:nnt:50 dt/nl:   avg:   -47.25% | med:   -60.92% | min:   -98.78% | max:  +123.91% | p5:   -74.12% | p10:   -72.00% | p90:   -19.94% | p95:    -9.94% 
  str2:nnt:50  dt/l:   avg:    +9.08% | med:    +2.89% | min:   -92.49% | max:  +646.21% | p5:   -52.95% | p10:   -33.10% | p90:   +36.36% | p95:  +122.27% 
str2:nnt:100:          avg:  0.000970 | med:  0.000825 | min:  0.000222 | max:  0.004807 | p5:  0.000642 | p10:  0.000644 | p90:  0.001311 | p95:  0.001396 
  str2:nnt:100 dt/nl:  avg:   -16.68% | med:   -46.50% | min:   -98.38% | max:  +546.10% | p5:   -73.92% | p10:   -71.55% | p90:   +63.84% | p95:   +74.90% 
  str2:nnt:100  dt/l:  avg:    +9.10% | med:    +3.50% | min:   -77.19% | max:  +445.16% | p5:   -43.67% | p10:   -17.95% | p90:   +31.02% | p95:   +89.81% 
str2:nnt:250:          avg:  0.001821 | med:  0.001669 | min:  0.000870 | max:  0.005475 | p5:  0.001578 | p10:  0.001583 | p90:  0.002222 | p95:  0.002392 
  str2:nnt:250 dt/nl:  avg:   -10.54% | med:   -12.40% | min:   -91.52% | max:  +153.00% | p5:   -38.99% | p10:   -35.63% | p90:   +17.67% | p95:   +24.00% 
  str2:nnt:250  dt/l:  avg:    +3.62% | med:    +1.93% | min:   -91.33% | max:  +240.49% | p5:   -24.99% | p10:   -17.05% | p90:   +22.78% | p95:   +37.05% 
str2:nnt:500:          avg:  0.003815 | med:  0.003685 | min:  0.002005 | max:  0.008940 | p5:  0.002787 | p10:  0.002968 | p90:  0.004684 | p95:  0.004958 
  str2:nnt:500 dt/nl:  avg:   +14.70% | med:    +9.92% | min:   -89.00% | max:  +144.14% | p5:   -13.49% | p10:    -8.42% | p90:   +50.07% | p95:   +56.60% 
  str2:nnt:500  dt/l:  avg:   +30.66% | med:   +34.03% | min:   -44.24% | max:  +195.54% | p5:   -16.71% | p10:   -10.86% | p90:   +67.06% | p95:   +77.94% 

Winners (draw/- is <7%):

nl
  nt:10
    avg: -     ( -37.37% | W: str2 | W-W2:   -0.32%)
    med: -     ( -40.32% | W: str2 | W-W2:   -1.61%)
    p5:  -     ( -65.33% | W: str2 | W-W2:   -2.38%)
    p10: -     ( -58.47% | W: str2 | W-W2:   -5.55%)
    p90: -     ( -20.86% | W: str1 | W-W2:   -2.21%)
    p95: str1  (  -9.00% | W: str1 | W-W2:  -43.19%)
  nt:25
    avg: -     ( -50.53% | W: str1 | W-W2:   -4.06%)
    med: -     ( -57.70% | W: str1 | W-W2:   -1.06%)
    p5:  -     ( -72.95% | W: str2 | W-W2:   -0.65%)
    p10: -     ( -70.15% | W: str2 | W-W2:   -3.55%)
    p90: str1  ( -27.28% | W: str1 | W-W2:   -7.11%)
    p95: str1  (  -8.35% | W: str1 | W-W2:  -75.32%)
  nt:50
    avg: -     ( -45.90% | W: str1 | W-W2:   -1.72%)
    med: -     ( -62.14% | W: str2 | W-W2:   -0.15%)
    p5:  -     ( -73.05% | W: str2 | W-W2:   -1.67%)
    p10: -     ( -69.11% | W: str2 | W-W2:   -1.09%)
    p90: str1  ( -19.90% | W: str1 | W-W2:   -8.56%)
    p95: str1  (  -3.39% | W: str1 | W-W2:  -51.18%)
  nt:100
    avg: -     ( -29.25% | W: str1 | W-W2:   -1.84%)
    med: -     ( -28.22% | W: str1 | W-W2:   -0.18%)
    p5:  -     ( -74.56% | W: str2 | W-W2:   -2.97%)
    p10: -     ( -69.53% | W: str2 | W-W2:   -1.19%)
    p90: -     (  -2.78% | W: str1 | W-W2:   -3.05%)
    p95: str1  (  +9.95% | W: str1 | W-W2:  -26.76%)
  nt:250
    avg: -     ( -10.57% | W: str2 | W-W2:   -0.74%)
    med: -     ( -11.98% | W: str2 | W-W2:   -0.30%)
    p5:  -     ( -31.60% | W: str2 | W-W2:   -4.75%)
    p10: -     ( -22.21% | W: str2 | W-W2:   -0.29%)
    p90: -     (  -1.28% | W: str1 | W-W2:   -2.05%)
    p95: str1  (  +7.12% | W: str1 | W-W2:  -10.04%)
  nt:500
    avg: -     (  -8.35% | W: str2 | W-W2:   -0.52%)
    med: -     ( -10.02% | W: str2 | W-W2:   -1.10%)
    p5:  -     ( -23.93% | W: str2 | W-W2:   -3.40%)
    p10: -     ( -18.35% | W: str2 | W-W2:   -0.75%)
    p90: -     (  -2.15% | W: str2 | W-W2:   -1.37%)
    p95: -     (  +5.43% | W: str1 | W-W2:   -0.20%)
  nnt:10
    avg: -     ( -40.12% | W: str2 | W-W2:   -3.04%)
    med: -     ( -41.75% | W: str2 | W-W2:   -1.30%)
    p5:  -     ( -64.98% | W: str2 | W-W2:   -0.61%)
    p10: -     ( -58.25% | W: str2 | W-W2:   -0.65%)
    p90: -     ( -24.63% | W: str2 | W-W2:   -5.65%)
    p95: str2  ( -10.89% | W: str2 | W-W2:  -15.77%)
  nnt:25
    avg: -     ( -51.35% | W: str2 | W-W2:   -3.79%)
    med: -     ( -58.89% | W: str2 | W-W2:   -1.28%)
    p5:  -     ( -73.78% | W: str2 | W-W2:   -0.78%)
    p10: -     ( -71.51% | W: str2 | W-W2:   -0.88%)
    p90: str2  (  -7.20% | W: str2 | W-W2:   -8.09%)
    p95: -     (  +2.11% | W: str2 | W-W2:   -3.36%)
  nnt:50
    avg: -     ( -47.25% | W: str2 | W-W2:   -2.90%)
    med: -     ( -60.92% | W: str2 | W-W2:   -4.69%)
    p5:  -     ( -74.12% | W: str2 | W-W2:   -1.42%)
    p10: -     ( -72.00% | W: str2 | W-W2:   -1.36%)
    p90: -     ( -19.94% | W: str2 | W-W2:   -2.94%)
    p95: -     (  -9.94% | W: str2 | W-W2:   -3.22%)
  nnt:100
    avg: -     ( -16.68% | W: str2 | W-W2:   -4.77%)
    med: -     ( -46.50% | W: str2 | W-W2:   -0.77%)
    p5:  -     ( -74.87% | W: str1 | W-W2:   -0.95%)
    p10: -     ( -72.07% | W: str1 | W-W2:   -0.52%)
    p90: str2  ( +63.84% | W: str2 | W-W2:   -9.51%)
    p95: str2  ( +74.90% | W: str2 | W-W2:  -11.00%)
  nnt:250
    avg: -     ( -10.54% | W: str2 | W-W2:   -2.06%)
    med: -     ( -12.40% | W: str2 | W-W2:   -1.91%)
    p5:  -     ( -38.99% | W: str2 | W-W2:   -0.14%)
    p10: -     ( -35.63% | W: str2 | W-W2:   -0.28%)
    p90: -     ( +17.67% | W: str2 | W-W2:   -1.52%)
    p95: -     ( +24.00% | W: str2 | W-W2:   -4.44%)
  nnt:500
    avg: str1  (  -6.27% | W: str1 | W-W2:  -20.97%)
    med: str1  (  -9.18% | W: str1 | W-W2:  -19.10%)
    p5:  str1  ( -28.94% | W: str1 | W-W2:  -15.46%)
    p10: str1  ( -26.72% | W: str1 | W-W2:  -18.30%)
    p90: str1  ( +12.61% | W: str1 | W-W2:  -37.45%)
    p95: str1  ( +16.52% | W: str1 | W-W2:  -40.08%)
l
  nt:10
    avg: -     ( +10.82% | W: str2 | W-W2:   -3.51%)
    med: -     (  +5.70% | W: str2 | W-W2:   -2.63%)
    p5:  -     ( -55.56% | W: str2 | W-W2:   -1.15%)
    p10: -     ( -30.00% | W: str2 | W-W2:   -3.81%)
    p90: -     ( +41.82% | W: str2 | W-W2:   -0.84%)
    p95: -     (+142.60% | W: str2 | W-W2:   -3.78%)
  nt:25
    avg: -     ( +20.01% | W: str1 | W-W2:   -5.15%)
    med: -     (  +6.72% | W: str1 | W-W2:   -2.83%)
    p5:  -     ( -59.85% | W: str1 | W-W2:   -0.80%)
    p10: -     ( -57.14% | W: str1 | W-W2:   -0.96%)
    p90: -     (+156.37% | W: str1 | W-W2:   -2.61%)
    p95: str1  (+161.97% | W: str1 | W-W2:   -8.37%)
  nt:50
    avg: -     ( +23.19% | W: str1 | W-W2:   -0.77%)
    med: -     (  +7.12% | W: str2 | W-W2:   -0.42%)
    p5:  -     ( -56.62% | W: str2 | W-W2:   -0.39%)
    p10: -     ( -52.27% | W: str2 | W-W2:   -0.40%)
    p90: -     (+128.22% | W: str1 | W-W2:   -1.76%)
    p95: -     (+145.68% | W: str1 | W-W2:   -5.43%)
  nt:100
    avg: -     ( +29.11% | W: str1 | W-W2:   -0.32%)
    med: -     (  +7.22% | W: str2 | W-W2:   -0.11%)
    p5:  -     ( -50.34% | W: str2 | W-W2:   -0.53%)
    p10: -     ( -47.21% | W: str1 | W-W2:   -0.37%)
    p90: -     (+107.87% | W: str2 | W-W2:   -2.10%)
    p95: -     (+122.03% | W: str1 | W-W2:   -0.14%)
  nt:250
    avg: -     (  +6.01% | W: str2 | W-W2:   -1.00%)
    med: -     (  +3.02% | W: str2 | W-W2:   -0.12%)
    p5:  -     ( -27.50% | W: str2 | W-W2:   -0.09%)
    p10: -     ( -23.82% | W: str2 | W-W2:   -0.48%)
    p90: -     ( +39.11% | W: str2 | W-W2:   -0.89%)
    p95: -     ( +45.25% | W: str1 | W-W2:   -0.00%)
  nt:500
    avg: -     (  +4.63% | W: str2 | W-W2:   -0.51%)
    med: -     (  +1.18% | W: str2 | W-W2:   -1.76%)
    p5:  -     ( -20.79% | W: str1 | W-W2:   -0.00%)
    p10: -     ( -18.25% | W: str2 | W-W2:   -0.37%)
    p90: -     ( +26.80% | W: str2 | W-W2:   -1.68%)
    p95: -     ( +30.27% | W: str2 | W-W2:   -2.65%)
  nnt:10
    avg: -     (  +6.01% | W: str2 | W-W2:   -3.36%)
    med: -     (  +3.12% | W: str2 | W-W2:   -2.15%)
    p5:  -     ( -56.44% | W: str2 | W-W2:   -4.10%)
    p10: -     ( -29.48% | W: str2 | W-W2:   -4.30%)
    p90: str2  ( +32.99% | W: str2 | W-W2:   -9.44%)
    p95: -     ( +60.16% | W: str2 | W-W2:   -1.92%)
  nnt:25
    avg: -     (  +9.22% | W: str2 | W-W2:   -5.33%)
    med: -     (  +3.67% | W: str2 | W-W2:   -3.13%)
    p5:  str2  ( -58.43% | W: str2 | W-W2:  -23.89%)
    p10: str2  ( -28.15% | W: str2 | W-W2:   -7.99%)
    p90: str2  ( +37.57% | W: str2 | W-W2:  -12.43%)
    p95: str1  ( +81.84% | W: str1 | W-W2:  -56.62%)
  nnt:50
    avg: -     (  +9.08% | W: str2 | W-W2:   -3.98%)
    med: -     (  +2.89% | W: str2 | W-W2:   -4.84%)
    p5:  str2  ( -52.95% | W: str2 | W-W2:  -16.52%)
    p10: str2  ( -33.10% | W: str2 | W-W2:  -13.06%)
    p90: str2  ( +36.36% | W: str2 | W-W2:   -7.66%)
    p95: str1  ( +83.59% | W: str1 | W-W2:  -38.68%)
  nnt:100
    avg: -     (  +9.10% | W: str2 | W-W2:   -1.75%)
    med: -     (  +3.50% | W: str2 | W-W2:   -2.75%)
    p5:  str2  ( -43.67% | W: str2 | W-W2:  -25.86%)
    p10: str2  ( -17.95% | W: str2 | W-W2:   -7.26%)
    p90: -     ( +31.02% | W: str2 | W-W2:   -1.72%)
    p95: str1  ( +47.05% | W: str1 | W-W2:  -42.76%)
  nnt:250
    avg: -     (  +3.62% | W: str2 | W-W2:   -1.60%)
    med: -     (  +1.93% | W: str2 | W-W2:   -2.06%)
    p5:  -     ( -24.99% | W: str2 | W-W2:   -6.97%)
    p10: str2  ( -17.05% | W: str2 | W-W2:   -7.65%)
    p90: -     ( +17.77% | W: str1 | W-W2:   -5.01%)
    p95: str1  ( +25.47% | W: str1 | W-W2:  -11.58%)
  nnt:500
    avg: str1  (  +4.49% | W: str1 | W-W2:  -26.17%)
    med: str1  (  +2.41% | W: str1 | W-W2:  -31.61%)
    p5:  str2  ( -16.71% | W: str2 | W-W2:   -7.07%)
    p10: -     ( -10.86% | W: str2 | W-W2:   -5.14%)
    p90: str1  ( +13.15% | W: str1 | W-W2:  -53.91%)
    p95: str1  ( +21.46% | W: str1 | W-W2:  -56.48%)

Conclusions:

  • nnt (Non-Null-Terminated) is faster than nt (Null-Terminated) (sanity++)
  • custom string implementations are always significantly faster (avg: -62% - -6%, med: -71% - -9%) in performance than native c-strings
  • custom string implementations are comparable (~equal, avg: -12% - +30%, med: -28% - +8%) in performance with native c-string with length provided
  • gcc compiler is faster by ~30-35% on average for this benchmark
  • gcc
    • ptr+len significantly wins on len 500 (and more, I suppose)
  • clang
    • ptr+ptr_end significantly wins on len 10-250, ptr+len significantly wins on len 500 (and more, I suppose)

Devlog:

  • Basic
  • Arena allocator
  • Gather results & stats
  • Automated results & stats
  • Automated winners
  • More strings length cases
  • Percentiles
  • Conclusions
  • Run in GHA
  • More strings functions cases

About

Benchmark: C-strings (null-terminated char array) vs ptr+length vs ptr+ptr_end

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published