diff --git a/libcxx/after-v2/format.txt b/libcxx/after-v2/format.txt new file mode 100644 --- /dev/null +++ b/libcxx/after-v2/format.txt @@ -0,0 +1,45 @@ +-------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +-------------------------------------------------------------------------------------------- +BM_format_string/1 39.0 ns 39.0 ns 17958178 bytes_per_second=24.4675M/s +BM_format_string/2 20.5 ns 20.5 ns 34080986 bytes_per_second=92.8685M/s +BM_format_string/4 11.6 ns 11.6 ns 60520112 bytes_per_second=329.61M/s +BM_format_string/8 6.65 ns 6.65 ns 103418744 bytes_per_second=1.11993G/s +BM_format_string/16 4.23 ns 4.23 ns 158993760 bytes_per_second=3.52259G/s +BM_format_string/32 3.52 ns 3.52 ns 199014720 bytes_per_second=8.47356G/s +BM_format_string/64 2.65 ns 2.65 ns 264567872 bytes_per_second=22.5289G/s +BM_format_string/128 2.22 ns 2.22 ns 315761408 bytes_per_second=53.7657G/s +BM_format_string/256 2.10 ns 2.10 ns 333994240 bytes_per_second=113.585G/s +BM_format_string/512 2.02 ns 2.02 ns 346097152 bytes_per_second=236.308G/s +BM_format_string/1024 1.98 ns 1.98 ns 352839680 bytes_per_second=480.966G/s +BM_format_string/2048 1.96 ns 1.96 ns 356339712 bytes_per_second=970.938G/s +BM_format_string/4096 1.93 ns 1.93 ns 362029056 bytes_per_second=1.92707T/s +BM_format_string/8192 1.91 ns 1.91 ns 366108672 bytes_per_second=3.89587T/s +BM_format_string/16384 1.90 ns 1.90 ns 367837184 bytes_per_second=7.82956T/s +BM_format_string/32768 1.90 ns 1.90 ns 368476160 bytes_per_second=15.6861T/s +BM_format_string/65536 1.95 ns 1.95 ns 359006208 bytes_per_second=30.5553T/s +BM_format_string/131072 2.21 ns 2.21 ns 316669952 bytes_per_second=53.9487T/s +BM_format_string/262144 2.32 ns 2.32 ns 301727744 bytes_per_second=102.743T/s +BM_format_string/524288 2.38 ns 2.38 ns 293601280 bytes_per_second=200.688T/s +BM_format_string/1048576 2.41 ns 2.41 ns 290455552 bytes_per_second=395.506T/s +BM_format_string/1 39.1 ns 39.1 ns 17886043 bytes_per_second=97.4408M/s +BM_format_string/2 20.1 ns 20.1 ns 34843370 bytes_per_second=379.926M/s +BM_format_string/4 10.6 ns 10.6 ns 66172232 bytes_per_second=1.40664G/s +BM_format_string/8 8.43 ns 8.43 ns 83001296 bytes_per_second=3.5361G/s +BM_format_string/16 4.78 ns 4.78 ns 146250240 bytes_per_second=12.4757G/s +BM_format_string/32 2.67 ns 2.67 ns 261437344 bytes_per_second=44.6226G/s +BM_format_string/64 1.95 ns 1.95 ns 360125120 bytes_per_second=122.547G/s +BM_format_string/128 1.69 ns 1.69 ns 415067904 bytes_per_second=282.868G/s +BM_format_string/256 1.57 ns 1.57 ns 444819712 bytes_per_second=605.712G/s +BM_format_string/512 1.47 ns 1.47 ns 475035136 bytes_per_second=1.26391T/s +BM_format_string/1024 1.33 ns 1.33 ns 527887360 bytes_per_second=2.81034T/s +BM_format_string/2048 1.23 ns 1.23 ns 567339008 bytes_per_second=6.03794T/s +BM_format_string/4096 1.21 ns 1.21 ns 578605056 bytes_per_second=12.3072T/s +BM_format_string/8192 1.20 ns 1.20 ns 582705152 bytes_per_second=24.8009T/s +BM_format_string/16384 1.22 ns 1.22 ns 574619648 bytes_per_second=48.9465T/s +BM_format_string/32768 1.29 ns 1.29 ns 542048256 bytes_per_second=92.3115T/s +BM_format_string/65536 1.30 ns 1.30 ns 539623424 bytes_per_second=184.056T/s +BM_format_string/131072 1.31 ns 1.31 ns 533463040 bytes_per_second=363.874T/s +BM_format_string/262144 3.25 ns 3.25 ns 215220224 bytes_per_second=293.379T/s +BM_format_string/524288 2.61 ns 2.61 ns 267911168 bytes_per_second=730.515T/s +BM_format_string/1048576 2.81 ns 2.81 ns 248512512 bytes_per_second=1.32355P/s diff --git a/libcxx/after-v2/format_to.txt b/libcxx/after-v2/format_to.txt new file mode 100644 --- /dev/null +++ b/libcxx/after-v2/format_to.txt @@ -0,0 +1,339 @@ +-------------------------------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +-------------------------------------------------------------------------------------------------------------------------- +BM_format_to_string_back_inserter/1 38.2 ns 38.2 ns 18333555 bytes_per_second=24.9676M/s +BM_format_to_string_back_inserter/2 40.0 ns 40.0 ns 17527305 bytes_per_second=47.6853M/s +BM_format_to_string_back_inserter/4 45.7 ns 45.7 ns 15317233 bytes_per_second=83.496M/s +BM_format_to_string_back_inserter/8 54.0 ns 54.0 ns 13024572 bytes_per_second=141.204M/s +BM_format_to_string_back_inserter/16 65.4 ns 65.4 ns 10695650 bytes_per_second=233.225M/s +BM_format_to_string_back_inserter/32 116 ns 116 ns 6006277 bytes_per_second=262.132M/s +BM_format_to_string_back_inserter/64 175 ns 175 ns 3993632 bytes_per_second=348.208M/s +BM_format_to_string_back_inserter/128 289 ns 289 ns 2417262 bytes_per_second=422.175M/s +BM_format_to_string_back_inserter/256 543 ns 543 ns 1289593 bytes_per_second=449.871M/s +BM_format_to_string_back_inserter/512 1034 ns 1034 ns 676159 bytes_per_second=472.252M/s +BM_format_to_string_back_inserter/1024 2074 ns 2074 ns 337715 bytes_per_second=470.9M/s +BM_format_to_string_back_inserter/2048 4081 ns 4081 ns 171526 bytes_per_second=478.61M/s +BM_format_to_string_back_inserter/4096 8001 ns 8001 ns 87356 bytes_per_second=488.213M/s +BM_format_to_string_back_inserter/8192 15781 ns 15781 ns 44413 bytes_per_second=495.062M/s +BM_format_to_string_back_inserter/16384 31299 ns 31299 ns 22358 bytes_per_second=499.221M/s +BM_format_to_string_back_inserter/32768 62251 ns 62251 ns 11240 bytes_per_second=501.998M/s +BM_format_to_string_back_inserter/65536 124433 ns 124434 ns 5625 bytes_per_second=502.276M/s +BM_format_to_string_back_inserter/131072 272979 ns 272975 ns 2560 bytes_per_second=457.917M/s +BM_format_to_string_back_inserter/262144 591913 ns 591913 ns 1183 bytes_per_second=422.359M/s +BM_format_to_string_back_inserter/524288 1228355 ns 1228360 ns 569 bytes_per_second=407.047M/s +BM_format_to_string_back_inserter/1048576 2515146 ns 2515125 ns 278 bytes_per_second=397.594M/s +BM_format_to_string_back_inserter>/1 51.9 ns 51.9 ns 13524073 bytes_per_second=18.3737M/s +BM_format_to_string_back_inserter>/2 54.6 ns 54.6 ns 12813738 bytes_per_second=34.923M/s +BM_format_to_string_back_inserter>/4 56.6 ns 56.6 ns 12329215 bytes_per_second=67.352M/s +BM_format_to_string_back_inserter>/8 65.2 ns 65.2 ns 10739221 bytes_per_second=117.053M/s +BM_format_to_string_back_inserter>/16 77.8 ns 77.8 ns 8994669 bytes_per_second=196.041M/s +BM_format_to_string_back_inserter>/32 106 ns 106 ns 6576899 bytes_per_second=286.716M/s +BM_format_to_string_back_inserter>/64 163 ns 163 ns 4271534 bytes_per_second=373.34M/s +BM_format_to_string_back_inserter>/128 276 ns 276 ns 2529150 bytes_per_second=441.649M/s +BM_format_to_string_back_inserter>/256 521 ns 521 ns 1344584 bytes_per_second=468.45M/s +BM_format_to_string_back_inserter>/512 1020 ns 1020 ns 686051 bytes_per_second=478.741M/s +BM_format_to_string_back_inserter>/1024 1979 ns 1979 ns 353945 bytes_per_second=493.545M/s +BM_format_to_string_back_inserter>/2048 3955 ns 3955 ns 177085 bytes_per_second=493.853M/s +BM_format_to_string_back_inserter>/4096 7855 ns 7855 ns 88926 bytes_per_second=497.287M/s +BM_format_to_string_back_inserter>/8192 15556 ns 15556 ns 45010 bytes_per_second=502.224M/s +BM_format_to_string_back_inserter>/16384 30944 ns 30944 ns 22619 bytes_per_second=504.95M/s +BM_format_to_string_back_inserter>/32768 62090 ns 62090 ns 11276 bytes_per_second=503.298M/s +BM_format_to_string_back_inserter>/65536 123304 ns 123304 ns 5677 bytes_per_second=506.879M/s +BM_format_to_string_back_inserter>/131072 247665 ns 247666 ns 2821 bytes_per_second=504.711M/s +BM_format_to_string_back_inserter>/262144 498591 ns 498586 ns 1405 bytes_per_second=501.418M/s +BM_format_to_string_back_inserter>/524288 994676 ns 994676 ns 704 bytes_per_second=502.676M/s +BM_format_to_string_back_inserter>/1048576 1991906 ns 1991878 ns 349 bytes_per_second=502.039M/s +BM_format_to_string_back_inserter>/1 50.0 ns 50.0 ns 13977370 bytes_per_second=19.0642M/s +BM_format_to_string_back_inserter>/2 63.5 ns 63.5 ns 11015869 bytes_per_second=30.0183M/s +BM_format_to_string_back_inserter>/4 91.0 ns 91.0 ns 7690111 bytes_per_second=41.9195M/s +BM_format_to_string_back_inserter>/8 159 ns 159 ns 4426156 bytes_per_second=48.0549M/s +BM_format_to_string_back_inserter>/16 307 ns 307 ns 2296758 bytes_per_second=49.7331M/s +BM_format_to_string_back_inserter>/32 603 ns 603 ns 1163850 bytes_per_second=50.5765M/s +BM_format_to_string_back_inserter>/64 1174 ns 1174 ns 593496 bytes_per_second=51.9686M/s +BM_format_to_string_back_inserter>/128 2317 ns 2317 ns 301491 bytes_per_second=52.6818M/s +BM_format_to_string_back_inserter>/256 4627 ns 4627 ns 150960 bytes_per_second=52.7669M/s +BM_format_to_string_back_inserter>/512 9239 ns 9239 ns 75762 bytes_per_second=52.8525M/s +BM_format_to_string_back_inserter>/1024 18535 ns 18535 ns 37763 bytes_per_second=52.6868M/s +BM_format_to_string_back_inserter>/2048 37295 ns 37295 ns 18762 bytes_per_second=52.3695M/s +BM_format_to_string_back_inserter>/4096 74907 ns 74907 ns 9342 bytes_per_second=52.1477M/s +BM_format_to_string_back_inserter>/8192 150675 ns 150673 ns 4645 bytes_per_second=51.8508M/s +BM_format_to_string_back_inserter>/16384 301711 ns 301712 ns 2318 bytes_per_second=51.7879M/s +BM_format_to_string_back_inserter>/32768 604702 ns 604691 ns 1152 bytes_per_second=51.6793M/s +BM_format_to_string_back_inserter>/65536 1210372 ns 1210375 ns 576 bytes_per_second=51.6369M/s +BM_format_to_string_back_inserter>/131072 2437855 ns 2437817 ns 285 bytes_per_second=51.2754M/s +BM_format_to_string_back_inserter>/262144 5106059 ns 5105893 ns 127 bytes_per_second=48.963M/s +BM_format_to_string_back_inserter>/524288 10573176 ns 10572882 ns 62 bytes_per_second=47.2908M/s +BM_format_to_string_back_inserter>/1048576 21524883 ns 21524224 ns 31 bytes_per_second=46.4593M/s +BM_format_to_string_begin/1 32.7 ns 32.7 ns 21368897 bytes_per_second=29.1297M/s +BM_format_to_string_begin/2 34.0 ns 34.0 ns 20621714 bytes_per_second=56.1704M/s +BM_format_to_string_begin/4 37.8 ns 37.8 ns 18494368 bytes_per_second=100.897M/s +BM_format_to_string_begin/8 48.8 ns 48.8 ns 14383142 bytes_per_second=156.493M/s +BM_format_to_string_begin/16 62.3 ns 62.3 ns 11235179 bytes_per_second=244.784M/s +BM_format_to_string_begin/32 101 ns 101 ns 6918737 bytes_per_second=302.873M/s +BM_format_to_string_begin/64 145 ns 145 ns 4821874 bytes_per_second=421.547M/s +BM_format_to_string_begin/128 262 ns 262 ns 2682037 bytes_per_second=466.604M/s +BM_format_to_string_begin/256 527 ns 527 ns 1331374 bytes_per_second=463.239M/s +BM_format_to_string_begin/512 944 ns 944 ns 740446 bytes_per_second=517.091M/s +BM_format_to_string_begin/1024 1891 ns 1891 ns 370154 bytes_per_second=516.295M/s +BM_format_to_string_begin/2048 3670 ns 3670 ns 190561 bytes_per_second=532.226M/s +BM_format_to_string_begin/4096 7325 ns 7325 ns 95597 bytes_per_second=533.253M/s +BM_format_to_string_begin/8192 14603 ns 14603 ns 47946 bytes_per_second=534.978M/s +BM_format_to_string_begin/16384 29176 ns 29176 ns 24005 bytes_per_second=535.549M/s +BM_format_to_string_begin/32768 58302 ns 58303 ns 12005 bytes_per_second=535.997M/s +BM_format_to_string_begin/65536 116645 ns 116643 ns 5996 bytes_per_second=535.823M/s +BM_format_to_string_begin/131072 233536 ns 233536 ns 3001 bytes_per_second=535.249M/s +BM_format_to_string_begin/262144 466762 ns 466763 ns 1500 bytes_per_second=535.604M/s +BM_format_to_string_begin/524288 932619 ns 932620 ns 751 bytes_per_second=536.124M/s +BM_format_to_string_begin/1048576 1865487 ns 1865452 ns 375 bytes_per_second=536.063M/s +BM_format_to_string_begin>/1 32.8 ns 32.8 ns 21288670 bytes_per_second=29.057M/s +BM_format_to_string_begin>/2 33.9 ns 33.9 ns 20650698 bytes_per_second=56.2919M/s +BM_format_to_string_begin>/4 38.6 ns 38.6 ns 18125553 bytes_per_second=98.7696M/s +BM_format_to_string_begin>/8 44.8 ns 44.8 ns 15692791 bytes_per_second=170.343M/s +BM_format_to_string_begin>/16 58.7 ns 58.7 ns 11928388 bytes_per_second=260.018M/s +BM_format_to_string_begin>/32 88.8 ns 88.8 ns 7884710 bytes_per_second=343.74M/s +BM_format_to_string_begin>/64 148 ns 148 ns 4733375 bytes_per_second=412.905M/s +BM_format_to_string_begin>/128 264 ns 264 ns 2644470 bytes_per_second=462.151M/s +BM_format_to_string_begin>/256 493 ns 493 ns 1416449 bytes_per_second=495.119M/s +BM_format_to_string_begin>/512 942 ns 942 ns 741797 bytes_per_second=518.251M/s +BM_format_to_string_begin>/1024 1892 ns 1892 ns 369918 bytes_per_second=516.078M/s +BM_format_to_string_begin>/2048 3668 ns 3668 ns 190822 bytes_per_second=532.415M/s +BM_format_to_string_begin>/4096 7333 ns 7333 ns 95453 bytes_per_second=532.713M/s +BM_format_to_string_begin>/8192 14619 ns 14619 ns 47912 bytes_per_second=534.394M/s +BM_format_to_string_begin>/16384 29165 ns 29165 ns 24000 bytes_per_second=535.749M/s +BM_format_to_string_begin>/32768 58325 ns 58326 ns 12007 bytes_per_second=535.784M/s +BM_format_to_string_begin>/65536 116615 ns 116614 ns 6003 bytes_per_second=535.958M/s +BM_format_to_string_begin>/131072 233308 ns 233309 ns 3000 bytes_per_second=535.77M/s +BM_format_to_string_begin>/262144 466828 ns 466824 ns 1500 bytes_per_second=535.534M/s +BM_format_to_string_begin>/524288 932480 ns 932480 ns 751 bytes_per_second=536.204M/s +BM_format_to_string_begin>/1048576 1865494 ns 1865482 ns 375 bytes_per_second=536.055M/s +BM_format_to_string_begin>/1 33.7 ns 33.7 ns 20823135 bytes_per_second=28.3406M/s +BM_format_to_string_begin>/2 37.4 ns 37.4 ns 18721533 bytes_per_second=51.0033M/s +BM_format_to_string_begin>/4 44.9 ns 44.9 ns 15594180 bytes_per_second=85.0389M/s +BM_format_to_string_begin>/8 65.3 ns 65.3 ns 10717737 bytes_per_second=116.899M/s +BM_format_to_string_begin>/16 90.0 ns 90.0 ns 7769344 bytes_per_second=169.6M/s +BM_format_to_string_begin>/32 165 ns 165 ns 4250600 bytes_per_second=185.469M/s +BM_format_to_string_begin>/64 312 ns 312 ns 2243934 bytes_per_second=195.788M/s +BM_format_to_string_begin>/128 597 ns 597 ns 1177019 bytes_per_second=204.616M/s +BM_format_to_string_begin>/256 1180 ns 1180 ns 591553 bytes_per_second=206.821M/s +BM_format_to_string_begin>/512 2313 ns 2313 ns 301658 bytes_per_second=211.143M/s +BM_format_to_string_begin>/1024 4637 ns 4637 ns 151015 bytes_per_second=210.592M/s +BM_format_to_string_begin>/2048 9194 ns 9194 ns 76089 bytes_per_second=212.435M/s +BM_format_to_string_begin>/4096 18407 ns 18407 ns 38016 bytes_per_second=212.211M/s +BM_format_to_string_begin>/8192 36841 ns 36841 ns 18993 bytes_per_second=212.061M/s +BM_format_to_string_begin>/16384 73552 ns 73552 ns 9520 bytes_per_second=212.434M/s +BM_format_to_string_begin>/32768 147226 ns 147227 ns 4752 bytes_per_second=212.257M/s +BM_format_to_string_begin>/65536 294597 ns 294594 ns 2377 bytes_per_second=212.156M/s +BM_format_to_string_begin>/131072 592296 ns 592292 ns 1183 bytes_per_second=211.044M/s +BM_format_to_string_begin>/262144 1292045 ns 1292006 ns 540 bytes_per_second=193.498M/s +BM_format_to_string_begin>/524288 2766472 ns 2766354 ns 253 bytes_per_second=180.743M/s +BM_format_to_string_begin>/1048576 5626492 ns 5626181 ns 123 bytes_per_second=177.74M/s +BM_format_to_string_span/1 32.3 ns 32.3 ns 21654174 bytes_per_second=29.488M/s +BM_format_to_string_span/2 33.9 ns 33.9 ns 20620342 bytes_per_second=56.219M/s +BM_format_to_string_span/4 37.8 ns 37.8 ns 18514409 bytes_per_second=100.911M/s +BM_format_to_string_span/8 44.1 ns 44.1 ns 15866852 bytes_per_second=172.963M/s +BM_format_to_string_span/16 66.0 ns 66.0 ns 10643748 bytes_per_second=231.054M/s +BM_format_to_string_span/32 95.9 ns 95.9 ns 7292150 bytes_per_second=318.343M/s +BM_format_to_string_span/64 172 ns 172 ns 4078331 bytes_per_second=355.55M/s +BM_format_to_string_span/128 285 ns 285 ns 2459387 bytes_per_second=428.852M/s +BM_format_to_string_span/256 527 ns 527 ns 1330744 bytes_per_second=463.491M/s +BM_format_to_string_span/512 960 ns 960 ns 730034 bytes_per_second=508.586M/s +BM_format_to_string_span/1024 1891 ns 1891 ns 369974 bytes_per_second=516.432M/s +BM_format_to_string_span/2048 3671 ns 3671 ns 190712 bytes_per_second=532.057M/s +BM_format_to_string_span/4096 7322 ns 7322 ns 95578 bytes_per_second=533.494M/s +BM_format_to_string_span/8192 14606 ns 14606 ns 47945 bytes_per_second=534.899M/s +BM_format_to_string_span/16384 29162 ns 29162 ns 23993 bytes_per_second=535.798M/s +BM_format_to_string_span/32768 58291 ns 58291 ns 11941 bytes_per_second=536.103M/s +BM_format_to_string_span/65536 116610 ns 116611 ns 6003 bytes_per_second=535.972M/s +BM_format_to_string_span/131072 233572 ns 233573 ns 2997 bytes_per_second=535.165M/s +BM_format_to_string_span/262144 466428 ns 466427 ns 1500 bytes_per_second=535.989M/s +BM_format_to_string_span/524288 932574 ns 932578 ns 751 bytes_per_second=536.148M/s +BM_format_to_string_span/1048576 1864949 ns 1864955 ns 375 bytes_per_second=536.206M/s +BM_format_to_string_pointer/1 32.6 ns 32.6 ns 21497443 bytes_per_second=29.2773M/s +BM_format_to_string_pointer/2 33.8 ns 33.8 ns 20730662 bytes_per_second=56.4577M/s +BM_format_to_string_pointer/4 37.8 ns 37.8 ns 18526287 bytes_per_second=101.027M/s +BM_format_to_string_pointer/8 45.1 ns 45.1 ns 15559883 bytes_per_second=169.03M/s +BM_format_to_string_pointer/16 59.3 ns 59.3 ns 11670940 bytes_per_second=257.322M/s +BM_format_to_string_pointer/32 94.0 ns 94.0 ns 7476786 bytes_per_second=324.738M/s +BM_format_to_string_pointer/64 146 ns 146 ns 4868416 bytes_per_second=417.959M/s +BM_format_to_string_pointer/128 265 ns 265 ns 2644800 bytes_per_second=461.083M/s +BM_format_to_string_pointer/256 527 ns 527 ns 1326562 bytes_per_second=463.39M/s +BM_format_to_string_pointer/512 962 ns 962 ns 728200 bytes_per_second=507.622M/s +BM_format_to_string_pointer/1024 1904 ns 1904 ns 367421 bytes_per_second=512.891M/s +BM_format_to_string_pointer/2048 3691 ns 3691 ns 188868 bytes_per_second=529.122M/s +BM_format_to_string_pointer/4096 7327 ns 7327 ns 95474 bytes_per_second=533.104M/s +BM_format_to_string_pointer/8192 14632 ns 14632 ns 47843 bytes_per_second=533.93M/s +BM_format_to_string_pointer/16384 29180 ns 29180 ns 23995 bytes_per_second=535.471M/s +BM_format_to_string_pointer/32768 58313 ns 58314 ns 12001 bytes_per_second=535.896M/s +BM_format_to_string_pointer/65536 116703 ns 116702 ns 5999 bytes_per_second=535.55M/s +BM_format_to_string_pointer/131072 233610 ns 233610 ns 2996 bytes_per_second=535.08M/s +BM_format_to_string_pointer/262144 466302 ns 466305 ns 1501 bytes_per_second=536.129M/s +BM_format_to_string_pointer/524288 932893 ns 932894 ns 751 bytes_per_second=535.966M/s +BM_format_to_string_pointer/1048576 1864887 ns 1864888 ns 375 bytes_per_second=536.225M/s +BM_format_to_string_back_inserter/1 38.0 ns 38.0 ns 18419776 bytes_per_second=100.464M/s +BM_format_to_string_back_inserter/2 39.4 ns 39.4 ns 17782104 bytes_per_second=193.737M/s +BM_format_to_string_back_inserter/4 41.5 ns 41.5 ns 16863518 bytes_per_second=367.765M/s +BM_format_to_string_back_inserter/8 66.4 ns 66.4 ns 10548168 bytes_per_second=459.307M/s +BM_format_to_string_back_inserter/16 75.0 ns 75.0 ns 9354776 bytes_per_second=814.051M/s +BM_format_to_string_back_inserter/32 83.0 ns 83.0 ns 8388235 bytes_per_second=1.43656G/s +BM_format_to_string_back_inserter/64 121 ns 121 ns 5783854 bytes_per_second=1.97037G/s +BM_format_to_string_back_inserter/128 213 ns 213 ns 3296876 bytes_per_second=2.24327G/s +BM_format_to_string_back_inserter/256 425 ns 425 ns 1643049 bytes_per_second=2.24242G/s +BM_format_to_string_back_inserter/512 802 ns 802 ns 872608 bytes_per_second=2.37886G/s +BM_format_to_string_back_inserter/1024 1461 ns 1461 ns 477678 bytes_per_second=2.61128G/s +BM_format_to_string_back_inserter/2048 2556 ns 2556 ns 274286 bytes_per_second=2.98507G/s +BM_format_to_string_back_inserter/4096 5089 ns 5089 ns 137233 bytes_per_second=2.99814G/s +BM_format_to_string_back_inserter/8192 10106 ns 10106 ns 68748 bytes_per_second=3.01988G/s +BM_format_to_string_back_inserter/16384 20294 ns 20294 ns 34483 bytes_per_second=3.00757G/s +BM_format_to_string_back_inserter/32768 42040 ns 42040 ns 16646 bytes_per_second=2.9037G/s +BM_format_to_string_back_inserter/65536 86816 ns 86817 ns 8042 bytes_per_second=2.81214G/s +BM_format_to_string_back_inserter/131072 171582 ns 171579 ns 4080 bytes_per_second=2.84581G/s +BM_format_to_string_back_inserter/262144 850053 ns 850040 ns 825 bytes_per_second=1.14884G/s +BM_format_to_string_back_inserter/524288 1375652 ns 1375571 ns 509 bytes_per_second=1.41986G/s +BM_format_to_string_back_inserter/1048576 2457750 ns 2457504 ns 285 bytes_per_second=1.58952G/s +BM_format_to_string_back_inserter>/1 54.4 ns 54.4 ns 12920435 bytes_per_second=70.0842M/s +BM_format_to_string_back_inserter>/2 54.2 ns 54.2 ns 12929074 bytes_per_second=140.688M/s +BM_format_to_string_back_inserter>/4 56.3 ns 56.3 ns 12381707 bytes_per_second=271.148M/s +BM_format_to_string_back_inserter>/8 58.9 ns 58.9 ns 11897300 bytes_per_second=518.551M/s +BM_format_to_string_back_inserter>/16 65.1 ns 65.1 ns 10869455 bytes_per_second=937.966M/s +BM_format_to_string_back_inserter>/32 79.3 ns 79.3 ns 8855664 bytes_per_second=1.50291G/s +BM_format_to_string_back_inserter>/64 113 ns 113 ns 6193862 bytes_per_second=2.11028G/s +BM_format_to_string_back_inserter>/128 195 ns 195 ns 3589357 bytes_per_second=2.44213G/s +BM_format_to_string_back_inserter>/256 347 ns 347 ns 2015401 bytes_per_second=2.74907G/s +BM_format_to_string_back_inserter>/512 690 ns 690 ns 1013075 bytes_per_second=2.76409G/s +BM_format_to_string_back_inserter>/1024 1314 ns 1314 ns 532012 bytes_per_second=2.90299G/s +BM_format_to_string_back_inserter>/2048 2361 ns 2360 ns 296543 bytes_per_second=3.23214G/s +BM_format_to_string_back_inserter>/4096 4737 ns 4737 ns 147440 bytes_per_second=3.22097G/s +BM_format_to_string_back_inserter>/8192 9895 ns 9895 ns 70747 bytes_per_second=3.08402G/s +BM_format_to_string_back_inserter>/16384 19000 ns 19000 ns 36835 bytes_per_second=3.21238G/s +BM_format_to_string_back_inserter>/32768 39453 ns 39453 ns 17751 bytes_per_second=3.09408G/s +BM_format_to_string_back_inserter>/65536 81419 ns 81420 ns 8594 bytes_per_second=2.99854G/s +BM_format_to_string_back_inserter>/131072 160705 ns 160705 ns 4352 bytes_per_second=3.03837G/s +BM_format_to_string_back_inserter>/262144 326826 ns 326827 ns 2141 bytes_per_second=2.98801G/s +BM_format_to_string_back_inserter>/524288 670703 ns 670674 ns 1043 bytes_per_second=2.91218G/s +BM_format_to_string_back_inserter>/1048576 1562320 ns 1562282 ns 444 bytes_per_second=2.50035G/s +BM_format_to_string_back_inserter>/1 50.1 ns 50.1 ns 13957558 bytes_per_second=76.199M/s +BM_format_to_string_back_inserter>/2 63.2 ns 63.2 ns 11069943 bytes_per_second=120.689M/s +BM_format_to_string_back_inserter>/4 89.3 ns 89.3 ns 7818927 bytes_per_second=170.793M/s +BM_format_to_string_back_inserter>/8 157 ns 157 ns 4473727 bytes_per_second=194.936M/s +BM_format_to_string_back_inserter>/16 302 ns 302 ns 2318028 bytes_per_second=202.307M/s +BM_format_to_string_back_inserter>/32 592 ns 592 ns 1180155 bytes_per_second=206.074M/s +BM_format_to_string_back_inserter>/64 1161 ns 1161 ns 601856 bytes_per_second=210.253M/s +BM_format_to_string_back_inserter>/128 2269 ns 2269 ns 308896 bytes_per_second=215.216M/s +BM_format_to_string_back_inserter>/256 4488 ns 4489 ns 155949 bytes_per_second=217.568M/s +BM_format_to_string_back_inserter>/512 8968 ns 8968 ns 78047 bytes_per_second=217.791M/s +BM_format_to_string_back_inserter>/1024 18032 ns 18032 ns 38846 bytes_per_second=216.626M/s +BM_format_to_string_back_inserter>/2048 36053 ns 36053 ns 19419 bytes_per_second=216.693M/s +BM_format_to_string_back_inserter>/4096 72355 ns 72355 ns 9670 bytes_per_second=215.948M/s +BM_format_to_string_back_inserter>/8192 145517 ns 145518 ns 4807 bytes_per_second=214.751M/s +BM_format_to_string_back_inserter>/16384 291358 ns 291359 ns 2401 bytes_per_second=214.512M/s +BM_format_to_string_back_inserter>/32768 583789 ns 583792 ns 1192 bytes_per_second=214.117M/s +BM_format_to_string_back_inserter>/65536 1167908 ns 1167871 ns 596 bytes_per_second=214.065M/s +BM_format_to_string_back_inserter>/131072 2350291 ns 2350280 ns 296 bytes_per_second=212.741M/s +BM_format_to_string_back_inserter>/262144 4922167 ns 4921907 ns 131 bytes_per_second=203.173M/s +BM_format_to_string_back_inserter>/524288 10138047 ns 10137702 ns 64 bytes_per_second=197.283M/s +BM_format_to_string_back_inserter>/1048576 20626861 ns 20626116 ns 32 bytes_per_second=193.929M/s +BM_format_to_string_begin/1 32.1 ns 32.1 ns 21740854 bytes_per_second=118.777M/s +BM_format_to_string_begin/2 32.9 ns 32.9 ns 21257009 bytes_per_second=231.719M/s +BM_format_to_string_begin/4 34.7 ns 34.7 ns 20169543 bytes_per_second=439.447M/s +BM_format_to_string_begin/8 37.2 ns 37.2 ns 18801422 bytes_per_second=819.449M/s +BM_format_to_string_begin/16 42.8 ns 42.8 ns 16337599 bytes_per_second=1.39103G/s +BM_format_to_string_begin/32 56.4 ns 56.4 ns 12399188 bytes_per_second=2.11208G/s +BM_format_to_string_begin/64 86.7 ns 86.7 ns 8069545 bytes_per_second=2.75096G/s +BM_format_to_string_begin/128 130 ns 130 ns 5392023 bytes_per_second=3.67634G/s +BM_format_to_string_begin/256 225 ns 225 ns 3113436 bytes_per_second=4.24107G/s +BM_format_to_string_begin/512 406 ns 406 ns 1722615 bytes_per_second=4.69328G/s +BM_format_to_string_begin/1024 762 ns 762 ns 916818 bytes_per_second=5.0032G/s +BM_format_to_string_begin/2048 1551 ns 1551 ns 451326 bytes_per_second=4.91814G/s +BM_format_to_string_begin/4096 3039 ns 3039 ns 229895 bytes_per_second=5.02073G/s +BM_format_to_string_begin/8192 7821 ns 7821 ns 89398 bytes_per_second=3.90195G/s +BM_format_to_string_begin/16384 14670 ns 14670 ns 47769 bytes_per_second=4.16055G/s +BM_format_to_string_begin/32768 31743 ns 31743 ns 22062 bytes_per_second=3.84561G/s +BM_format_to_string_begin/65536 65248 ns 65248 ns 10721 bytes_per_second=3.74173G/s +BM_format_to_string_begin/131072 130353 ns 130354 ns 5370 bytes_per_second=3.74582G/s +BM_format_to_string_begin/262144 260326 ns 260326 ns 2689 bytes_per_second=3.75131G/s +BM_format_to_string_begin/524288 520975 ns 520962 ns 1343 bytes_per_second=3.74908G/s +BM_format_to_string_begin/1048576 1095343 ns 1095310 ns 636 bytes_per_second=3.56634G/s +BM_format_to_string_begin>/1 32.1 ns 32.1 ns 21810682 bytes_per_second=118.822M/s +BM_format_to_string_begin>/2 33.0 ns 33.0 ns 21209896 bytes_per_second=231.256M/s +BM_format_to_string_begin>/4 34.3 ns 34.3 ns 20423331 bytes_per_second=445.215M/s +BM_format_to_string_begin>/8 37.1 ns 37.1 ns 18844899 bytes_per_second=821.49M/s +BM_format_to_string_begin>/16 42.7 ns 42.7 ns 16395689 bytes_per_second=1.3963G/s +BM_format_to_string_begin>/32 54.0 ns 54.0 ns 12925541 bytes_per_second=2.20862G/s +BM_format_to_string_begin>/64 84.0 ns 84.0 ns 8339002 bytes_per_second=2.83903G/s +BM_format_to_string_begin>/128 130 ns 130 ns 5402566 bytes_per_second=3.67922G/s +BM_format_to_string_begin>/256 226 ns 226 ns 3101697 bytes_per_second=4.22601G/s +BM_format_to_string_begin>/512 407 ns 407 ns 1720185 bytes_per_second=4.68713G/s +BM_format_to_string_begin>/1024 762 ns 762 ns 918700 bytes_per_second=5.00724G/s +BM_format_to_string_begin>/2048 1554 ns 1554 ns 450641 bytes_per_second=4.90907G/s +BM_format_to_string_begin>/4096 3043 ns 3043 ns 229578 bytes_per_second=5.01359G/s +BM_format_to_string_begin>/8192 7817 ns 7817 ns 89576 bytes_per_second=3.90403G/s +BM_format_to_string_begin>/16384 14657 ns 14657 ns 47716 bytes_per_second=4.16419G/s +BM_format_to_string_begin>/32768 31715 ns 31715 ns 22059 bytes_per_second=3.84892G/s +BM_format_to_string_begin>/65536 65247 ns 65247 ns 10735 bytes_per_second=3.74177G/s +BM_format_to_string_begin>/131072 130343 ns 130343 ns 5362 bytes_per_second=3.74612G/s +BM_format_to_string_begin>/262144 262701 ns 262575 ns 2689 bytes_per_second=3.71918G/s +BM_format_to_string_begin>/524288 547882 ns 547870 ns 1278 bytes_per_second=3.56494G/s +BM_format_to_string_begin>/1048576 1143993 ns 1143973 ns 610 bytes_per_second=3.41463G/s +BM_format_to_string_begin>/1 33.3 ns 33.3 ns 20998562 bytes_per_second=114.391M/s +BM_format_to_string_begin>/2 36.0 ns 36.0 ns 19419107 bytes_per_second=211.667M/s +BM_format_to_string_begin>/4 42.2 ns 42.2 ns 16589352 bytes_per_second=361.214M/s +BM_format_to_string_begin>/8 56.6 ns 56.6 ns 12374371 bytes_per_second=539.202M/s +BM_format_to_string_begin>/16 80.9 ns 80.9 ns 8655229 bytes_per_second=754.567M/s +BM_format_to_string_begin>/32 135 ns 135 ns 5186731 bytes_per_second=904.11M/s +BM_format_to_string_begin>/64 245 ns 245 ns 2860125 bytes_per_second=997.628M/s +BM_format_to_string_begin>/128 462 ns 462 ns 1515187 bytes_per_second=1057.55M/s +BM_format_to_string_begin>/256 897 ns 897 ns 779486 bytes_per_second=1088.88M/s +BM_format_to_string_begin>/512 1756 ns 1756 ns 398725 bytes_per_second=1112.36M/s +BM_format_to_string_begin>/1024 3519 ns 3519 ns 198618 bytes_per_second=1110.1M/s +BM_format_to_string_begin>/2048 7039 ns 7039 ns 99385 bytes_per_second=1109.9M/s +BM_format_to_string_begin>/4096 14004 ns 14004 ns 50002 bytes_per_second=1115.76M/s +BM_format_to_string_begin>/8192 28015 ns 28014 ns 25009 bytes_per_second=1115.5M/s +BM_format_to_string_begin>/16384 56043 ns 56043 ns 12496 bytes_per_second=1115.21M/s +BM_format_to_string_begin>/32768 111868 ns 111867 ns 6258 bytes_per_second=1117.39M/s +BM_format_to_string_begin>/65536 223394 ns 223394 ns 3133 bytes_per_second=1119.1M/s +BM_format_to_string_begin>/131072 447283 ns 447276 ns 1564 bytes_per_second=1117.88M/s +BM_format_to_string_begin>/262144 1019951 ns 1019916 ns 688 bytes_per_second=980.473M/s +BM_format_to_string_begin>/524288 2190015 ns 2189938 ns 319 bytes_per_second=913.268M/s +BM_format_to_string_begin>/1048576 4510980 ns 4510878 ns 155 bytes_per_second=886.745M/s +BM_format_to_string_span/1 32.1 ns 32.1 ns 21831371 bytes_per_second=118.943M/s +BM_format_to_string_span/2 33.2 ns 33.2 ns 21091011 bytes_per_second=229.799M/s +BM_format_to_string_span/4 34.5 ns 34.5 ns 20296473 bytes_per_second=442.612M/s +BM_format_to_string_span/8 37.5 ns 37.5 ns 18663908 bytes_per_second=814.38M/s +BM_format_to_string_span/16 43.0 ns 43.0 ns 16286528 bytes_per_second=1.38709G/s +BM_format_to_string_span/32 56.5 ns 56.5 ns 12370337 bytes_per_second=2.10966G/s +BM_format_to_string_span/64 85.9 ns 85.9 ns 8162409 bytes_per_second=2.77667G/s +BM_format_to_string_span/128 129 ns 129 ns 5411117 bytes_per_second=3.68636G/s +BM_format_to_string_span/256 223 ns 223 ns 3133724 bytes_per_second=4.26732G/s +BM_format_to_string_span/512 399 ns 399 ns 1753197 bytes_per_second=4.77596G/s +BM_format_to_string_span/1024 745 ns 745 ns 940246 bytes_per_second=5.12324G/s +BM_format_to_string_span/2048 1564 ns 1564 ns 446986 bytes_per_second=4.8787G/s +BM_format_to_string_span/4096 2989 ns 2989 ns 234245 bytes_per_second=5.10546G/s +BM_format_to_string_span/8192 7768 ns 7768 ns 89978 bytes_per_second=3.92841G/s +BM_format_to_string_span/16384 14405 ns 14405 ns 48528 bytes_per_second=4.23719G/s +BM_format_to_string_span/32768 31831 ns 31831 ns 22009 bytes_per_second=3.83497G/s +BM_format_to_string_span/65536 64938 ns 64938 ns 10743 bytes_per_second=3.75962G/s +BM_format_to_string_span/131072 129980 ns 129978 ns 5389 bytes_per_second=3.75664G/s +BM_format_to_string_span/262144 259928 ns 259928 ns 2692 bytes_per_second=3.75705G/s +BM_format_to_string_span/524288 522127 ns 522123 ns 1341 bytes_per_second=3.74074G/s +BM_format_to_string_span/1048576 1092979 ns 1092947 ns 642 bytes_per_second=3.57405G/s +BM_format_to_string_pointer/1 32.6 ns 32.6 ns 21451473 bytes_per_second=117.177M/s +BM_format_to_string_pointer/2 33.4 ns 33.4 ns 20991088 bytes_per_second=228.678M/s +BM_format_to_string_pointer/4 34.9 ns 34.9 ns 20038644 bytes_per_second=436.988M/s +BM_format_to_string_pointer/8 37.6 ns 37.6 ns 18588875 bytes_per_second=810.892M/s +BM_format_to_string_pointer/16 43.1 ns 43.1 ns 16242638 bytes_per_second=1.38294G/s +BM_format_to_string_pointer/32 56.4 ns 56.4 ns 12421113 bytes_per_second=2.11454G/s +BM_format_to_string_pointer/64 83.9 ns 83.9 ns 8341412 bytes_per_second=2.84075G/s +BM_format_to_string_pointer/128 129 ns 129 ns 5441756 bytes_per_second=3.70381G/s +BM_format_to_string_pointer/256 223 ns 223 ns 3141084 bytes_per_second=4.28079G/s +BM_format_to_string_pointer/512 405 ns 405 ns 1730174 bytes_per_second=4.71433G/s +BM_format_to_string_pointer/1024 759 ns 759 ns 922155 bytes_per_second=5.02474G/s +BM_format_to_string_pointer/2048 1550 ns 1550 ns 451123 bytes_per_second=4.92349G/s +BM_format_to_string_pointer/4096 3044 ns 3044 ns 230047 bytes_per_second=5.01354G/s +BM_format_to_string_pointer/8192 7800 ns 7800 ns 89815 bytes_per_second=3.91228G/s +BM_format_to_string_pointer/16384 14672 ns 14672 ns 47732 bytes_per_second=4.15984G/s +BM_format_to_string_pointer/32768 31973 ns 31973 ns 21876 bytes_per_second=3.81786G/s +BM_format_to_string_pointer/65536 65066 ns 65066 ns 10740 bytes_per_second=3.75218G/s +BM_format_to_string_pointer/131072 130161 ns 130162 ns 5377 bytes_per_second=3.75134G/s +BM_format_to_string_pointer/262144 260112 ns 260112 ns 2690 bytes_per_second=3.75439G/s +BM_format_to_string_pointer/524288 521888 ns 521887 ns 1338 bytes_per_second=3.74243G/s +BM_format_to_string_pointer/1048576 1095014 ns 1094984 ns 637 bytes_per_second=3.5674G/s diff --git a/libcxx/after-v2/format_to_n.txt b/libcxx/after-v2/format_to_n.txt new file mode 100644 --- /dev/null +++ b/libcxx/after-v2/format_to_n.txt @@ -0,0 +1,339 @@ +---------------------------------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +---------------------------------------------------------------------------------------------------------------------------- +BM_format_to_n_string_back_inserter/1 48.0 ns 48.0 ns 14577751 bytes_per_second=19.8664M/s +BM_format_to_n_string_back_inserter/2 50.2 ns 50.2 ns 13970174 bytes_per_second=37.9704M/s +BM_format_to_n_string_back_inserter/4 58.7 ns 58.7 ns 11932928 bytes_per_second=64.9998M/s +BM_format_to_n_string_back_inserter/8 69.3 ns 69.3 ns 10108927 bytes_per_second=110.118M/s +BM_format_to_n_string_back_inserter/16 96.6 ns 96.6 ns 7251680 bytes_per_second=157.997M/s +BM_format_to_n_string_back_inserter/32 178 ns 178 ns 3898809 bytes_per_second=171.106M/s +BM_format_to_n_string_back_inserter/64 292 ns 292 ns 2397794 bytes_per_second=209.126M/s +BM_format_to_n_string_back_inserter/128 535 ns 535 ns 1308875 bytes_per_second=228.063M/s +BM_format_to_n_string_back_inserter/256 1007 ns 1007 ns 694140 bytes_per_second=242.49M/s +BM_format_to_n_string_back_inserter/512 1968 ns 1969 ns 355465 bytes_per_second=248.044M/s +BM_format_to_n_string_back_inserter/1024 3941 ns 3941 ns 177627 bytes_per_second=247.786M/s +BM_format_to_n_string_back_inserter/2048 7833 ns 7833 ns 89464 bytes_per_second=249.336M/s +BM_format_to_n_string_back_inserter/4096 15507 ns 15506 ns 45167 bytes_per_second=251.915M/s +BM_format_to_n_string_back_inserter/8192 30754 ns 30755 ns 22744 bytes_per_second=254.023M/s +BM_format_to_n_string_back_inserter/16384 61051 ns 61053 ns 11466 bytes_per_second=255.924M/s +BM_format_to_n_string_back_inserter/32768 121800 ns 121804 ns 5745 bytes_per_second=256.56M/s +BM_format_to_n_string_back_inserter/65536 244750 ns 244758 ns 2857 bytes_per_second=255.355M/s +BM_format_to_n_string_back_inserter/131072 489562 ns 489577 ns 1429 bytes_per_second=255.323M/s +BM_format_to_n_string_back_inserter/262144 978459 ns 978468 ns 715 bytes_per_second=255.501M/s +BM_format_to_n_string_back_inserter/524288 1955016 ns 1955021 ns 358 bytes_per_second=255.752M/s +BM_format_to_n_string_back_inserter/1048576 3932414 ns 3932543 ns 178 bytes_per_second=254.288M/s +BM_format_to_n_string_back_inserter>/1 61.0 ns 61.0 ns 11369911 bytes_per_second=15.6407M/s +BM_format_to_n_string_back_inserter>/2 63.1 ns 63.1 ns 11091954 bytes_per_second=30.2461M/s +BM_format_to_n_string_back_inserter>/4 70.7 ns 70.8 ns 9956100 bytes_per_second=53.9172M/s +BM_format_to_n_string_back_inserter>/8 82.4 ns 82.4 ns 8509373 bytes_per_second=92.6241M/s +BM_format_to_n_string_back_inserter>/16 110 ns 110 ns 6349272 bytes_per_second=138.774M/s +BM_format_to_n_string_back_inserter>/32 178 ns 178 ns 3970934 bytes_per_second=171.497M/s +BM_format_to_n_string_back_inserter>/64 286 ns 286 ns 2502483 bytes_per_second=213.21M/s +BM_format_to_n_string_back_inserter>/128 529 ns 529 ns 1326727 bytes_per_second=230.738M/s +BM_format_to_n_string_back_inserter>/256 995 ns 995 ns 705145 bytes_per_second=245.307M/s +BM_format_to_n_string_back_inserter>/512 1982 ns 1982 ns 353343 bytes_per_second=246.346M/s +BM_format_to_n_string_back_inserter>/1024 3855 ns 3855 ns 181784 bytes_per_second=253.347M/s +BM_format_to_n_string_back_inserter>/2048 7698 ns 7698 ns 90925 bytes_per_second=253.71M/s +BM_format_to_n_string_back_inserter>/4096 15304 ns 15304 ns 45712 bytes_per_second=255.241M/s +BM_format_to_n_string_back_inserter>/8192 30519 ns 30520 ns 22945 bytes_per_second=255.982M/s +BM_format_to_n_string_back_inserter>/16384 60735 ns 60735 ns 11524 bytes_per_second=257.267M/s +BM_format_to_n_string_back_inserter>/32768 121214 ns 121218 ns 5765 bytes_per_second=257.8M/s +BM_format_to_n_string_back_inserter>/65536 243093 ns 243101 ns 2880 bytes_per_second=257.095M/s +BM_format_to_n_string_back_inserter>/131072 486071 ns 486087 ns 1440 bytes_per_second=257.156M/s +BM_format_to_n_string_back_inserter>/262144 973859 ns 973852 ns 718 bytes_per_second=256.712M/s +BM_format_to_n_string_back_inserter>/524288 1945472 ns 1945477 ns 360 bytes_per_second=257.006M/s +BM_format_to_n_string_back_inserter>/1048576 3900917 ns 3901044 ns 179 bytes_per_second=256.342M/s +BM_format_to_n_string_back_inserter>/1 57.7 ns 57.7 ns 12143867 bytes_per_second=16.5151M/s +BM_format_to_n_string_back_inserter>/2 71.7 ns 71.7 ns 9748500 bytes_per_second=26.6009M/s +BM_format_to_n_string_back_inserter>/4 104 ns 104 ns 6736904 bytes_per_second=36.8551M/s +BM_format_to_n_string_back_inserter>/8 178 ns 178 ns 4000319 bytes_per_second=42.7803M/s +BM_format_to_n_string_back_inserter>/16 360 ns 360 ns 1954188 bytes_per_second=42.344M/s +BM_format_to_n_string_back_inserter>/32 697 ns 697 ns 1009057 bytes_per_second=43.8075M/s +BM_format_to_n_string_back_inserter>/64 1325 ns 1325 ns 519370 bytes_per_second=46.0523M/s +BM_format_to_n_string_back_inserter>/128 2622 ns 2622 ns 266332 bytes_per_second=46.5592M/s +BM_format_to_n_string_back_inserter>/256 5192 ns 5192 ns 134172 bytes_per_second=47.0197M/s +BM_format_to_n_string_back_inserter>/512 10431 ns 10431 ns 67162 bytes_per_second=46.8085M/s +BM_format_to_n_string_back_inserter>/1024 20881 ns 20881 ns 33513 bytes_per_second=46.7689M/s +BM_format_to_n_string_back_inserter>/2048 41625 ns 41627 ns 16816 bytes_per_second=46.9201M/s +BM_format_to_n_string_back_inserter>/4096 83322 ns 83325 ns 8402 bytes_per_second=46.8797M/s +BM_format_to_n_string_back_inserter>/8192 166865 ns 166870 ns 4193 bytes_per_second=46.8178M/s +BM_format_to_n_string_back_inserter>/16384 334582 ns 334586 ns 2092 bytes_per_second=46.6995M/s +BM_format_to_n_string_back_inserter>/32768 669191 ns 669210 ns 1041 bytes_per_second=46.6968M/s +BM_format_to_n_string_back_inserter>/65536 1338874 ns 1338917 ns 518 bytes_per_second=46.6795M/s +BM_format_to_n_string_back_inserter>/131072 2689778 ns 2689751 ns 259 bytes_per_second=46.4727M/s +BM_format_to_n_string_back_inserter>/262144 5498488 ns 5498466 ns 118 bytes_per_second=45.4672M/s +BM_format_to_n_string_back_inserter>/524288 11161100 ns 11160897 ns 59 bytes_per_second=44.7993M/s +BM_format_to_n_string_back_inserter>/1048576 22635985 ns 22636482 ns 29 bytes_per_second=44.1765M/s +BM_format_to_n_string_begin/1 39.7 ns 39.7 ns 17641605 bytes_per_second=24.0337M/s +BM_format_to_n_string_begin/2 44.2 ns 44.2 ns 15920621 bytes_per_second=43.1596M/s +BM_format_to_n_string_begin/4 50.0 ns 50.0 ns 14078057 bytes_per_second=76.223M/s +BM_format_to_n_string_begin/8 56.7 ns 56.7 ns 12634024 bytes_per_second=134.642M/s +BM_format_to_n_string_begin/16 80.9 ns 80.9 ns 8641939 bytes_per_second=188.549M/s +BM_format_to_n_string_begin/32 153 ns 153 ns 4567955 bytes_per_second=199.74M/s +BM_format_to_n_string_begin/64 270 ns 270 ns 2592987 bytes_per_second=226.062M/s +BM_format_to_n_string_begin/128 499 ns 499 ns 1402324 bytes_per_second=244.487M/s +BM_format_to_n_string_begin/256 978 ns 978 ns 716175 bytes_per_second=249.739M/s +BM_format_to_n_string_begin/512 1892 ns 1892 ns 369976 bytes_per_second=258.09M/s +BM_format_to_n_string_begin/1024 3729 ns 3729 ns 187805 bytes_per_second=261.881M/s +BM_format_to_n_string_begin/2048 7387 ns 7387 ns 94805 bytes_per_second=264.408M/s +BM_format_to_n_string_begin/4096 14733 ns 14733 ns 47518 bytes_per_second=265.132M/s +BM_format_to_n_string_begin/8192 29392 ns 29393 ns 23811 bytes_per_second=265.797M/s +BM_format_to_n_string_begin/16384 59108 ns 59110 ns 11760 bytes_per_second=264.34M/s +BM_format_to_n_string_begin/32768 118228 ns 118228 ns 5922 bytes_per_second=264.321M/s +BM_format_to_n_string_begin/65536 236047 ns 236055 ns 2967 bytes_per_second=264.769M/s +BM_format_to_n_string_begin/131072 471678 ns 471693 ns 1483 bytes_per_second=265.003M/s +BM_format_to_n_string_begin/262144 944375 ns 944402 ns 741 bytes_per_second=264.718M/s +BM_format_to_n_string_begin/524288 1887868 ns 1887919 ns 371 bytes_per_second=264.842M/s +BM_format_to_n_string_begin/1048576 3776217 ns 3776261 ns 185 bytes_per_second=264.812M/s +BM_format_to_n_string_begin>/1 39.7 ns 39.7 ns 17644336 bytes_per_second=24.033M/s +BM_format_to_n_string_begin>/2 43.2 ns 43.2 ns 16286188 bytes_per_second=44.1704M/s +BM_format_to_n_string_begin>/4 49.4 ns 49.4 ns 14036096 bytes_per_second=77.2555M/s +BM_format_to_n_string_begin>/8 63.5 ns 63.5 ns 10989033 bytes_per_second=120.141M/s +BM_format_to_n_string_begin>/16 81.4 ns 81.4 ns 8537047 bytes_per_second=187.37M/s +BM_format_to_n_string_begin>/32 142 ns 142 ns 5158563 bytes_per_second=215.254M/s +BM_format_to_n_string_begin>/64 272 ns 272 ns 2576569 bytes_per_second=224.627M/s +BM_format_to_n_string_begin>/128 503 ns 503 ns 1391852 bytes_per_second=242.59M/s +BM_format_to_n_string_begin>/256 978 ns 978 ns 716149 bytes_per_second=249.568M/s +BM_format_to_n_string_begin>/512 1894 ns 1894 ns 369779 bytes_per_second=257.797M/s +BM_format_to_n_string_begin>/1024 3750 ns 3750 ns 187771 bytes_per_second=260.411M/s +BM_format_to_n_string_begin>/2048 7386 ns 7387 ns 94733 bytes_per_second=264.417M/s +BM_format_to_n_string_begin>/4096 14734 ns 14734 ns 47341 bytes_per_second=265.112M/s +BM_format_to_n_string_begin>/8192 29393 ns 29394 ns 23794 bytes_per_second=265.788M/s +BM_format_to_n_string_begin>/16384 59108 ns 59109 ns 11851 bytes_per_second=264.341M/s +BM_format_to_n_string_begin>/32768 118258 ns 118261 ns 5924 bytes_per_second=264.246M/s +BM_format_to_n_string_begin>/65536 236030 ns 236038 ns 2965 bytes_per_second=264.788M/s +BM_format_to_n_string_begin>/131072 471872 ns 471869 ns 1483 bytes_per_second=264.904M/s +BM_format_to_n_string_begin>/262144 944542 ns 944572 ns 741 bytes_per_second=264.67M/s +BM_format_to_n_string_begin>/524288 1888050 ns 1888100 ns 371 bytes_per_second=264.817M/s +BM_format_to_n_string_begin>/1048576 3775616 ns 3775727 ns 185 bytes_per_second=264.85M/s +BM_format_to_n_string_begin>/1 40.3 ns 40.3 ns 17379091 bytes_per_second=23.6694M/s +BM_format_to_n_string_begin>/2 43.9 ns 43.9 ns 15946552 bytes_per_second=43.4693M/s +BM_format_to_n_string_begin>/4 51.9 ns 51.9 ns 13487424 bytes_per_second=73.5031M/s +BM_format_to_n_string_begin>/8 73.3 ns 73.3 ns 9215691 bytes_per_second=104.12M/s +BM_format_to_n_string_begin>/16 121 ns 121 ns 5778434 bytes_per_second=126.08M/s +BM_format_to_n_string_begin>/32 224 ns 224 ns 3143133 bytes_per_second=135.977M/s +BM_format_to_n_string_begin>/64 420 ns 420 ns 1666379 bytes_per_second=145.231M/s +BM_format_to_n_string_begin>/128 855 ns 855 ns 833799 bytes_per_second=142.73M/s +BM_format_to_n_string_begin>/256 1652 ns 1652 ns 420409 bytes_per_second=147.823M/s +BM_format_to_n_string_begin>/512 3325 ns 3325 ns 210646 bytes_per_second=146.845M/s +BM_format_to_n_string_begin>/1024 6638 ns 6638 ns 105064 bytes_per_second=147.113M/s +BM_format_to_n_string_begin>/2048 13186 ns 13187 ns 53142 bytes_per_second=148.112M/s +BM_format_to_n_string_begin>/4096 26288 ns 26288 ns 26631 bytes_per_second=148.597M/s +BM_format_to_n_string_begin>/8192 52507 ns 52509 ns 13339 bytes_per_second=148.785M/s +BM_format_to_n_string_begin>/16384 104979 ns 104982 ns 6667 bytes_per_second=148.835M/s +BM_format_to_n_string_begin>/32768 210005 ns 210011 ns 3337 bytes_per_second=148.801M/s +BM_format_to_n_string_begin>/65536 419647 ns 419661 ns 1669 bytes_per_second=148.93M/s +BM_format_to_n_string_begin>/131072 844545 ns 844572 ns 828 bytes_per_second=148.004M/s +BM_format_to_n_string_begin>/262144 1799686 ns 1799569 ns 389 bytes_per_second=138.922M/s +BM_format_to_n_string_begin>/524288 3789620 ns 3789380 ns 185 bytes_per_second=131.948M/s +BM_format_to_n_string_begin>/1048576 7645913 ns 7645528 ns 92 bytes_per_second=130.795M/s +BM_format_to_n_string_span/1 39.6 ns 39.6 ns 17696577 bytes_per_second=24.1071M/s +BM_format_to_n_string_span/2 43.0 ns 43.0 ns 16492294 bytes_per_second=44.3735M/s +BM_format_to_n_string_span/4 50.5 ns 50.5 ns 13861445 bytes_per_second=75.6061M/s +BM_format_to_n_string_span/8 62.5 ns 62.5 ns 11248947 bytes_per_second=122.08M/s +BM_format_to_n_string_span/16 85.3 ns 85.3 ns 8192995 bytes_per_second=178.901M/s +BM_format_to_n_string_span/32 136 ns 136 ns 5141155 bytes_per_second=224.068M/s +BM_format_to_n_string_span/64 270 ns 270 ns 2586355 bytes_per_second=225.658M/s +BM_format_to_n_string_span/128 500 ns 500 ns 1399883 bytes_per_second=243.989M/s +BM_format_to_n_string_span/256 977 ns 977 ns 715951 bytes_per_second=249.816M/s +BM_format_to_n_string_span/512 1893 ns 1893 ns 370024 bytes_per_second=257.97M/s +BM_format_to_n_string_span/1024 3729 ns 3729 ns 187721 bytes_per_second=261.897M/s +BM_format_to_n_string_span/2048 7389 ns 7389 ns 94836 bytes_per_second=264.318M/s +BM_format_to_n_string_span/4096 14736 ns 14735 ns 47482 bytes_per_second=265.093M/s +BM_format_to_n_string_span/8192 29400 ns 29400 ns 23813 bytes_per_second=265.728M/s +BM_format_to_n_string_span/16384 59105 ns 59104 ns 11848 bytes_per_second=264.363M/s +BM_format_to_n_string_span/32768 118251 ns 118252 ns 5926 bytes_per_second=264.266M/s +BM_format_to_n_string_span/65536 236152 ns 236146 ns 2967 bytes_per_second=264.667M/s +BM_format_to_n_string_span/131072 472175 ns 472178 ns 1482 bytes_per_second=264.731M/s +BM_format_to_n_string_span/262144 944506 ns 944507 ns 741 bytes_per_second=264.688M/s +BM_format_to_n_string_span/524288 1887993 ns 1887982 ns 371 bytes_per_second=264.833M/s +BM_format_to_n_string_span/1048576 3775601 ns 3775586 ns 185 bytes_per_second=264.86M/s +BM_format_to_n_string_pointer/1 39.6 ns 39.6 ns 17680788 bytes_per_second=24.0822M/s +BM_format_to_n_string_pointer/2 43.0 ns 43.0 ns 16332095 bytes_per_second=44.3063M/s +BM_format_to_n_string_pointer/4 49.7 ns 49.7 ns 14071148 bytes_per_second=76.7004M/s +BM_format_to_n_string_pointer/8 66.0 ns 66.0 ns 10619536 bytes_per_second=115.541M/s +BM_format_to_n_string_pointer/16 85.7 ns 85.7 ns 8246325 bytes_per_second=178.061M/s +BM_format_to_n_string_pointer/32 136 ns 136 ns 5129247 bytes_per_second=223.671M/s +BM_format_to_n_string_pointer/64 274 ns 274 ns 2561199 bytes_per_second=223.126M/s +BM_format_to_n_string_pointer/128 507 ns 507 ns 1385644 bytes_per_second=240.956M/s +BM_format_to_n_string_pointer/256 977 ns 977 ns 715752 bytes_per_second=249.954M/s +BM_format_to_n_string_pointer/512 1891 ns 1891 ns 370268 bytes_per_second=258.269M/s +BM_format_to_n_string_pointer/1024 3725 ns 3725 ns 188001 bytes_per_second=262.169M/s +BM_format_to_n_string_pointer/2048 7385 ns 7385 ns 94777 bytes_per_second=264.472M/s +BM_format_to_n_string_pointer/4096 14728 ns 14728 ns 47508 bytes_per_second=265.233M/s +BM_format_to_n_string_pointer/8192 29401 ns 29401 ns 23780 bytes_per_second=265.724M/s +BM_format_to_n_string_pointer/16384 59740 ns 59740 ns 11787 bytes_per_second=261.549M/s +BM_format_to_n_string_pointer/32768 119647 ns 119647 ns 5835 bytes_per_second=261.185M/s +BM_format_to_n_string_pointer/65536 238928 ns 238925 ns 2927 bytes_per_second=261.589M/s +BM_format_to_n_string_pointer/131072 478268 ns 478269 ns 1463 bytes_per_second=261.359M/s +BM_format_to_n_string_pointer/262144 956928 ns 956935 ns 732 bytes_per_second=261.251M/s +BM_format_to_n_string_pointer/524288 1913400 ns 1913411 ns 366 bytes_per_second=261.313M/s +BM_format_to_n_string_pointer/1048576 3818215 ns 3818220 ns 183 bytes_per_second=261.902M/s +BM_format_to_n_string_back_inserter/1 44.6 ns 44.6 ns 15675018 bytes_per_second=85.4462M/s +BM_format_to_n_string_back_inserter/2 46.3 ns 46.3 ns 15126673 bytes_per_second=164.916M/s +BM_format_to_n_string_back_inserter/4 49.7 ns 49.7 ns 14090245 bytes_per_second=306.969M/s +BM_format_to_n_string_back_inserter/8 77.5 ns 77.5 ns 9045656 bytes_per_second=393.963M/s +BM_format_to_n_string_back_inserter/16 92.9 ns 92.9 ns 7552741 bytes_per_second=656.686M/s +BM_format_to_n_string_back_inserter/32 121 ns 121 ns 5805757 bytes_per_second=1011.99M/s +BM_format_to_n_string_back_inserter/64 183 ns 183 ns 3835045 bytes_per_second=1.30338G/s +BM_format_to_n_string_back_inserter/128 333 ns 333 ns 2105911 bytes_per_second=1.43314G/s +BM_format_to_n_string_back_inserter/256 670 ns 670 ns 1042249 bytes_per_second=1.42307G/s +BM_format_to_n_string_back_inserter/512 1263 ns 1263 ns 554146 bytes_per_second=1.50965G/s +BM_format_to_n_string_back_inserter/1024 2373 ns 2373 ns 295069 bytes_per_second=1.60778G/s +BM_format_to_n_string_back_inserter/2048 4541 ns 4541 ns 154101 bytes_per_second=1.68002G/s +BM_format_to_n_string_back_inserter/4096 8732 ns 8732 ns 79892 bytes_per_second=1.7474G/s +BM_format_to_n_string_back_inserter/8192 17209 ns 17209 ns 40665 bytes_per_second=1.77335G/s +BM_format_to_n_string_back_inserter/16384 35329 ns 35330 ns 19796 bytes_per_second=1.72759G/s +BM_format_to_n_string_back_inserter/32768 70616 ns 70616 ns 9913 bytes_per_second=1.72865G/s +BM_format_to_n_string_back_inserter/65536 142128 ns 142124 ns 4921 bytes_per_second=1.71781G/s +BM_format_to_n_string_back_inserter/131072 284796 ns 284798 ns 2458 bytes_per_second=1.71448G/s +BM_format_to_n_string_back_inserter/262144 580646 ns 580644 ns 1194 bytes_per_second=1.68186G/s +BM_format_to_n_string_back_inserter/524288 1230857 ns 1230802 ns 565 bytes_per_second=1.58687G/s +BM_format_to_n_string_back_inserter/1048576 2677365 ns 2677206 ns 259 bytes_per_second=1.45908G/s +BM_format_to_n_string_back_inserter>/1 62.6 ns 62.6 ns 11179052 bytes_per_second=60.9279M/s +BM_format_to_n_string_back_inserter>/2 63.4 ns 63.4 ns 11069702 bytes_per_second=120.342M/s +BM_format_to_n_string_back_inserter>/4 67.0 ns 67.0 ns 10473053 bytes_per_second=227.888M/s +BM_format_to_n_string_back_inserter>/8 72.2 ns 72.2 ns 9711918 bytes_per_second=422.503M/s +BM_format_to_n_string_back_inserter>/16 84.0 ns 84.0 ns 8343813 bytes_per_second=726.632M/s +BM_format_to_n_string_back_inserter>/32 117 ns 117 ns 5982430 bytes_per_second=1043.3M/s +BM_format_to_n_string_back_inserter>/64 179 ns 179 ns 3915497 bytes_per_second=1.33425G/s +BM_format_to_n_string_back_inserter>/128 317 ns 317 ns 2209097 bytes_per_second=1.50518G/s +BM_format_to_n_string_back_inserter>/256 577 ns 577 ns 1212290 bytes_per_second=1.65202G/s +BM_format_to_n_string_back_inserter>/512 1151 ns 1151 ns 608759 bytes_per_second=1.65652G/s +BM_format_to_n_string_back_inserter>/1024 2196 ns 2196 ns 319050 bytes_per_second=1.73723G/s +BM_format_to_n_string_back_inserter>/2048 4320 ns 4320 ns 162683 bytes_per_second=1.76603G/s +BM_format_to_n_string_back_inserter>/4096 8349 ns 8349 ns 83557 bytes_per_second=1.82752G/s +BM_format_to_n_string_back_inserter>/8192 16515 ns 16515 ns 42392 bytes_per_second=1.84791G/s +BM_format_to_n_string_back_inserter>/16384 34076 ns 34076 ns 20539 bytes_per_second=1.79116G/s +BM_format_to_n_string_back_inserter>/32768 67903 ns 67903 ns 10308 bytes_per_second=1.79771G/s +BM_format_to_n_string_back_inserter>/65536 136826 ns 136826 ns 5118 bytes_per_second=1.78431G/s +BM_format_to_n_string_back_inserter>/131072 271652 ns 271651 ns 2578 bytes_per_second=1.79745G/s +BM_format_to_n_string_back_inserter>/262144 554942 ns 554928 ns 1260 bytes_per_second=1.7598G/s +BM_format_to_n_string_back_inserter>/524288 1185361 ns 1185335 ns 589 bytes_per_second=1.64774G/s +BM_format_to_n_string_back_inserter>/1048576 2585476 ns 2585385 ns 270 bytes_per_second=1.5109G/s +BM_format_to_n_string_back_inserter>/1 55.3 ns 55.3 ns 12651922 bytes_per_second=69.0052M/s +BM_format_to_n_string_back_inserter>/2 70.8 ns 70.8 ns 9907684 bytes_per_second=107.829M/s +BM_format_to_n_string_back_inserter>/4 102 ns 102 ns 6891284 bytes_per_second=149.739M/s +BM_format_to_n_string_back_inserter>/8 171 ns 171 ns 4091972 bytes_per_second=178.862M/s +BM_format_to_n_string_back_inserter>/16 321 ns 321 ns 2199473 bytes_per_second=190.355M/s +BM_format_to_n_string_back_inserter>/32 635 ns 635 ns 1102692 bytes_per_second=192.179M/s +BM_format_to_n_string_back_inserter>/64 1224 ns 1224 ns 569797 bytes_per_second=199.44M/s +BM_format_to_n_string_back_inserter>/128 2393 ns 2393 ns 292583 bytes_per_second=204.038M/s +BM_format_to_n_string_back_inserter>/256 4761 ns 4761 ns 147069 bytes_per_second=205.122M/s +BM_format_to_n_string_back_inserter>/512 9516 ns 9516 ns 73572 bytes_per_second=205.237M/s +BM_format_to_n_string_back_inserter>/1024 19068 ns 19068 ns 36720 bytes_per_second=204.858M/s +BM_format_to_n_string_back_inserter>/2048 37957 ns 37957 ns 18438 bytes_per_second=205.827M/s +BM_format_to_n_string_back_inserter>/4096 76192 ns 76192 ns 9188 bytes_per_second=205.073M/s +BM_format_to_n_string_back_inserter>/8192 152768 ns 152769 ns 4579 bytes_per_second=204.557M/s +BM_format_to_n_string_back_inserter>/16384 305345 ns 305345 ns 2293 bytes_per_second=204.687M/s +BM_format_to_n_string_back_inserter>/32768 611084 ns 611079 ns 1140 bytes_per_second=204.556M/s +BM_format_to_n_string_back_inserter>/65536 1223328 ns 1223324 ns 568 bytes_per_second=204.361M/s +BM_format_to_n_string_back_inserter>/131072 2460265 ns 2460239 ns 284 bytes_per_second=203.232M/s +BM_format_to_n_string_back_inserter>/262144 5049334 ns 5049203 ns 132 bytes_per_second=198.051M/s +BM_format_to_n_string_back_inserter>/524288 10332440 ns 10331748 ns 63 bytes_per_second=193.578M/s +BM_format_to_n_string_back_inserter>/1048576 20957352 ns 20956612 ns 31 bytes_per_second=190.871M/s +BM_format_to_n_string_begin/1 39.2 ns 39.2 ns 17879339 bytes_per_second=97.3141M/s +BM_format_to_n_string_begin/2 41.1 ns 41.1 ns 17041536 bytes_per_second=185.649M/s +BM_format_to_n_string_begin/4 43.7 ns 43.7 ns 16042309 bytes_per_second=349.542M/s +BM_format_to_n_string_begin/8 58.9 ns 58.9 ns 12250179 bytes_per_second=517.901M/s +BM_format_to_n_string_begin/16 67.2 ns 67.2 ns 10412676 bytes_per_second=907.659M/s +BM_format_to_n_string_begin/32 89.1 ns 89.1 ns 7839512 bytes_per_second=1.33809G/s +BM_format_to_n_string_begin/64 151 ns 151 ns 4652677 bytes_per_second=1.58387G/s +BM_format_to_n_string_begin/128 254 ns 254 ns 2753719 bytes_per_second=1.87589G/s +BM_format_to_n_string_begin/256 463 ns 463 ns 1510495 bytes_per_second=2.0578G/s +BM_format_to_n_string_begin/512 883 ns 883 ns 793668 bytes_per_second=2.16121G/s +BM_format_to_n_string_begin/1024 1703 ns 1703 ns 410917 bytes_per_second=2.24023G/s +BM_format_to_n_string_begin/2048 3264 ns 3264 ns 214383 bytes_per_second=2.33733G/s +BM_format_to_n_string_begin/4096 7320 ns 7320 ns 95623 bytes_per_second=2.08453G/s +BM_format_to_n_string_begin/8192 14558 ns 14558 ns 48082 bytes_per_second=2.09627G/s +BM_format_to_n_string_begin/16384 29280 ns 29280 ns 23915 bytes_per_second=2.08456G/s +BM_format_to_n_string_begin/32768 60973 ns 60972 ns 11487 bytes_per_second=2.00207G/s +BM_format_to_n_string_begin/65536 121475 ns 121476 ns 5751 bytes_per_second=2.00979G/s +BM_format_to_n_string_begin/131072 243676 ns 243676 ns 2875 bytes_per_second=2.00382G/s +BM_format_to_n_string_begin/262144 488180 ns 488181 ns 1433 bytes_per_second=2.00041G/s +BM_format_to_n_string_begin/524288 996113 ns 996076 ns 703 bytes_per_second=1.96082G/s +BM_format_to_n_string_begin/1048576 2134772 ns 2134665 ns 328 bytes_per_second=1.82991G/s +BM_format_to_n_string_begin>/1 39.1 ns 39.1 ns 17931576 bytes_per_second=97.6593M/s +BM_format_to_n_string_begin>/2 40.8 ns 40.8 ns 17149621 bytes_per_second=186.975M/s +BM_format_to_n_string_begin>/4 43.6 ns 43.6 ns 16080705 bytes_per_second=350.288M/s +BM_format_to_n_string_begin>/8 56.4 ns 56.4 ns 12088317 bytes_per_second=541.257M/s +BM_format_to_n_string_begin>/16 66.3 ns 66.3 ns 10571245 bytes_per_second=920.672M/s +BM_format_to_n_string_begin>/32 87.4 ns 87.4 ns 8101473 bytes_per_second=1.36346G/s +BM_format_to_n_string_begin>/64 151 ns 151 ns 4649051 bytes_per_second=1.58291G/s +BM_format_to_n_string_begin>/128 254 ns 254 ns 2754766 bytes_per_second=1.87618G/s +BM_format_to_n_string_begin>/256 463 ns 463 ns 1509421 bytes_per_second=2.05827G/s +BM_format_to_n_string_begin>/512 884 ns 884 ns 789340 bytes_per_second=2.15795G/s +BM_format_to_n_string_begin>/1024 1704 ns 1704 ns 410693 bytes_per_second=2.23869G/s +BM_format_to_n_string_begin>/2048 3262 ns 3262 ns 214464 bytes_per_second=2.33858G/s +BM_format_to_n_string_begin>/4096 7326 ns 7326 ns 95559 bytes_per_second=2.08271G/s +BM_format_to_n_string_begin>/8192 14555 ns 14555 ns 48095 bytes_per_second=2.09674G/s +BM_format_to_n_string_begin>/16384 29272 ns 29272 ns 23916 bytes_per_second=2.08512G/s +BM_format_to_n_string_begin>/32768 60976 ns 60975 ns 11458 bytes_per_second=2.00196G/s +BM_format_to_n_string_begin>/65536 121478 ns 121476 ns 5766 bytes_per_second=2.00979G/s +BM_format_to_n_string_begin>/131072 243490 ns 243490 ns 2875 bytes_per_second=2.00535G/s +BM_format_to_n_string_begin>/262144 488261 ns 488260 ns 1434 bytes_per_second=2.00009G/s +BM_format_to_n_string_begin>/524288 996621 ns 996590 ns 703 bytes_per_second=1.95981G/s +BM_format_to_n_string_begin>/1048576 2134216 ns 2134176 ns 328 bytes_per_second=1.83033G/s +BM_format_to_n_string_begin>/1 38.4 ns 38.4 ns 18243097 bytes_per_second=99.3254M/s +BM_format_to_n_string_begin>/2 41.1 ns 41.1 ns 17009266 bytes_per_second=185.419M/s +BM_format_to_n_string_begin>/4 48.0 ns 48.0 ns 14589459 bytes_per_second=317.648M/s +BM_format_to_n_string_begin>/8 64.9 ns 64.9 ns 10787373 bytes_per_second=470.416M/s +BM_format_to_n_string_begin>/16 95.6 ns 95.6 ns 7327124 bytes_per_second=638.583M/s +BM_format_to_n_string_begin>/32 166 ns 166 ns 4204772 bytes_per_second=733.258M/s +BM_format_to_n_string_begin>/64 306 ns 306 ns 2285012 bytes_per_second=798.685M/s +BM_format_to_n_string_begin>/128 580 ns 580 ns 1207037 bytes_per_second=841.779M/s +BM_format_to_n_string_begin>/256 1138 ns 1138 ns 615218 bytes_per_second=858.325M/s +BM_format_to_n_string_begin>/512 2222 ns 2222 ns 312946 bytes_per_second=878.822M/s +BM_format_to_n_string_begin>/1024 4448 ns 4448 ns 157313 bytes_per_second=878.224M/s +BM_format_to_n_string_begin>/2048 8785 ns 8785 ns 79654 bytes_per_second=889.332M/s +BM_format_to_n_string_begin>/4096 17558 ns 17558 ns 39813 bytes_per_second=889.912M/s +BM_format_to_n_string_begin>/8192 34938 ns 34938 ns 20038 bytes_per_second=894.43M/s +BM_format_to_n_string_begin>/16384 69797 ns 69798 ns 10025 bytes_per_second=895.444M/s +BM_format_to_n_string_begin>/32768 139086 ns 139084 ns 5034 bytes_per_second=898.74M/s +BM_format_to_n_string_begin>/65536 278179 ns 278179 ns 2518 bytes_per_second=898.703M/s +BM_format_to_n_string_begin>/131072 570410 ns 570402 ns 1229 bytes_per_second=876.575M/s +BM_format_to_n_string_begin>/262144 1267253 ns 1267176 ns 553 bytes_per_second=789.156M/s +BM_format_to_n_string_begin>/524288 2678608 ns 2676752 ns 261 bytes_per_second=747.174M/s +BM_format_to_n_string_begin>/1048576 5430153 ns 5429907 ns 129 bytes_per_second=736.661M/s +BM_format_to_n_string_span/1 39.1 ns 39.1 ns 17899627 bytes_per_second=97.5535M/s +BM_format_to_n_string_span/2 40.9 ns 40.9 ns 17128988 bytes_per_second=186.725M/s +BM_format_to_n_string_span/4 43.0 ns 43.0 ns 16272362 bytes_per_second=354.635M/s +BM_format_to_n_string_span/8 52.3 ns 52.3 ns 13408073 bytes_per_second=583.639M/s +BM_format_to_n_string_span/16 64.5 ns 64.5 ns 10495015 bytes_per_second=946.856M/s +BM_format_to_n_string_span/32 87.8 ns 87.8 ns 7860044 bytes_per_second=1.35717G/s +BM_format_to_n_string_span/64 150 ns 150 ns 4667100 bytes_per_second=1.58553G/s +BM_format_to_n_string_span/128 254 ns 254 ns 2753794 bytes_per_second=1.87544G/s +BM_format_to_n_string_span/256 463 ns 463 ns 1511166 bytes_per_second=2.05882G/s +BM_format_to_n_string_span/512 884 ns 884 ns 791508 bytes_per_second=2.157G/s +BM_format_to_n_string_span/1024 1706 ns 1706 ns 410235 bytes_per_second=2.23586G/s +BM_format_to_n_string_span/2048 3264 ns 3264 ns 214458 bytes_per_second=2.33712G/s +BM_format_to_n_string_span/4096 7327 ns 7327 ns 95615 bytes_per_second=2.08253G/s +BM_format_to_n_string_span/8192 14552 ns 14552 ns 48105 bytes_per_second=2.09713G/s +BM_format_to_n_string_span/16384 29288 ns 29288 ns 23905 bytes_per_second=2.08397G/s +BM_format_to_n_string_span/32768 61005 ns 61006 ns 11482 bytes_per_second=2.00097G/s +BM_format_to_n_string_span/65536 121661 ns 121658 ns 5753 bytes_per_second=2.00678G/s +BM_format_to_n_string_span/131072 243695 ns 243696 ns 2868 bytes_per_second=2.00365G/s +BM_format_to_n_string_span/262144 488393 ns 488393 ns 1433 bytes_per_second=1.99954G/s +BM_format_to_n_string_span/524288 997654 ns 997622 ns 701 bytes_per_second=1.95778G/s +BM_format_to_n_string_span/1048576 2134304 ns 2134177 ns 328 bytes_per_second=1.83033G/s +BM_format_to_n_string_pointer/1 39.0 ns 39.0 ns 17966665 bytes_per_second=97.8969M/s +BM_format_to_n_string_pointer/2 40.8 ns 40.8 ns 17157092 bytes_per_second=186.93M/s +BM_format_to_n_string_pointer/4 43.3 ns 43.3 ns 16166107 bytes_per_second=352.34M/s +BM_format_to_n_string_pointer/8 53.4 ns 53.4 ns 13073661 bytes_per_second=571.621M/s +BM_format_to_n_string_pointer/16 65.3 ns 65.3 ns 10434709 bytes_per_second=934.368M/s +BM_format_to_n_string_pointer/32 87.7 ns 87.7 ns 8002398 bytes_per_second=1.35964G/s +BM_format_to_n_string_pointer/64 149 ns 149 ns 4695115 bytes_per_second=1.59786G/s +BM_format_to_n_string_pointer/128 251 ns 251 ns 2792277 bytes_per_second=1.89978G/s +BM_format_to_n_string_pointer/256 452 ns 452 ns 1550249 bytes_per_second=2.11155G/s +BM_format_to_n_string_pointer/512 873 ns 873 ns 800872 bytes_per_second=2.18362G/s +BM_format_to_n_string_pointer/1024 1696 ns 1696 ns 412577 bytes_per_second=2.24965G/s +BM_format_to_n_string_pointer/2048 3264 ns 3264 ns 214487 bytes_per_second=2.33775G/s +BM_format_to_n_string_pointer/4096 7339 ns 7339 ns 95428 bytes_per_second=2.07905G/s +BM_format_to_n_string_pointer/8192 14602 ns 14602 ns 47964 bytes_per_second=2.08992G/s +BM_format_to_n_string_pointer/16384 29362 ns 29363 ns 23839 bytes_per_second=2.07868G/s +BM_format_to_n_string_pointer/32768 61190 ns 61190 ns 11440 bytes_per_second=1.99493G/s +BM_format_to_n_string_pointer/65536 122093 ns 122093 ns 5721 bytes_per_second=1.99964G/s +BM_format_to_n_string_pointer/131072 244452 ns 244453 ns 2864 bytes_per_second=1.99745G/s +BM_format_to_n_string_pointer/262144 489964 ns 489967 ns 1429 bytes_per_second=1.99312G/s +BM_format_to_n_string_pointer/524288 1004479 ns 1004467 ns 697 bytes_per_second=1.94444G/s +BM_format_to_n_string_pointer/1048576 2147876 ns 2147791 ns 325 bytes_per_second=1.81873G/s diff --git a/libcxx/after-v2/formatted_size.txt b/libcxx/after-v2/formatted_size.txt new file mode 100644 --- /dev/null +++ b/libcxx/after-v2/formatted_size.txt @@ -0,0 +1,45 @@ +---------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +---------------------------------------------------------------------------------------------------- +BM_formatted_size_string/1 32.9 ns 32.9 ns 21299645 bytes_per_second=29.0269M/s +BM_formatted_size_string/2 17.0 ns 17.0 ns 41230756 bytes_per_second=112.292M/s +BM_formatted_size_string/4 9.42 ns 9.42 ns 74268012 bytes_per_second=404.775M/s +BM_formatted_size_string/8 5.97 ns 5.97 ns 117012288 bytes_per_second=1.24792G/s +BM_formatted_size_string/16 3.65 ns 3.65 ns 193623648 bytes_per_second=4.0794G/s +BM_formatted_size_string/32 2.78 ns 2.78 ns 251200768 bytes_per_second=10.7207G/s +BM_formatted_size_string/64 2.34 ns 2.34 ns 299106624 bytes_per_second=25.5077G/s +BM_formatted_size_string/128 2.04 ns 2.04 ns 343667712 bytes_per_second=58.5637G/s +BM_formatted_size_string/256 2.01 ns 2.01 ns 347318528 bytes_per_second=118.508G/s +BM_formatted_size_string/512 1.90 ns 1.90 ns 367739392 bytes_per_second=250.917G/s +BM_formatted_size_string/1024 1.87 ns 1.87 ns 374341632 bytes_per_second=510.908G/s +BM_formatted_size_string/2048 1.87 ns 1.87 ns 373684224 bytes_per_second=1018.38G/s +BM_formatted_size_string/4096 1.87 ns 1.87 ns 374644736 bytes_per_second=1.99733T/s +BM_formatted_size_string/8192 1.87 ns 1.87 ns 375414784 bytes_per_second=3.99068T/s +BM_formatted_size_string/16384 1.87 ns 1.87 ns 374669312 bytes_per_second=7.97138T/s +BM_formatted_size_string/32768 1.87 ns 1.87 ns 374308864 bytes_per_second=15.9274T/s +BM_formatted_size_string/65536 1.87 ns 1.87 ns 374145024 bytes_per_second=31.8561T/s +BM_formatted_size_string/131072 1.87 ns 1.87 ns 374341632 bytes_per_second=63.7177T/s +BM_formatted_size_string/262144 1.87 ns 1.87 ns 374341632 bytes_per_second=127.497T/s +BM_formatted_size_string/524288 1.87 ns 1.87 ns 374341632 bytes_per_second=254.812T/s +BM_formatted_size_string/1048576 1.87 ns 1.87 ns 374341632 bytes_per_second=509.957T/s +BM_formatted_size_string/1 32.6 ns 32.6 ns 21477612 bytes_per_second=117.09M/s +BM_formatted_size_string/2 16.7 ns 16.7 ns 41948414 bytes_per_second=457.108M/s +BM_formatted_size_string/4 8.76 ns 8.76 ns 79932524 bytes_per_second=1.70066G/s +BM_formatted_size_string/8 4.70 ns 4.70 ns 148856240 bytes_per_second=6.33691G/s +BM_formatted_size_string/16 2.70 ns 2.70 ns 259338992 bytes_per_second=22.0842G/s +BM_formatted_size_string/32 1.70 ns 1.70 ns 411589600 bytes_per_second=70.0658G/s +BM_formatted_size_string/64 1.35 ns 1.35 ns 516741888 bytes_per_second=176.504G/s +BM_formatted_size_string/128 1.14 ns 1.14 ns 615456512 bytes_per_second=418.985G/s +BM_formatted_size_string/256 1.03 ns 1.03 ns 682187520 bytes_per_second=929.724G/s +BM_formatted_size_string/512 0.959 ns 0.959 ns 729412096 bytes_per_second=1.94251T/s +BM_formatted_size_string/1024 0.905 ns 0.905 ns 773460992 bytes_per_second=4.11624T/s +BM_formatted_size_string/2048 0.879 ns 0.879 ns 796520448 bytes_per_second=8.47808T/s +BM_formatted_size_string/4096 0.866 ns 0.866 ns 807378944 bytes_per_second=17.2158T/s +BM_formatted_size_string/8192 0.859 ns 0.859 ns 815185920 bytes_per_second=34.7086T/s +BM_formatted_size_string/16384 0.857 ns 0.857 ns 816742400 bytes_per_second=69.5887T/s +BM_formatted_size_string/32768 0.855 ns 0.855 ns 819757056 bytes_per_second=139.459T/s +BM_formatted_size_string/65536 0.852 ns 0.852 ns 820314112 bytes_per_second=279.849T/s +BM_formatted_size_string/131072 0.850 ns 0.850 ns 823525376 bytes_per_second=560.798T/s +BM_formatted_size_string/262144 0.850 ns 0.850 ns 823656448 bytes_per_second=1121.77T/s +BM_formatted_size_string/524288 0.850 ns 0.850 ns 824180736 bytes_per_second=2.19239P/s +BM_formatted_size_string/1048576 0.851 ns 0.851 ns 823132160 bytes_per_second=4.37789P/s diff --git a/libcxx/after/format.txt b/libcxx/after/format.txt new file mode 100644 --- /dev/null +++ b/libcxx/after/format.txt @@ -0,0 +1,45 @@ +-------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +-------------------------------------------------------------------------------------------- +BM_format_string/1 39.9 ns 39.9 ns 17552546 bytes_per_second=23.8978M/s +BM_format_string/2 20.6 ns 20.6 ns 33916716 bytes_per_second=92.3976M/s +BM_format_string/4 10.9 ns 10.9 ns 64314816 bytes_per_second=350.237M/s +BM_format_string/8 6.26 ns 6.26 ns 111850632 bytes_per_second=1.18951G/s +BM_format_string/16 4.02 ns 4.02 ns 177472176 bytes_per_second=3.71019G/s +BM_format_string/32 3.42 ns 3.42 ns 204388576 bytes_per_second=8.71004G/s +BM_format_string/64 2.62 ns 2.62 ns 267209408 bytes_per_second=22.7567G/s +BM_format_string/128 2.21 ns 2.21 ns 316880512 bytes_per_second=54.0118G/s +BM_format_string/256 2.08 ns 2.08 ns 335966976 bytes_per_second=114.89G/s +BM_format_string/512 2.01 ns 2.01 ns 347648512 bytes_per_second=237.072G/s +BM_format_string/1024 1.98 ns 1.98 ns 353010688 bytes_per_second=480.737G/s +BM_format_string/2048 1.97 ns 1.97 ns 355923968 bytes_per_second=970.081G/s +BM_format_string/4096 1.93 ns 1.93 ns 358481920 bytes_per_second=1.93223T/s +BM_format_string/8192 1.91 ns 1.91 ns 366919680 bytes_per_second=3.90296T/s +BM_format_string/16384 1.90 ns 1.90 ns 367886336 bytes_per_second=7.83345T/s +BM_format_string/32768 1.90 ns 1.90 ns 368738304 bytes_per_second=15.711T/s +BM_format_string/65536 1.95 ns 1.95 ns 359530496 bytes_per_second=30.5949T/s +BM_format_string/131072 2.20 ns 2.20 ns 317587456 bytes_per_second=54.173T/s +BM_format_string/262144 2.31 ns 2.31 ns 302514176 bytes_per_second=103.03T/s +BM_format_string/524288 2.37 ns 2.37 ns 295698432 bytes_per_second=201.329T/s +BM_format_string/1048576 2.41 ns 2.41 ns 290455552 bytes_per_second=395.301T/s +BM_format_string/1 38.2 ns 38.2 ns 18356772 bytes_per_second=99.9782M/s +BM_format_string/2 19.6 ns 19.6 ns 35786460 bytes_per_second=390.058M/s +BM_format_string/4 10.2 ns 10.2 ns 68367388 bytes_per_second=1.45511G/s +BM_format_string/8 8.63 ns 8.63 ns 81115856 bytes_per_second=3.45447G/s +BM_format_string/16 4.77 ns 4.77 ns 146824224 bytes_per_second=12.4957G/s +BM_format_string/32 2.62 ns 2.62 ns 266898400 bytes_per_second=45.515G/s +BM_format_string/64 1.80 ns 1.80 ns 388845312 bytes_per_second=132.474G/s +BM_format_string/128 1.52 ns 1.52 ns 461058816 bytes_per_second=313.566G/s +BM_format_string/256 1.39 ns 1.39 ns 504096256 bytes_per_second=687.538G/s +BM_format_string/512 1.32 ns 1.32 ns 531521024 bytes_per_second=1.41323T/s +BM_format_string/1024 1.17 ns 1.17 ns 598879232 bytes_per_second=3.19636T/s +BM_format_string/2048 1.09 ns 1.09 ns 635691008 bytes_per_second=6.85522T/s +BM_format_string/4096 1.07 ns 1.07 ns 654000128 bytes_per_second=13.9686T/s +BM_format_string/8192 1.07 ns 1.07 ns 655245312 bytes_per_second=27.8821T/s +BM_format_string/16384 1.07 ns 1.07 ns 655556608 bytes_per_second=55.8097T/s +BM_format_string/32768 1.16 ns 1.16 ns 605552640 bytes_per_second=103.077T/s +BM_format_string/65536 1.16 ns 1.16 ns 604831744 bytes_per_second=206.065T/s +BM_format_string/131072 1.18 ns 1.18 ns 593231872 bytes_per_second=404.64T/s +BM_format_string/262144 3.11 ns 3.11 ns 225181696 bytes_per_second=306.269T/s +BM_format_string/524288 3.31 ns 3.31 ns 210763776 bytes_per_second=577.021T/s +BM_format_string/1048576 3.14 ns 3.14 ns 223346688 bytes_per_second=1.18499P/s diff --git a/libcxx/after/format_to.txt b/libcxx/after/format_to.txt new file mode 100644 --- /dev/null +++ b/libcxx/after/format_to.txt @@ -0,0 +1,339 @@ +-------------------------------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +-------------------------------------------------------------------------------------------------------------------------- +BM_format_to_string_back_inserter/1 38.3 ns 38.3 ns 18297734 bytes_per_second=24.9221M/s +BM_format_to_string_back_inserter/2 39.6 ns 39.6 ns 17702017 bytes_per_second=48.2203M/s +BM_format_to_string_back_inserter/4 43.3 ns 43.3 ns 16148184 bytes_per_second=88.0623M/s +BM_format_to_string_back_inserter/8 51.5 ns 51.5 ns 13478135 bytes_per_second=148.037M/s +BM_format_to_string_back_inserter/16 63.6 ns 63.6 ns 11014778 bytes_per_second=239.781M/s +BM_format_to_string_back_inserter/32 111 ns 111 ns 6324490 bytes_per_second=275.84M/s +BM_format_to_string_back_inserter/64 169 ns 169 ns 4136649 bytes_per_second=361.225M/s +BM_format_to_string_back_inserter/128 281 ns 281 ns 2488654 bytes_per_second=433.911M/s +BM_format_to_string_back_inserter/256 531 ns 531 ns 1318006 bytes_per_second=459.794M/s +BM_format_to_string_back_inserter/512 1031 ns 1031 ns 678675 bytes_per_second=473.402M/s +BM_format_to_string_back_inserter/1024 2071 ns 2071 ns 338055 bytes_per_second=471.489M/s +BM_format_to_string_back_inserter/2048 4069 ns 4070 ns 172076 bytes_per_second=479.94M/s +BM_format_to_string_back_inserter/4096 8011 ns 8011 ns 87261 bytes_per_second=487.591M/s +BM_format_to_string_back_inserter/8192 15811 ns 15811 ns 44282 bytes_per_second=494.117M/s +BM_format_to_string_back_inserter/16384 31318 ns 31318 ns 22343 bytes_per_second=498.92M/s +BM_format_to_string_back_inserter/32768 62396 ns 62396 ns 11231 bytes_per_second=500.831M/s +BM_format_to_string_back_inserter/65536 124432 ns 124433 ns 5624 bytes_per_second=502.279M/s +BM_format_to_string_back_inserter/131072 273737 ns 273738 ns 2559 bytes_per_second=456.64M/s +BM_format_to_string_back_inserter/262144 590603 ns 590608 ns 1186 bytes_per_second=423.293M/s +BM_format_to_string_back_inserter/524288 1227943 ns 1227924 ns 569 bytes_per_second=407.191M/s +BM_format_to_string_back_inserter/1048576 2511763 ns 2511778 ns 278 bytes_per_second=398.124M/s +BM_format_to_string_back_inserter>/1 55.6 ns 55.6 ns 12565404 bytes_per_second=17.1377M/s +BM_format_to_string_back_inserter>/2 56.8 ns 56.8 ns 12337051 bytes_per_second=33.5987M/s +BM_format_to_string_back_inserter>/4 58.1 ns 58.1 ns 12046940 bytes_per_second=65.6904M/s +BM_format_to_string_back_inserter>/8 61.7 ns 61.7 ns 11368464 bytes_per_second=123.715M/s +BM_format_to_string_back_inserter>/16 77.5 ns 77.5 ns 9031992 bytes_per_second=196.825M/s +BM_format_to_string_back_inserter>/32 106 ns 106 ns 6645752 bytes_per_second=289.254M/s +BM_format_to_string_back_inserter>/64 162 ns 162 ns 4313169 bytes_per_second=375.926M/s +BM_format_to_string_back_inserter>/128 277 ns 277 ns 2526260 bytes_per_second=440.374M/s +BM_format_to_string_back_inserter>/256 524 ns 524 ns 1334850 bytes_per_second=465.705M/s +BM_format_to_string_back_inserter>/512 1021 ns 1021 ns 685068 bytes_per_second=478.155M/s +BM_format_to_string_back_inserter>/1024 1986 ns 1986 ns 352390 bytes_per_second=491.777M/s +BM_format_to_string_back_inserter>/2048 3975 ns 3975 ns 176085 bytes_per_second=491.306M/s +BM_format_to_string_back_inserter>/4096 7869 ns 7869 ns 88385 bytes_per_second=496.426M/s +BM_format_to_string_back_inserter>/8192 15585 ns 15585 ns 44930 bytes_per_second=501.273M/s +BM_format_to_string_back_inserter>/16384 30986 ns 30984 ns 22590 bytes_per_second=504.287M/s +BM_format_to_string_back_inserter>/32768 62200 ns 62199 ns 11272 bytes_per_second=502.417M/s +BM_format_to_string_back_inserter>/65536 123241 ns 123241 ns 5677 bytes_per_second=507.136M/s +BM_format_to_string_back_inserter>/131072 247874 ns 247875 ns 2822 bytes_per_second=504.287M/s +BM_format_to_string_back_inserter>/262144 497793 ns 497798 ns 1408 bytes_per_second=502.212M/s +BM_format_to_string_back_inserter>/524288 993798 ns 993798 ns 704 bytes_per_second=503.12M/s +BM_format_to_string_back_inserter>/1048576 1992287 ns 1992284 ns 351 bytes_per_second=501.936M/s +BM_format_to_string_back_inserter>/1 50.3 ns 50.3 ns 13915126 bytes_per_second=18.9504M/s +BM_format_to_string_back_inserter>/2 65.8 ns 65.8 ns 10572505 bytes_per_second=28.9952M/s +BM_format_to_string_back_inserter>/4 93.5 ns 93.5 ns 7465609 bytes_per_second=40.7777M/s +BM_format_to_string_back_inserter>/8 158 ns 158 ns 4429982 bytes_per_second=48.2692M/s +BM_format_to_string_back_inserter>/16 303 ns 303 ns 2309806 bytes_per_second=50.3301M/s +BM_format_to_string_back_inserter>/32 612 ns 612 ns 1139033 bytes_per_second=49.8926M/s +BM_format_to_string_back_inserter>/64 1199 ns 1199 ns 583328 bytes_per_second=50.8887M/s +BM_format_to_string_back_inserter>/128 2357 ns 2357 ns 296934 bytes_per_second=51.78M/s +BM_format_to_string_back_inserter>/256 4708 ns 4708 ns 148658 bytes_per_second=51.855M/s +BM_format_to_string_back_inserter>/512 9395 ns 9395 ns 74320 bytes_per_second=51.9706M/s +BM_format_to_string_back_inserter>/1024 18924 ns 18924 ns 36981 bytes_per_second=51.6046M/s +BM_format_to_string_back_inserter>/2048 37908 ns 37909 ns 18438 bytes_per_second=51.5219M/s +BM_format_to_string_back_inserter>/4096 75932 ns 75932 ns 9210 bytes_per_second=51.4441M/s +BM_format_to_string_back_inserter>/8192 152343 ns 152342 ns 4591 bytes_per_second=51.2825M/s +BM_format_to_string_back_inserter>/16384 305396 ns 305398 ns 2289 bytes_per_second=51.1628M/s +BM_format_to_string_back_inserter>/32768 612232 ns 612233 ns 1135 bytes_per_second=51.0427M/s +BM_format_to_string_back_inserter>/65536 1225854 ns 1225862 ns 568 bytes_per_second=50.9845M/s +BM_format_to_string_back_inserter>/131072 2472250 ns 2472143 ns 282 bytes_per_second=50.5634M/s +BM_format_to_string_back_inserter>/262144 5160752 ns 5160599 ns 125 bytes_per_second=48.444M/s +BM_format_to_string_back_inserter>/524288 10549493 ns 10549294 ns 62 bytes_per_second=47.3965M/s +BM_format_to_string_back_inserter>/1048576 21394567 ns 21394175 ns 31 bytes_per_second=46.7417M/s +BM_format_to_string_begin/1 34.6 ns 34.6 ns 20197584 bytes_per_second=27.546M/s +BM_format_to_string_begin/2 35.5 ns 35.5 ns 19738899 bytes_per_second=53.7223M/s +BM_format_to_string_begin/4 38.5 ns 38.5 ns 18167622 bytes_per_second=98.9559M/s +BM_format_to_string_begin/8 46.2 ns 46.2 ns 15029843 bytes_per_second=165.086M/s +BM_format_to_string_begin/16 61.0 ns 61.0 ns 11479442 bytes_per_second=250.141M/s +BM_format_to_string_begin/32 88.0 ns 88.0 ns 7959176 bytes_per_second=346.796M/s +BM_format_to_string_begin/64 144 ns 144 ns 4839003 bytes_per_second=422.983M/s +BM_format_to_string_begin/128 261 ns 261 ns 2683079 bytes_per_second=467.708M/s +BM_format_to_string_begin/256 501 ns 501 ns 1396906 bytes_per_second=486.934M/s +BM_format_to_string_begin/512 969 ns 969 ns 723024 bytes_per_second=503.936M/s +BM_format_to_string_begin/1024 1908 ns 1908 ns 366716 bytes_per_second=511.772M/s +BM_format_to_string_begin/2048 3783 ns 3783 ns 185073 bytes_per_second=516.314M/s +BM_format_to_string_begin/4096 7525 ns 7525 ns 93043 bytes_per_second=519.092M/s +BM_format_to_string_begin/8192 15018 ns 15018 ns 46579 bytes_per_second=520.216M/s +BM_format_to_string_begin/16384 29981 ns 29981 ns 23355 bytes_per_second=521.156M/s +BM_format_to_string_begin/32768 59922 ns 59923 ns 11687 bytes_per_second=521.502M/s +BM_format_to_string_begin/65536 119961 ns 119961 ns 5840 bytes_per_second=521.001M/s +BM_format_to_string_begin/131072 240278 ns 240279 ns 2914 bytes_per_second=520.229M/s +BM_format_to_string_begin/262144 480418 ns 480418 ns 1457 bytes_per_second=520.38M/s +BM_format_to_string_begin/524288 960612 ns 960618 ns 729 bytes_per_second=520.498M/s +BM_format_to_string_begin/1048576 1920655 ns 1920668 ns 364 bytes_per_second=520.652M/s +BM_format_to_string_begin>/1 34.1 ns 34.1 ns 20528420 bytes_per_second=27.9482M/s +BM_format_to_string_begin>/2 35.3 ns 35.3 ns 19860807 bytes_per_second=54.0447M/s +BM_format_to_string_begin>/4 37.8 ns 37.8 ns 18518690 bytes_per_second=101.023M/s +BM_format_to_string_begin>/8 44.5 ns 44.5 ns 15755985 bytes_per_second=171.617M/s +BM_format_to_string_begin>/16 59.1 ns 59.1 ns 11870759 bytes_per_second=258.369M/s +BM_format_to_string_begin>/32 88.2 ns 88.2 ns 7934480 bytes_per_second=345.817M/s +BM_format_to_string_begin>/64 144 ns 144 ns 4837068 bytes_per_second=422.501M/s +BM_format_to_string_begin>/128 259 ns 259 ns 2702904 bytes_per_second=470.902M/s +BM_format_to_string_begin>/256 501 ns 501 ns 1398428 bytes_per_second=487.699M/s +BM_format_to_string_begin>/512 973 ns 973 ns 718651 bytes_per_second=501.745M/s +BM_format_to_string_begin>/1024 1908 ns 1908 ns 367022 bytes_per_second=511.732M/s +BM_format_to_string_begin>/2048 3784 ns 3784 ns 184867 bytes_per_second=516.212M/s +BM_format_to_string_begin>/4096 7521 ns 7521 ns 93032 bytes_per_second=519.346M/s +BM_format_to_string_begin>/8192 15022 ns 15022 ns 46623 bytes_per_second=520.073M/s +BM_format_to_string_begin>/16384 30003 ns 30004 ns 23356 bytes_per_second=520.769M/s +BM_format_to_string_begin>/32768 59954 ns 59955 ns 11653 bytes_per_second=521.223M/s +BM_format_to_string_begin>/65536 119858 ns 119859 ns 5839 bytes_per_second=521.446M/s +BM_format_to_string_begin>/131072 240172 ns 240174 ns 2916 bytes_per_second=520.455M/s +BM_format_to_string_begin>/262144 480655 ns 480656 ns 1457 bytes_per_second=520.123M/s +BM_format_to_string_begin>/524288 961120 ns 961129 ns 729 bytes_per_second=520.222M/s +BM_format_to_string_begin>/1048576 1921407 ns 1921424 ns 364 bytes_per_second=520.447M/s +BM_format_to_string_begin>/1 33.0 ns 33.0 ns 21213436 bytes_per_second=28.8988M/s +BM_format_to_string_begin>/2 36.9 ns 36.9 ns 18993880 bytes_per_second=51.7446M/s +BM_format_to_string_begin>/4 43.6 ns 43.6 ns 16067781 bytes_per_second=87.4242M/s +BM_format_to_string_begin>/8 57.2 ns 57.2 ns 12195567 bytes_per_second=133.393M/s +BM_format_to_string_begin>/16 92.0 ns 92.0 ns 7618123 bytes_per_second=165.897M/s +BM_format_to_string_begin>/32 158 ns 158 ns 4437366 bytes_per_second=193.543M/s +BM_format_to_string_begin>/64 309 ns 309 ns 2265496 bytes_per_second=197.631M/s +BM_format_to_string_begin>/128 594 ns 594 ns 1179077 bytes_per_second=205.655M/s +BM_format_to_string_begin>/256 1168 ns 1168 ns 599147 bytes_per_second=208.987M/s +BM_format_to_string_begin>/512 2301 ns 2301 ns 305086 bytes_per_second=212.183M/s +BM_format_to_string_begin>/1024 4632 ns 4632 ns 151347 bytes_per_second=210.827M/s +BM_format_to_string_begin>/2048 9090 ns 9090 ns 76823 bytes_per_second=214.865M/s +BM_format_to_string_begin>/4096 18109 ns 18109 ns 38640 bytes_per_second=215.703M/s +BM_format_to_string_begin>/8192 36229 ns 36229 ns 19320 bytes_per_second=215.639M/s +BM_format_to_string_begin>/16384 72710 ns 72710 ns 9632 bytes_per_second=214.895M/s +BM_format_to_string_begin>/32768 145139 ns 145137 ns 4826 bytes_per_second=215.314M/s +BM_format_to_string_begin>/65536 290048 ns 290050 ns 2414 bytes_per_second=215.48M/s +BM_format_to_string_begin>/131072 588021 ns 588008 ns 1191 bytes_per_second=212.582M/s +BM_format_to_string_begin>/262144 1277229 ns 1277195 ns 549 bytes_per_second=195.741M/s +BM_format_to_string_begin>/524288 2739051 ns 2738972 ns 255 bytes_per_second=182.55M/s +BM_format_to_string_begin>/1048576 5542334 ns 5542224 ns 126 bytes_per_second=180.433M/s +BM_format_to_string_span>/1 34.7 ns 34.7 ns 20178334 bytes_per_second=27.5127M/s +BM_format_to_string_span>/2 35.8 ns 35.8 ns 19545731 bytes_per_second=53.2821M/s +BM_format_to_string_span>/4 37.8 ns 37.8 ns 18552711 bytes_per_second=100.986M/s +BM_format_to_string_span>/8 43.8 ns 43.8 ns 15994609 bytes_per_second=174.035M/s +BM_format_to_string_span>/16 61.6 ns 61.6 ns 11602055 bytes_per_second=247.578M/s +BM_format_to_string_span>/32 92.0 ns 92.0 ns 7587325 bytes_per_second=331.68M/s +BM_format_to_string_span>/64 144 ns 144 ns 4852271 bytes_per_second=423.035M/s +BM_format_to_string_span>/128 260 ns 260 ns 2688344 bytes_per_second=468.949M/s +BM_format_to_string_span>/256 502 ns 502 ns 1392408 bytes_per_second=486.435M/s +BM_format_to_string_span>/512 969 ns 969 ns 721549 bytes_per_second=503.872M/s +BM_format_to_string_span>/1024 1916 ns 1916 ns 366264 bytes_per_second=509.804M/s +BM_format_to_string_span>/2048 3784 ns 3784 ns 184956 bytes_per_second=516.213M/s +BM_format_to_string_span>/4096 7525 ns 7525 ns 93046 bytes_per_second=519.117M/s +BM_format_to_string_span>/8192 15031 ns 15031 ns 46587 bytes_per_second=519.769M/s +BM_format_to_string_span>/16384 29995 ns 29995 ns 23339 bytes_per_second=520.913M/s +BM_format_to_string_span>/32768 59955 ns 59955 ns 11671 bytes_per_second=521.224M/s +BM_format_to_string_span>/65536 119880 ns 119880 ns 5839 bytes_per_second=521.356M/s +BM_format_to_string_span>/131072 240239 ns 240242 ns 2916 bytes_per_second=520.31M/s +BM_format_to_string_span>/262144 480355 ns 480359 ns 1457 bytes_per_second=520.444M/s +BM_format_to_string_span>/524288 960729 ns 960735 ns 729 bytes_per_second=520.435M/s +BM_format_to_string_span>/1048576 1921211 ns 1921219 ns 364 bytes_per_second=520.503M/s +BM_format_to_string_pointer/1 34.6 ns 34.6 ns 20230438 bytes_per_second=27.5805M/s +BM_format_to_string_pointer/2 35.7 ns 35.7 ns 19609755 bytes_per_second=53.473M/s +BM_format_to_string_pointer/4 37.9 ns 37.9 ns 18463087 bytes_per_second=100.689M/s +BM_format_to_string_pointer/8 44.8 ns 44.8 ns 15654961 bytes_per_second=170.431M/s +BM_format_to_string_pointer/16 59.0 ns 59.0 ns 11867159 bytes_per_second=258.478M/s +BM_format_to_string_pointer/32 88.1 ns 88.1 ns 7961220 bytes_per_second=346.458M/s +BM_format_to_string_pointer/64 144 ns 144 ns 4857587 bytes_per_second=423.585M/s +BM_format_to_string_pointer/128 260 ns 260 ns 2686681 bytes_per_second=468.801M/s +BM_format_to_string_pointer/256 501 ns 501 ns 1397163 bytes_per_second=487.15M/s +BM_format_to_string_pointer/512 968 ns 968 ns 722208 bytes_per_second=504.553M/s +BM_format_to_string_pointer/1024 1909 ns 1909 ns 366915 bytes_per_second=511.589M/s +BM_format_to_string_pointer/2048 3783 ns 3783 ns 185111 bytes_per_second=516.253M/s +BM_format_to_string_pointer/4096 7521 ns 7521 ns 92968 bytes_per_second=519.353M/s +BM_format_to_string_pointer/8192 15026 ns 15026 ns 46583 bytes_per_second=519.928M/s +BM_format_to_string_pointer/16384 29975 ns 29976 ns 23343 bytes_per_second=521.257M/s +BM_format_to_string_pointer/32768 59987 ns 59987 ns 11679 bytes_per_second=520.946M/s +BM_format_to_string_pointer/65536 119939 ns 119939 ns 5837 bytes_per_second=521.098M/s +BM_format_to_string_pointer/131072 240083 ns 240085 ns 2914 bytes_per_second=520.648M/s +BM_format_to_string_pointer/262144 480364 ns 480368 ns 1458 bytes_per_second=520.435M/s +BM_format_to_string_pointer/524288 960556 ns 960561 ns 729 bytes_per_second=520.529M/s +BM_format_to_string_pointer/1048576 1920520 ns 1920524 ns 365 bytes_per_second=520.691M/s +BM_format_to_string_back_inserter/1 37.8 ns 37.8 ns 18537417 bytes_per_second=101.038M/s +BM_format_to_string_back_inserter/2 40.0 ns 40.0 ns 17501010 bytes_per_second=190.847M/s +BM_format_to_string_back_inserter/4 41.8 ns 41.8 ns 16739748 bytes_per_second=365.009M/s +BM_format_to_string_back_inserter/8 69.9 ns 69.9 ns 9984053 bytes_per_second=436.58M/s +BM_format_to_string_back_inserter/16 78.4 ns 78.4 ns 8891739 bytes_per_second=778.932M/s +BM_format_to_string_back_inserter/32 82.5 ns 82.5 ns 8493275 bytes_per_second=1.44559G/s +BM_format_to_string_back_inserter/64 115 ns 115 ns 6098311 bytes_per_second=2.06542G/s +BM_format_to_string_back_inserter/128 195 ns 195 ns 3587099 bytes_per_second=2.445G/s +BM_format_to_string_back_inserter/256 380 ns 380 ns 1844174 bytes_per_second=2.51115G/s +BM_format_to_string_back_inserter/512 719 ns 719 ns 969884 bytes_per_second=2.65445G/s +BM_format_to_string_back_inserter/1024 1286 ns 1286 ns 544212 bytes_per_second=2.96597G/s +BM_format_to_string_back_inserter/2048 2349 ns 2349 ns 298174 bytes_per_second=3.24784G/s +BM_format_to_string_back_inserter/4096 4592 ns 4592 ns 152163 bytes_per_second=3.3229G/s +BM_format_to_string_back_inserter/8192 9003 ns 9003 ns 77723 bytes_per_second=3.38972G/s +BM_format_to_string_back_inserter/16384 17924 ns 17924 ns 39067 bytes_per_second=3.40521G/s +BM_format_to_string_back_inserter/32768 37917 ns 37917 ns 18471 bytes_per_second=3.21945G/s +BM_format_to_string_back_inserter/65536 78954 ns 78954 ns 8873 bytes_per_second=3.09218G/s +BM_format_to_string_back_inserter/131072 156950 ns 156950 ns 4462 bytes_per_second=3.11106G/s +BM_format_to_string_back_inserter/262144 802909 ns 802872 ns 871 bytes_per_second=1.21634G/s +BM_format_to_string_back_inserter/524288 1725324 ns 1725150 ns 406 bytes_per_second=1.13215G/s +BM_format_to_string_back_inserter/1048576 3253046 ns 3252960 ns 215 bytes_per_second=1.20083G/s +BM_format_to_string_back_inserter>/1 55.1 ns 55.1 ns 12689397 bytes_per_second=69.205M/s +BM_format_to_string_back_inserter>/2 55.9 ns 55.9 ns 12488871 bytes_per_second=136.466M/s +BM_format_to_string_back_inserter>/4 57.9 ns 57.9 ns 12070709 bytes_per_second=263.492M/s +BM_format_to_string_back_inserter>/8 60.1 ns 60.1 ns 11651746 bytes_per_second=507.803M/s +BM_format_to_string_back_inserter>/16 64.6 ns 64.6 ns 10810646 bytes_per_second=944.52M/s +BM_format_to_string_back_inserter>/32 76.4 ns 76.4 ns 9081671 bytes_per_second=1.56116G/s +BM_format_to_string_back_inserter>/64 106 ns 106 ns 6597894 bytes_per_second=2.24352G/s +BM_format_to_string_back_inserter>/128 188 ns 188 ns 3730743 bytes_per_second=2.54209G/s +BM_format_to_string_back_inserter>/256 332 ns 332 ns 2105112 bytes_per_second=2.87003G/s +BM_format_to_string_back_inserter>/512 617 ns 617 ns 1137556 bytes_per_second=3.09093G/s +BM_format_to_string_back_inserter>/1024 1150 ns 1150 ns 608930 bytes_per_second=3.31816G/s +BM_format_to_string_back_inserter>/2048 2091 ns 2091 ns 335362 bytes_per_second=3.64914G/s +BM_format_to_string_back_inserter>/4096 4226 ns 4226 ns 165527 bytes_per_second=3.61034G/s +BM_format_to_string_back_inserter>/8192 9085 ns 9085 ns 76652 bytes_per_second=3.35916G/s +BM_format_to_string_back_inserter>/16384 16742 ns 16743 ns 41784 bytes_per_second=3.64551G/s +BM_format_to_string_back_inserter>/32768 35995 ns 35995 ns 19446 bytes_per_second=3.39134G/s +BM_format_to_string_back_inserter>/65536 75538 ns 75538 ns 9274 bytes_per_second=3.232G/s +BM_format_to_string_back_inserter>/131072 147954 ns 147953 ns 4732 bytes_per_second=3.30024G/s +BM_format_to_string_back_inserter>/262144 303051 ns 303051 ns 2311 bytes_per_second=3.22243G/s +BM_format_to_string_back_inserter>/524288 616691 ns 616675 ns 1131 bytes_per_second=3.16719G/s +BM_format_to_string_back_inserter>/1048576 1484683 ns 1484651 ns 467 bytes_per_second=2.63109G/s +BM_format_to_string_back_inserter>/1 50.0 ns 50.0 ns 14002165 bytes_per_second=76.3212M/s +BM_format_to_string_back_inserter>/2 64.4 ns 64.4 ns 10876437 bytes_per_second=118.495M/s +BM_format_to_string_back_inserter>/4 91.3 ns 91.3 ns 7668867 bytes_per_second=167.147M/s +BM_format_to_string_back_inserter>/8 177 ns 177 ns 3963762 bytes_per_second=172.615M/s +BM_format_to_string_back_inserter>/16 310 ns 310 ns 2292012 bytes_per_second=197.185M/s +BM_format_to_string_back_inserter>/32 609 ns 609 ns 1148670 bytes_per_second=200.313M/s +BM_format_to_string_back_inserter>/64 1163 ns 1163 ns 601650 bytes_per_second=209.898M/s +BM_format_to_string_back_inserter>/128 2293 ns 2293 ns 304923 bytes_per_second=212.933M/s +BM_format_to_string_back_inserter>/256 4517 ns 4517 ns 155378 bytes_per_second=216.191M/s +BM_format_to_string_back_inserter>/512 8932 ns 8932 ns 78212 bytes_per_second=218.667M/s +BM_format_to_string_back_inserter>/1024 18027 ns 18027 ns 38780 bytes_per_second=216.689M/s +BM_format_to_string_back_inserter>/2048 35994 ns 35994 ns 19454 bytes_per_second=217.049M/s +BM_format_to_string_back_inserter>/4096 72149 ns 72150 ns 9696 bytes_per_second=216.562M/s +BM_format_to_string_back_inserter>/8192 144667 ns 144667 ns 4838 bytes_per_second=216.013M/s +BM_format_to_string_back_inserter>/16384 290098 ns 290095 ns 2413 bytes_per_second=215.447M/s +BM_format_to_string_back_inserter>/32768 579696 ns 579696 ns 1198 bytes_per_second=215.63M/s +BM_format_to_string_back_inserter>/65536 1159696 ns 1159705 ns 600 bytes_per_second=215.572M/s +BM_format_to_string_back_inserter>/131072 2332802 ns 2332783 ns 299 bytes_per_second=214.336M/s +BM_format_to_string_back_inserter>/262144 4785784 ns 4785471 ns 134 bytes_per_second=208.966M/s +BM_format_to_string_back_inserter>/524288 9754347 ns 9753912 ns 66 bytes_per_second=205.046M/s +BM_format_to_string_back_inserter>/1048576 19803208 ns 19802730 ns 33 bytes_per_second=201.992M/s +BM_format_to_string_begin/1 34.5 ns 34.5 ns 20281891 bytes_per_second=110.444M/s +BM_format_to_string_begin/2 35.3 ns 35.3 ns 19824652 bytes_per_second=216.079M/s +BM_format_to_string_begin/4 36.7 ns 36.7 ns 19041818 bytes_per_second=415.284M/s +BM_format_to_string_begin/8 38.8 ns 38.8 ns 18055435 bytes_per_second=786.436M/s +BM_format_to_string_begin/16 43.8 ns 43.8 ns 15963388 bytes_per_second=1.35968G/s +BM_format_to_string_begin/32 62.4 ns 62.4 ns 11247052 bytes_per_second=1.90908G/s +BM_format_to_string_begin/64 83.4 ns 83.4 ns 8423439 bytes_per_second=2.85966G/s +BM_format_to_string_begin/128 132 ns 132 ns 5295989 bytes_per_second=3.60451G/s +BM_format_to_string_begin/256 230 ns 230 ns 3035360 bytes_per_second=4.14004G/s +BM_format_to_string_begin/512 434 ns 434 ns 1612701 bytes_per_second=4.39135G/s +BM_format_to_string_begin/1024 825 ns 825 ns 849783 bytes_per_second=4.62478G/s +BM_format_to_string_begin/2048 1626 ns 1626 ns 430915 bytes_per_second=4.69227G/s +BM_format_to_string_begin/4096 3233 ns 3233 ns 216577 bytes_per_second=4.71931G/s +BM_format_to_string_begin/8192 6758 ns 6758 ns 103013 bytes_per_second=4.51585G/s +BM_format_to_string_begin/16384 13845 ns 13846 ns 50585 bytes_per_second=4.4083G/s +BM_format_to_string_begin/32768 28775 ns 28775 ns 24333 bytes_per_second=4.24228G/s +BM_format_to_string_begin/65536 58631 ns 58631 ns 11929 bytes_per_second=4.16403G/s +BM_format_to_string_begin/131072 115225 ns 115225 ns 6069 bytes_per_second=4.23762G/s +BM_format_to_string_begin/262144 233032 ns 233032 ns 3003 bytes_per_second=4.19068G/s +BM_format_to_string_begin/524288 471247 ns 471246 ns 1486 bytes_per_second=4.14459G/s +BM_format_to_string_begin/1048576 991355 ns 991320 ns 705 bytes_per_second=3.94045G/s +BM_format_to_string_begin>/1 34.1 ns 34.1 ns 20541846 bytes_per_second=111.951M/s +BM_format_to_string_begin>/2 35.1 ns 35.1 ns 19914765 bytes_per_second=217.172M/s +BM_format_to_string_begin>/4 37.0 ns 37.0 ns 18931622 bytes_per_second=412.177M/s +BM_format_to_string_begin>/8 38.5 ns 38.5 ns 18206615 bytes_per_second=792.961M/s +BM_format_to_string_begin>/16 43.3 ns 43.3 ns 16206824 bytes_per_second=1.37653G/s +BM_format_to_string_begin>/32 54.6 ns 54.6 ns 12855404 bytes_per_second=2.18355G/s +BM_format_to_string_begin>/64 83.2 ns 83.2 ns 8427628 bytes_per_second=2.86704G/s +BM_format_to_string_begin>/128 137 ns 137 ns 5114252 bytes_per_second=3.48455G/s +BM_format_to_string_begin>/256 230 ns 230 ns 3036360 bytes_per_second=4.13775G/s +BM_format_to_string_begin>/512 435 ns 435 ns 1612647 bytes_per_second=4.38954G/s +BM_format_to_string_begin>/1024 826 ns 826 ns 849588 bytes_per_second=4.62076G/s +BM_format_to_string_begin>/2048 1626 ns 1626 ns 429926 bytes_per_second=4.69199G/s +BM_format_to_string_begin>/4096 3230 ns 3230 ns 216674 bytes_per_second=4.72453G/s +BM_format_to_string_begin>/8192 6746 ns 6747 ns 103669 bytes_per_second=4.52345G/s +BM_format_to_string_begin>/16384 13841 ns 13841 ns 50591 bytes_per_second=4.40978G/s +BM_format_to_string_begin>/32768 28767 ns 28767 ns 24342 bytes_per_second=4.24339G/s +BM_format_to_string_begin>/65536 58620 ns 58620 ns 11947 bytes_per_second=4.16482G/s +BM_format_to_string_begin>/131072 115254 ns 115254 ns 6076 bytes_per_second=4.23658G/s +BM_format_to_string_begin>/262144 232975 ns 232975 ns 3005 bytes_per_second=4.19171G/s +BM_format_to_string_begin>/524288 471006 ns 471007 ns 1486 bytes_per_second=4.1467G/s +BM_format_to_string_begin>/1048576 991621 ns 991587 ns 703 bytes_per_second=3.93939G/s +BM_format_to_string_begin>/1 36.5 ns 36.5 ns 19199916 bytes_per_second=104.579M/s +BM_format_to_string_begin>/2 37.5 ns 37.5 ns 18062606 bytes_per_second=203.673M/s +BM_format_to_string_begin>/4 42.5 ns 42.5 ns 16417795 bytes_per_second=359.091M/s +BM_format_to_string_begin>/8 56.3 ns 56.3 ns 12433436 bytes_per_second=542.425M/s +BM_format_to_string_begin>/16 80.8 ns 80.8 ns 8668694 bytes_per_second=755.499M/s +BM_format_to_string_begin>/32 133 ns 133 ns 5266500 bytes_per_second=918.575M/s +BM_format_to_string_begin>/64 240 ns 240 ns 2804292 bytes_per_second=1018.8M/s +BM_format_to_string_begin>/128 457 ns 457 ns 1565280 bytes_per_second=1069.56M/s +BM_format_to_string_begin>/256 862 ns 862 ns 812582 bytes_per_second=1.10668G/s +BM_format_to_string_begin>/512 1700 ns 1700 ns 409949 bytes_per_second=1.12166G/s +BM_format_to_string_begin>/1024 3378 ns 3378 ns 207121 bytes_per_second=1.12942G/s +BM_format_to_string_begin>/2048 6692 ns 6692 ns 104555 bytes_per_second=1.14008G/s +BM_format_to_string_begin>/4096 13358 ns 13358 ns 52437 bytes_per_second=1.14227G/s +BM_format_to_string_begin>/8192 26959 ns 26959 ns 25948 bytes_per_second=1.13198G/s +BM_format_to_string_begin>/16384 53571 ns 53570 ns 13043 bytes_per_second=1.13936G/s +BM_format_to_string_begin>/32768 107623 ns 107623 ns 6508 bytes_per_second=1.13423G/s +BM_format_to_string_begin>/65536 215018 ns 215018 ns 3255 bytes_per_second=1.13544G/s +BM_format_to_string_begin>/131072 442427 ns 442427 ns 1583 bytes_per_second=1.10364G/s +BM_format_to_string_begin>/262144 1009456 ns 1009373 ns 696 bytes_per_second=990.714M/s +BM_format_to_string_begin>/524288 2265916 ns 2265825 ns 309 bytes_per_second=882.681M/s +BM_format_to_string_begin>/1048576 4669321 ns 4669175 ns 150 bytes_per_second=856.682M/s +BM_format_to_string_span>/1 34.6 ns 34.6 ns 20233040 bytes_per_second=110.257M/s +BM_format_to_string_span>/2 35.4 ns 35.4 ns 19775495 bytes_per_second=215.557M/s +BM_format_to_string_span>/4 36.4 ns 36.4 ns 19223533 bytes_per_second=419.165M/s +BM_format_to_string_span>/8 39.3 ns 39.3 ns 17783865 bytes_per_second=776.261M/s +BM_format_to_string_span>/16 43.8 ns 43.8 ns 15975236 bytes_per_second=1.36128G/s +BM_format_to_string_span>/32 56.1 ns 56.1 ns 12462031 bytes_per_second=2.12367G/s +BM_format_to_string_span>/64 83.1 ns 83.1 ns 8447286 bytes_per_second=2.86877G/s +BM_format_to_string_span>/128 132 ns 132 ns 5320176 bytes_per_second=3.61368G/s +BM_format_to_string_span>/256 230 ns 230 ns 3045597 bytes_per_second=4.14673G/s +BM_format_to_string_span>/512 434 ns 434 ns 1613670 bytes_per_second=4.39676G/s +BM_format_to_string_span>/1024 825 ns 825 ns 846942 bytes_per_second=4.62245G/s +BM_format_to_string_span>/2048 1626 ns 1626 ns 431064 bytes_per_second=4.69109G/s +BM_format_to_string_span>/4096 3238 ns 3238 ns 216619 bytes_per_second=4.71305G/s +BM_format_to_string_span>/8192 6755 ns 6755 ns 103511 bytes_per_second=4.51804G/s +BM_format_to_string_span>/16384 13837 ns 13837 ns 50548 bytes_per_second=4.41097G/s +BM_format_to_string_span>/32768 28732 ns 28732 ns 24346 bytes_per_second=4.24851G/s +BM_format_to_string_span>/65536 58648 ns 58648 ns 11920 bytes_per_second=4.16278G/s +BM_format_to_string_span>/131072 116956 ns 116956 ns 5985 bytes_per_second=4.17491G/s +BM_format_to_string_span>/262144 233795 ns 233796 ns 2994 bytes_per_second=4.17699G/s +BM_format_to_string_span>/524288 470346 ns 470342 ns 1488 bytes_per_second=4.15257G/s +BM_format_to_string_span>/1048576 991258 ns 991218 ns 706 bytes_per_second=3.94086G/s +BM_format_to_string_pointer/1 35.0 ns 35.0 ns 19994311 bytes_per_second=108.995M/s +BM_format_to_string_pointer/2 35.8 ns 35.8 ns 19542372 bytes_per_second=213.214M/s +BM_format_to_string_pointer/4 36.9 ns 36.9 ns 18956243 bytes_per_second=413.022M/s +BM_format_to_string_pointer/8 38.8 ns 38.8 ns 18045335 bytes_per_second=787.031M/s +BM_format_to_string_pointer/16 43.5 ns 43.5 ns 16093718 bytes_per_second=1.37087G/s +BM_format_to_string_pointer/32 57.7 ns 57.7 ns 12151874 bytes_per_second=2.06477G/s +BM_format_to_string_pointer/64 81.7 ns 81.7 ns 8557572 bytes_per_second=2.9191G/s +BM_format_to_string_pointer/128 129 ns 129 ns 5415244 bytes_per_second=3.68752G/s +BM_format_to_string_pointer/256 232 ns 232 ns 3017067 bytes_per_second=4.11823G/s +BM_format_to_string_pointer/512 428 ns 428 ns 1638069 bytes_per_second=4.45898G/s +BM_format_to_string_pointer/1024 812 ns 812 ns 862732 bytes_per_second=4.69599G/s +BM_format_to_string_pointer/2048 1594 ns 1594 ns 439064 bytes_per_second=4.7861G/s +BM_format_to_string_pointer/4096 3194 ns 3194 ns 219079 bytes_per_second=4.77722G/s +BM_format_to_string_pointer/8192 6651 ns 6651 ns 105285 bytes_per_second=4.58822G/s +BM_format_to_string_pointer/16384 13820 ns 13820 ns 50664 bytes_per_second=4.41656G/s +BM_format_to_string_pointer/32768 28399 ns 28399 ns 24641 bytes_per_second=4.2984G/s +BM_format_to_string_pointer/65536 57662 ns 57663 ns 12133 bytes_per_second=4.23394G/s +BM_format_to_string_pointer/131072 115536 ns 115537 ns 6063 bytes_per_second=4.2262G/s +BM_format_to_string_pointer/262144 230531 ns 230532 ns 3035 bytes_per_second=4.23613G/s +BM_format_to_string_pointer/524288 463167 ns 463158 ns 1511 bytes_per_second=4.21698G/s +BM_format_to_string_pointer/1048576 980395 ns 980365 ns 716 bytes_per_second=3.98449G/s diff --git a/libcxx/after/format_to_n.txt b/libcxx/after/format_to_n.txt new file mode 100644 --- /dev/null +++ b/libcxx/after/format_to_n.txt @@ -0,0 +1,339 @@ +---------------------------------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +---------------------------------------------------------------------------------------------------------------------------- +BM_format_to_n_string_back_inserter/1 43.0 ns 43.0 ns 16298933 bytes_per_second=22.198M/s +BM_format_to_n_string_back_inserter/2 45.5 ns 45.5 ns 15381606 bytes_per_second=41.8941M/s +BM_format_to_n_string_back_inserter/4 54.1 ns 54.0 ns 12978723 bytes_per_second=70.592M/s +BM_format_to_n_string_back_inserter/8 68.1 ns 68.0 ns 10284442 bytes_per_second=112.132M/s +BM_format_to_n_string_back_inserter/16 94.7 ns 94.7 ns 7403981 bytes_per_second=161.178M/s +BM_format_to_n_string_back_inserter/32 172 ns 172 ns 4074932 bytes_per_second=177.665M/s +BM_format_to_n_string_back_inserter/64 286 ns 286 ns 2444046 bytes_per_second=213.33M/s +BM_format_to_n_string_back_inserter/128 533 ns 533 ns 1313292 bytes_per_second=229.217M/s +BM_format_to_n_string_back_inserter/256 1002 ns 1002 ns 696601 bytes_per_second=243.701M/s +BM_format_to_n_string_back_inserter/512 1969 ns 1969 ns 355734 bytes_per_second=248.023M/s +BM_format_to_n_string_back_inserter/1024 3953 ns 3951 ns 177228 bytes_per_second=247.158M/s +BM_format_to_n_string_back_inserter/2048 7819 ns 7816 ns 89533 bytes_per_second=249.886M/s +BM_format_to_n_string_back_inserter/4096 15460 ns 15454 ns 45297 bytes_per_second=252.76M/s +BM_format_to_n_string_back_inserter/8192 30744 ns 30733 ns 22775 bytes_per_second=254.209M/s +BM_format_to_n_string_back_inserter/16384 61132 ns 61111 ns 11454 bytes_per_second=255.684M/s +BM_format_to_n_string_back_inserter/32768 122016 ns 121965 ns 5740 bytes_per_second=256.221M/s +BM_format_to_n_string_back_inserter/65536 244331 ns 244234 ns 2867 bytes_per_second=255.902M/s +BM_format_to_n_string_back_inserter/131072 489019 ns 488797 ns 1432 bytes_per_second=255.73M/s +BM_format_to_n_string_back_inserter/262144 979745 ns 979327 ns 714 bytes_per_second=255.277M/s +BM_format_to_n_string_back_inserter/524288 1960153 ns 1959250 ns 357 bytes_per_second=255.2M/s +BM_format_to_n_string_back_inserter/1048576 3934827 ns 3934722 ns 178 bytes_per_second=254.148M/s +BM_format_to_n_string_back_inserter>/1 58.5 ns 58.5 ns 11961042 bytes_per_second=16.2924M/s +BM_format_to_n_string_back_inserter>/2 60.0 ns 60.0 ns 11656723 bytes_per_second=31.7849M/s +BM_format_to_n_string_back_inserter>/4 64.8 ns 64.8 ns 10818360 bytes_per_second=58.8805M/s +BM_format_to_n_string_back_inserter>/8 79.6 ns 79.6 ns 8782721 bytes_per_second=95.8942M/s +BM_format_to_n_string_back_inserter>/16 109 ns 109 ns 6452654 bytes_per_second=140.555M/s +BM_format_to_n_string_back_inserter>/32 166 ns 166 ns 4216820 bytes_per_second=183.972M/s +BM_format_to_n_string_back_inserter>/64 280 ns 280 ns 2510690 bytes_per_second=218.246M/s +BM_format_to_n_string_back_inserter>/128 524 ns 524 ns 1333880 bytes_per_second=232.824M/s +BM_format_to_n_string_back_inserter>/256 995 ns 995 ns 703384 bytes_per_second=245.447M/s +BM_format_to_n_string_back_inserter>/512 1949 ns 1949 ns 359293 bytes_per_second=250.481M/s +BM_format_to_n_string_back_inserter>/1024 3860 ns 3860 ns 181393 bytes_per_second=252.963M/s +BM_format_to_n_string_back_inserter>/2048 7701 ns 7701 ns 91013 bytes_per_second=253.624M/s +BM_format_to_n_string_back_inserter>/4096 15311 ns 15312 ns 45629 bytes_per_second=255.117M/s +BM_format_to_n_string_back_inserter>/8192 30529 ns 30529 ns 22923 bytes_per_second=255.901M/s +BM_format_to_n_string_back_inserter>/16384 60832 ns 60833 ns 11486 bytes_per_second=256.852M/s +BM_format_to_n_string_back_inserter>/32768 121422 ns 121422 ns 5762 bytes_per_second=257.366M/s +BM_format_to_n_string_back_inserter>/65536 243658 ns 243658 ns 2871 bytes_per_second=256.507M/s +BM_format_to_n_string_back_inserter>/131072 487197 ns 487196 ns 1436 bytes_per_second=256.57M/s +BM_format_to_n_string_back_inserter>/262144 975357 ns 975363 ns 717 bytes_per_second=256.315M/s +BM_format_to_n_string_back_inserter>/524288 1951084 ns 1951093 ns 359 bytes_per_second=256.267M/s +BM_format_to_n_string_back_inserter>/1048576 3916865 ns 3916838 ns 178 bytes_per_second=255.308M/s +BM_format_to_n_string_back_inserter>/1 52.8 ns 52.8 ns 13274607 bytes_per_second=18.0522M/s +BM_format_to_n_string_back_inserter>/2 67.6 ns 67.6 ns 10364051 bytes_per_second=28.2279M/s +BM_format_to_n_string_back_inserter>/4 98.8 ns 98.8 ns 7087550 bytes_per_second=38.6003M/s +BM_format_to_n_string_back_inserter>/8 169 ns 169 ns 4150607 bytes_per_second=45.2364M/s +BM_format_to_n_string_back_inserter>/16 330 ns 330 ns 2119265 bytes_per_second=46.2013M/s +BM_format_to_n_string_back_inserter>/32 677 ns 677 ns 1035183 bytes_per_second=45.0873M/s +BM_format_to_n_string_back_inserter>/64 1315 ns 1315 ns 530628 bytes_per_second=46.4295M/s +BM_format_to_n_string_back_inserter>/128 2625 ns 2625 ns 267328 bytes_per_second=46.4996M/s +BM_format_to_n_string_back_inserter>/256 5199 ns 5200 ns 134767 bytes_per_second=46.9544M/s +BM_format_to_n_string_back_inserter>/512 10367 ns 10367 ns 67503 bytes_per_second=47.0998M/s +BM_format_to_n_string_back_inserter>/1024 20736 ns 20736 ns 33745 bytes_per_second=47.0939M/s +BM_format_to_n_string_back_inserter>/2048 41588 ns 41588 ns 16818 bytes_per_second=46.9634M/s +BM_format_to_n_string_back_inserter>/4096 83358 ns 83358 ns 8390 bytes_per_second=46.861M/s +BM_format_to_n_string_back_inserter>/8192 167123 ns 167124 ns 4182 bytes_per_second=46.7467M/s +BM_format_to_n_string_back_inserter>/16384 334452 ns 334454 ns 2093 bytes_per_second=46.718M/s +BM_format_to_n_string_back_inserter>/32768 669253 ns 669255 ns 1042 bytes_per_second=46.6937M/s +BM_format_to_n_string_back_inserter>/65536 1339049 ns 1339056 ns 521 bytes_per_second=46.6747M/s +BM_format_to_n_string_back_inserter>/131072 2692698 ns 2692620 ns 259 bytes_per_second=46.4232M/s +BM_format_to_n_string_back_inserter>/262144 5487797 ns 5487519 ns 118 bytes_per_second=45.5579M/s +BM_format_to_n_string_back_inserter>/524288 11141909 ns 11141498 ns 59 bytes_per_second=44.8773M/s +BM_format_to_n_string_back_inserter>/1048576 22592316 ns 22591621 ns 29 bytes_per_second=44.2642M/s +BM_format_to_n_string_begin/1 37.7 ns 37.7 ns 18586915 bytes_per_second=25.3112M/s +BM_format_to_n_string_begin/2 39.9 ns 39.9 ns 17523347 bytes_per_second=47.806M/s +BM_format_to_n_string_begin/4 46.7 ns 46.7 ns 14963899 bytes_per_second=81.5997M/s +BM_format_to_n_string_begin/8 62.1 ns 62.1 ns 11280299 bytes_per_second=122.925M/s +BM_format_to_n_string_begin/16 90.1 ns 90.1 ns 7770033 bytes_per_second=169.378M/s +BM_format_to_n_string_begin/32 146 ns 146 ns 4806027 bytes_per_second=209.589M/s +BM_format_to_n_string_begin/64 259 ns 259 ns 2701875 bytes_per_second=235.655M/s +BM_format_to_n_string_begin/128 502 ns 502 ns 1393858 bytes_per_second=243.154M/s +BM_format_to_n_string_begin/256 968 ns 968 ns 722965 bytes_per_second=252.319M/s +BM_format_to_n_string_begin/512 1902 ns 1902 ns 368267 bytes_per_second=256.783M/s +BM_format_to_n_string_begin/1024 3774 ns 3774 ns 185392 bytes_per_second=258.774M/s +BM_format_to_n_string_begin/2048 7535 ns 7535 ns 93070 bytes_per_second=259.191M/s +BM_format_to_n_string_begin/4096 15009 ns 15009 ns 46623 bytes_per_second=260.262M/s +BM_format_to_n_string_begin/8192 29949 ns 29950 ns 23380 bytes_per_second=260.855M/s +BM_format_to_n_string_begin/16384 59887 ns 59887 ns 11691 bytes_per_second=260.909M/s +BM_format_to_n_string_begin/32768 119700 ns 119700 ns 5847 bytes_per_second=261.069M/s +BM_format_to_n_string_begin/65536 239527 ns 239529 ns 2922 bytes_per_second=260.929M/s +BM_format_to_n_string_begin/131072 479444 ns 479435 ns 1461 bytes_per_second=260.724M/s +BM_format_to_n_string_begin/262144 958881 ns 958869 ns 730 bytes_per_second=260.724M/s +BM_format_to_n_string_begin/524288 1916815 ns 1916822 ns 365 bytes_per_second=260.848M/s +BM_format_to_n_string_begin/1048576 3838188 ns 3836349 ns 183 bytes_per_second=260.664M/s +BM_format_to_n_string_begin>/1 36.7 ns 36.7 ns 19053499 bytes_per_second=25.9515M/s +BM_format_to_n_string_begin>/2 39.1 ns 39.1 ns 17887055 bytes_per_second=48.7798M/s +BM_format_to_n_string_begin>/4 47.1 ns 47.1 ns 15058753 bytes_per_second=80.9224M/s +BM_format_to_n_string_begin>/8 62.4 ns 62.4 ns 11379297 bytes_per_second=122.218M/s +BM_format_to_n_string_begin>/16 89.5 ns 89.5 ns 7826673 bytes_per_second=170.558M/s +BM_format_to_n_string_begin>/32 146 ns 146 ns 4788018 bytes_per_second=208.39M/s +BM_format_to_n_string_begin>/64 261 ns 261 ns 2698436 bytes_per_second=234.293M/s +BM_format_to_n_string_begin>/128 506 ns 506 ns 1388199 bytes_per_second=241.329M/s +BM_format_to_n_string_begin>/256 968 ns 968 ns 721499 bytes_per_second=252.095M/s +BM_format_to_n_string_begin>/512 1902 ns 1902 ns 368289 bytes_per_second=256.699M/s +BM_format_to_n_string_begin>/1024 3776 ns 3776 ns 185286 bytes_per_second=258.648M/s +BM_format_to_n_string_begin>/2048 7529 ns 7529 ns 93055 bytes_per_second=259.416M/s +BM_format_to_n_string_begin>/4096 15018 ns 15018 ns 46607 bytes_per_second=260.1M/s +BM_format_to_n_string_begin>/8192 29943 ns 29943 ns 23364 bytes_per_second=260.914M/s +BM_format_to_n_string_begin>/16384 59880 ns 59881 ns 11682 bytes_per_second=260.935M/s +BM_format_to_n_string_begin>/32768 119701 ns 119701 ns 5842 bytes_per_second=261.068M/s +BM_format_to_n_string_begin>/65536 239391 ns 239392 ns 2920 bytes_per_second=261.078M/s +BM_format_to_n_string_begin>/131072 479084 ns 479084 ns 1460 bytes_per_second=260.915M/s +BM_format_to_n_string_begin>/262144 958328 ns 958333 ns 730 bytes_per_second=260.87M/s +BM_format_to_n_string_begin>/524288 1916968 ns 1916971 ns 365 bytes_per_second=260.828M/s +BM_format_to_n_string_begin>/1048576 3833413 ns 3833431 ns 183 bytes_per_second=260.863M/s +BM_format_to_n_string_begin>/1 36.3 ns 36.3 ns 19290199 bytes_per_second=26.2829M/s +BM_format_to_n_string_begin>/2 39.7 ns 39.7 ns 17618771 bytes_per_second=48.0659M/s +BM_format_to_n_string_begin>/4 47.6 ns 47.6 ns 14731849 bytes_per_second=80.1795M/s +BM_format_to_n_string_begin>/8 68.8 ns 68.8 ns 10134995 bytes_per_second=110.854M/s +BM_format_to_n_string_begin>/16 118 ns 118 ns 5940969 bytes_per_second=129.564M/s +BM_format_to_n_string_begin>/32 221 ns 221 ns 3163721 bytes_per_second=137.901M/s +BM_format_to_n_string_begin>/64 419 ns 419 ns 1670380 bytes_per_second=145.665M/s +BM_format_to_n_string_begin>/128 829 ns 829 ns 844229 bytes_per_second=147.235M/s +BM_format_to_n_string_begin>/256 1637 ns 1637 ns 428335 bytes_per_second=149.115M/s +BM_format_to_n_string_begin>/512 3244 ns 3244 ns 215738 bytes_per_second=150.528M/s +BM_format_to_n_string_begin>/1024 6491 ns 6491 ns 107708 bytes_per_second=150.446M/s +BM_format_to_n_string_begin>/2048 12920 ns 12920 ns 54184 bytes_per_second=151.171M/s +BM_format_to_n_string_begin>/4096 25775 ns 25775 ns 27187 bytes_per_second=151.553M/s +BM_format_to_n_string_begin>/8192 51635 ns 51635 ns 13557 bytes_per_second=151.303M/s +BM_format_to_n_string_begin>/16384 103194 ns 103194 ns 6786 bytes_per_second=151.414M/s +BM_format_to_n_string_begin>/32768 206290 ns 206289 ns 3394 bytes_per_second=151.486M/s +BM_format_to_n_string_begin>/65536 412497 ns 412496 ns 1698 bytes_per_second=151.516M/s +BM_format_to_n_string_begin>/131072 835730 ns 835724 ns 838 bytes_per_second=149.571M/s +BM_format_to_n_string_begin>/262144 1780349 ns 1780275 ns 394 bytes_per_second=140.428M/s +BM_format_to_n_string_begin>/524288 3730561 ns 3730385 ns 188 bytes_per_second=134.034M/s +BM_format_to_n_string_begin>/1048576 7513556 ns 7513003 ns 93 bytes_per_second=133.103M/s +BM_format_to_n_string_span>/1 37.6 ns 37.6 ns 18612324 bytes_per_second=25.3594M/s +BM_format_to_n_string_span>/2 39.6 ns 39.6 ns 17710114 bytes_per_second=48.2072M/s +BM_format_to_n_string_span>/4 46.1 ns 46.1 ns 15199801 bytes_per_second=82.756M/s +BM_format_to_n_string_span>/8 61.9 ns 61.9 ns 11560676 bytes_per_second=123.237M/s +BM_format_to_n_string_span>/16 89.2 ns 89.2 ns 7849153 bytes_per_second=171.143M/s +BM_format_to_n_string_span>/32 146 ns 146 ns 4806761 bytes_per_second=209.683M/s +BM_format_to_n_string_span>/64 259 ns 259 ns 2700170 bytes_per_second=235.435M/s +BM_format_to_n_string_span>/128 502 ns 502 ns 1394013 bytes_per_second=243.288M/s +BM_format_to_n_string_span>/256 968 ns 968 ns 723252 bytes_per_second=252.09M/s +BM_format_to_n_string_span>/512 1901 ns 1901 ns 368283 bytes_per_second=256.839M/s +BM_format_to_n_string_span>/1024 3775 ns 3775 ns 185355 bytes_per_second=258.69M/s +BM_format_to_n_string_span>/2048 7535 ns 7535 ns 92856 bytes_per_second=259.204M/s +BM_format_to_n_string_span>/4096 15012 ns 15012 ns 46625 bytes_per_second=260.213M/s +BM_format_to_n_string_span>/8192 29951 ns 29951 ns 23370 bytes_per_second=260.845M/s +BM_format_to_n_string_span>/16384 59870 ns 59870 ns 11701 bytes_per_second=260.982M/s +BM_format_to_n_string_span>/32768 119695 ns 119695 ns 5830 bytes_per_second=261.08M/s +BM_format_to_n_string_span>/65536 239428 ns 239428 ns 2923 bytes_per_second=261.039M/s +BM_format_to_n_string_span>/131072 479188 ns 479189 ns 1460 bytes_per_second=260.857M/s +BM_format_to_n_string_span>/262144 958740 ns 958724 ns 726 bytes_per_second=260.763M/s +BM_format_to_n_string_span>/524288 1916538 ns 1916531 ns 365 bytes_per_second=260.888M/s +BM_format_to_n_string_span>/1048576 3832811 ns 3832803 ns 183 bytes_per_second=260.906M/s +BM_format_to_n_string_pointer/1 37.6 ns 37.6 ns 18593293 bytes_per_second=25.3552M/s +BM_format_to_n_string_pointer/2 39.5 ns 39.5 ns 17708189 bytes_per_second=48.2452M/s +BM_format_to_n_string_pointer/4 46.2 ns 46.2 ns 15049057 bytes_per_second=82.501M/s +BM_format_to_n_string_pointer/8 61.5 ns 61.5 ns 11287196 bytes_per_second=124.094M/s +BM_format_to_n_string_pointer/16 88.6 ns 88.6 ns 7899296 bytes_per_second=172.14M/s +BM_format_to_n_string_pointer/32 146 ns 146 ns 4807951 bytes_per_second=209.657M/s +BM_format_to_n_string_pointer/64 259 ns 259 ns 2698031 bytes_per_second=235.261M/s +BM_format_to_n_string_pointer/128 503 ns 503 ns 1392883 bytes_per_second=242.837M/s +BM_format_to_n_string_pointer/256 968 ns 968 ns 724206 bytes_per_second=252.258M/s +BM_format_to_n_string_pointer/512 1903 ns 1903 ns 368251 bytes_per_second=256.637M/s +BM_format_to_n_string_pointer/1024 3780 ns 3780 ns 185153 bytes_per_second=258.361M/s +BM_format_to_n_string_pointer/2048 7529 ns 7529 ns 92978 bytes_per_second=259.401M/s +BM_format_to_n_string_pointer/4096 15007 ns 15007 ns 46621 bytes_per_second=260.29M/s +BM_format_to_n_string_pointer/8192 29944 ns 29945 ns 23346 bytes_per_second=260.899M/s +BM_format_to_n_string_pointer/16384 59855 ns 59855 ns 11697 bytes_per_second=261.048M/s +BM_format_to_n_string_pointer/32768 119709 ns 119709 ns 5835 bytes_per_second=261.049M/s +BM_format_to_n_string_pointer/65536 239608 ns 239608 ns 2923 bytes_per_second=260.843M/s +BM_format_to_n_string_pointer/131072 479204 ns 479207 ns 1460 bytes_per_second=260.848M/s +BM_format_to_n_string_pointer/262144 958619 ns 958624 ns 730 bytes_per_second=260.79M/s +BM_format_to_n_string_pointer/524288 1917858 ns 1917851 ns 365 bytes_per_second=260.708M/s +BM_format_to_n_string_pointer/1048576 3833926 ns 3833939 ns 183 bytes_per_second=260.828M/s +BM_format_to_n_string_back_inserter/1 42.4 ns 42.4 ns 16474937 bytes_per_second=90.0143M/s +BM_format_to_n_string_back_inserter/2 44.4 ns 44.4 ns 15764625 bytes_per_second=171.976M/s +BM_format_to_n_string_back_inserter/4 47.1 ns 47.1 ns 14847345 bytes_per_second=323.693M/s +BM_format_to_n_string_back_inserter/8 79.7 ns 79.7 ns 8907213 bytes_per_second=382.772M/s +BM_format_to_n_string_back_inserter/16 90.6 ns 90.6 ns 7684384 bytes_per_second=674.028M/s +BM_format_to_n_string_back_inserter/32 114 ns 114 ns 6115428 bytes_per_second=1070.46M/s +BM_format_to_n_string_back_inserter/64 164 ns 164 ns 4284905 bytes_per_second=1.45719G/s +BM_format_to_n_string_back_inserter/128 292 ns 292 ns 2399381 bytes_per_second=1.63318G/s +BM_format_to_n_string_back_inserter/256 581 ns 581 ns 1201675 bytes_per_second=1.64263G/s +BM_format_to_n_string_back_inserter/512 1086 ns 1086 ns 644709 bytes_per_second=1.75611G/s +BM_format_to_n_string_back_inserter/1024 2035 ns 2035 ns 344216 bytes_per_second=1.87439G/s +BM_format_to_n_string_back_inserter/2048 3898 ns 3898 ns 179549 bytes_per_second=1.95735G/s +BM_format_to_n_string_back_inserter/4096 7463 ns 7463 ns 93778 bytes_per_second=2.04453G/s +BM_format_to_n_string_back_inserter/8192 14843 ns 14843 ns 47078 bytes_per_second=2.05603G/s +BM_format_to_n_string_back_inserter/16384 30431 ns 30431 ns 22980 bytes_per_second=2.00566G/s +BM_format_to_n_string_back_inserter/32768 61726 ns 61725 ns 11282 bytes_per_second=1.97763G/s +BM_format_to_n_string_back_inserter/65536 124416 ns 124414 ns 5629 bytes_per_second=1.96233G/s +BM_format_to_n_string_back_inserter/131072 250476 ns 250475 ns 2797 bytes_per_second=1.94942G/s +BM_format_to_n_string_back_inserter/262144 516075 ns 516057 ns 1348 bytes_per_second=1.89235G/s +BM_format_to_n_string_back_inserter/524288 1090363 ns 1090333 ns 638 bytes_per_second=1.79131G/s +BM_format_to_n_string_back_inserter/1048576 2424465 ns 2424344 ns 290 bytes_per_second=1.61126G/s +BM_format_to_n_string_back_inserter>/1 59.9 ns 59.9 ns 11661508 bytes_per_second=63.6404M/s +BM_format_to_n_string_back_inserter>/2 60.7 ns 60.7 ns 11494008 bytes_per_second=125.654M/s +BM_format_to_n_string_back_inserter>/4 63.9 ns 63.9 ns 10927578 bytes_per_second=238.733M/s +BM_format_to_n_string_back_inserter>/8 68.0 ns 68.0 ns 10309671 bytes_per_second=449.073M/s +BM_format_to_n_string_back_inserter>/16 78.0 ns 78.0 ns 8925621 bytes_per_second=782.421M/s +BM_format_to_n_string_back_inserter>/32 107 ns 107 ns 6518919 bytes_per_second=1.10967G/s +BM_format_to_n_string_back_inserter>/64 154 ns 154 ns 4542639 bytes_per_second=1.54541G/s +BM_format_to_n_string_back_inserter>/128 274 ns 274 ns 2555460 bytes_per_second=1.73747G/s +BM_format_to_n_string_back_inserter>/256 504 ns 504 ns 1387090 bytes_per_second=1.8915G/s +BM_format_to_n_string_back_inserter>/512 993 ns 993 ns 706257 bytes_per_second=1.92093G/s +BM_format_to_n_string_back_inserter>/1024 1884 ns 1884 ns 371507 bytes_per_second=2.02453G/s +BM_format_to_n_string_back_inserter>/2048 3695 ns 3695 ns 189394 bytes_per_second=2.06492G/s +BM_format_to_n_string_back_inserter>/4096 7262 ns 7262 ns 96216 bytes_per_second=2.10125G/s +BM_format_to_n_string_back_inserter>/8192 14445 ns 14445 ns 48443 bytes_per_second=2.11264G/s +BM_format_to_n_string_back_inserter>/16384 30191 ns 30191 ns 23208 bytes_per_second=2.0216G/s +BM_format_to_n_string_back_inserter>/32768 60072 ns 60072 ns 11594 bytes_per_second=2.03205G/s +BM_format_to_n_string_back_inserter>/65536 122458 ns 122458 ns 5715 bytes_per_second=1.99367G/s +BM_format_to_n_string_back_inserter>/131072 242334 ns 242334 ns 2893 bytes_per_second=2.01491G/s +BM_format_to_n_string_back_inserter>/262144 495531 ns 495526 ns 1412 bytes_per_second=1.97076G/s +BM_format_to_n_string_back_inserter>/524288 1053780 ns 1053752 ns 664 bytes_per_second=1.8535G/s +BM_format_to_n_string_back_inserter>/1048576 2328952 ns 2328846 ns 300 bytes_per_second=1.67733G/s +BM_format_to_n_string_back_inserter>/1 53.1 ns 53.1 ns 13167813 bytes_per_second=71.7983M/s +BM_format_to_n_string_back_inserter>/2 70.5 ns 70.5 ns 9827950 bytes_per_second=108.189M/s +BM_format_to_n_string_back_inserter>/4 106 ns 106 ns 6569485 bytes_per_second=143.711M/s +BM_format_to_n_string_back_inserter>/8 167 ns 167 ns 4205085 bytes_per_second=183.22M/s +BM_format_to_n_string_back_inserter>/16 313 ns 313 ns 2233760 bytes_per_second=194.809M/s +BM_format_to_n_string_back_inserter>/32 634 ns 634 ns 1107620 bytes_per_second=192.505M/s +BM_format_to_n_string_back_inserter>/64 1215 ns 1215 ns 571029 bytes_per_second=200.931M/s +BM_format_to_n_string_back_inserter>/128 2381 ns 2381 ns 293934 bytes_per_second=205.112M/s +BM_format_to_n_string_back_inserter>/256 4719 ns 4719 ns 148318 bytes_per_second=206.927M/s +BM_format_to_n_string_back_inserter>/512 9441 ns 9441 ns 74162 bytes_per_second=206.882M/s +BM_format_to_n_string_back_inserter>/1024 18902 ns 18902 ns 37004 bytes_per_second=206.656M/s +BM_format_to_n_string_back_inserter>/2048 37822 ns 37822 ns 18507 bytes_per_second=206.561M/s +BM_format_to_n_string_back_inserter>/4096 75566 ns 75566 ns 9259 bytes_per_second=206.772M/s +BM_format_to_n_string_back_inserter>/8192 151839 ns 151835 ns 4601 bytes_per_second=205.815M/s +BM_format_to_n_string_back_inserter>/16384 303789 ns 303789 ns 2300 bytes_per_second=205.735M/s +BM_format_to_n_string_back_inserter>/32768 607455 ns 607458 ns 1146 bytes_per_second=205.776M/s +BM_format_to_n_string_back_inserter>/65536 1217963 ns 1217957 ns 572 bytes_per_second=205.262M/s +BM_format_to_n_string_back_inserter>/131072 2449037 ns 2449017 ns 285 bytes_per_second=204.164M/s +BM_format_to_n_string_back_inserter>/262144 5010010 ns 5009680 ns 133 bytes_per_second=199.614M/s +BM_format_to_n_string_back_inserter>/524288 10234916 ns 10234539 ns 63 bytes_per_second=195.417M/s +BM_format_to_n_string_back_inserter>/1048576 20769026 ns 20768298 ns 32 bytes_per_second=192.601M/s +BM_format_to_n_string_begin/1 38.7 ns 38.7 ns 18086570 bytes_per_second=98.5679M/s +BM_format_to_n_string_begin/2 39.9 ns 39.9 ns 17575929 bytes_per_second=191.381M/s +BM_format_to_n_string_begin/4 41.4 ns 41.4 ns 16917873 bytes_per_second=368.68M/s +BM_format_to_n_string_begin/8 46.6 ns 46.6 ns 14986752 bytes_per_second=654.538M/s +BM_format_to_n_string_begin/16 58.7 ns 58.7 ns 11962448 bytes_per_second=1040.51M/s +BM_format_to_n_string_begin/32 84.3 ns 84.3 ns 8291840 bytes_per_second=1.41366G/s +BM_format_to_n_string_begin/64 130 ns 130 ns 5368063 bytes_per_second=1.83292G/s +BM_format_to_n_string_begin/128 225 ns 225 ns 3117001 bytes_per_second=2.12393G/s +BM_format_to_n_string_begin/256 426 ns 426 ns 1639721 bytes_per_second=2.24091G/s +BM_format_to_n_string_begin/512 819 ns 819 ns 855219 bytes_per_second=2.33024G/s +BM_format_to_n_string_begin/1024 1586 ns 1586 ns 440692 bytes_per_second=2.405G/s +BM_format_to_n_string_begin/2048 3098 ns 3098 ns 225599 bytes_per_second=2.46276G/s +BM_format_to_n_string_begin/4096 6390 ns 6390 ns 109513 bytes_per_second=2.38794G/s +BM_format_to_n_string_begin/8192 12792 ns 12792 ns 54674 bytes_per_second=2.38568G/s +BM_format_to_n_string_begin/16384 25112 ns 25112 ns 27907 bytes_per_second=2.43053G/s +BM_format_to_n_string_begin/32768 53710 ns 53711 ns 13039 bytes_per_second=2.27274G/s +BM_format_to_n_string_begin/65536 107457 ns 107456 ns 6521 bytes_per_second=2.272G/s +BM_format_to_n_string_begin/131072 215102 ns 215099 ns 3253 bytes_per_second=2.27003G/s +BM_format_to_n_string_begin/262144 430360 ns 430358 ns 1626 bytes_per_second=2.26919G/s +BM_format_to_n_string_begin/524288 886104 ns 886081 ns 790 bytes_per_second=2.20423G/s +BM_format_to_n_string_begin/1048576 1868083 ns 1868001 ns 375 bytes_per_second=2.09114G/s +BM_format_to_n_string_begin>/1 37.0 ns 37.0 ns 18929499 bytes_per_second=103.093M/s +BM_format_to_n_string_begin>/2 37.9 ns 37.9 ns 18456408 bytes_per_second=201.151M/s +BM_format_to_n_string_begin>/4 40.3 ns 40.3 ns 17391902 bytes_per_second=378.942M/s +BM_format_to_n_string_begin>/8 46.0 ns 46.0 ns 15214399 bytes_per_second=662.883M/s +BM_format_to_n_string_begin>/16 57.4 ns 57.4 ns 12263418 bytes_per_second=1062.96M/s +BM_format_to_n_string_begin>/32 83.4 ns 83.4 ns 8375162 bytes_per_second=1.42858G/s +BM_format_to_n_string_begin>/64 129 ns 129 ns 5396892 bytes_per_second=1.84209G/s +BM_format_to_n_string_begin>/128 224 ns 224 ns 3127144 bytes_per_second=2.13083G/s +BM_format_to_n_string_begin>/256 419 ns 419 ns 1671611 bytes_per_second=2.27849G/s +BM_format_to_n_string_begin>/512 819 ns 819 ns 854875 bytes_per_second=2.32824G/s +BM_format_to_n_string_begin>/1024 1588 ns 1588 ns 440838 bytes_per_second=2.40289G/s +BM_format_to_n_string_begin>/2048 3097 ns 3097 ns 225429 bytes_per_second=2.46317G/s +BM_format_to_n_string_begin>/4096 6393 ns 6393 ns 109437 bytes_per_second=2.38695G/s +BM_format_to_n_string_begin>/8192 12780 ns 12780 ns 54718 bytes_per_second=2.38793G/s +BM_format_to_n_string_begin>/16384 24940 ns 24939 ns 28077 bytes_per_second=2.44734G/s +BM_format_to_n_string_begin>/32768 53054 ns 53054 ns 13178 bytes_per_second=2.30088G/s +BM_format_to_n_string_begin>/65536 106055 ns 106055 ns 6586 bytes_per_second=2.30202G/s +BM_format_to_n_string_begin>/131072 212309 ns 212310 ns 3295 bytes_per_second=2.29985G/s +BM_format_to_n_string_begin>/262144 425046 ns 425047 ns 1646 bytes_per_second=2.29754G/s +BM_format_to_n_string_begin>/524288 875911 ns 875891 ns 801 bytes_per_second=2.22987G/s +BM_format_to_n_string_begin>/1048576 1846815 ns 1846749 ns 379 bytes_per_second=2.1152G/s +BM_format_to_n_string_begin>/1 36.4 ns 36.4 ns 19227666 bytes_per_second=104.832M/s +BM_format_to_n_string_begin>/2 39.3 ns 39.3 ns 17814491 bytes_per_second=194.331M/s +BM_format_to_n_string_begin>/4 46.6 ns 46.6 ns 15025186 bytes_per_second=327.682M/s +BM_format_to_n_string_begin>/8 60.4 ns 60.4 ns 11601110 bytes_per_second=505.333M/s +BM_format_to_n_string_begin>/16 96.9 ns 96.9 ns 7225561 bytes_per_second=629.584M/s +BM_format_to_n_string_begin>/32 158 ns 158 ns 4445046 bytes_per_second=774.964M/s +BM_format_to_n_string_begin>/64 290 ns 290 ns 2413600 bytes_per_second=842.297M/s +BM_format_to_n_string_begin>/128 550 ns 550 ns 1272482 bytes_per_second=887.06M/s +BM_format_to_n_string_begin>/256 1065 ns 1065 ns 657573 bytes_per_second=917.31M/s +BM_format_to_n_string_begin>/512 2099 ns 2099 ns 333421 bytes_per_second=930.572M/s +BM_format_to_n_string_begin>/1024 4151 ns 4151 ns 168665 bytes_per_second=941.101M/s +BM_format_to_n_string_begin>/2048 8220 ns 8220 ns 85191 bytes_per_second=950.369M/s +BM_format_to_n_string_begin>/4096 16436 ns 16436 ns 42582 bytes_per_second=950.647M/s +BM_format_to_n_string_begin>/8192 32978 ns 32978 ns 21203 bytes_per_second=947.599M/s +BM_format_to_n_string_begin>/16384 65851 ns 65851 ns 10636 bytes_per_second=949.118M/s +BM_format_to_n_string_begin>/32768 131357 ns 131357 ns 5328 bytes_per_second=951.606M/s +BM_format_to_n_string_begin>/65536 262830 ns 262831 ns 2663 bytes_per_second=951.18M/s +BM_format_to_n_string_begin>/131072 541366 ns 541361 ns 1290 bytes_per_second=923.598M/s +BM_format_to_n_string_begin>/262144 1207598 ns 1207549 ns 580 bytes_per_second=828.124M/s +BM_format_to_n_string_begin>/524288 2581522 ns 2581344 ns 271 bytes_per_second=774.79M/s +BM_format_to_n_string_begin>/1048576 5279779 ns 5279587 ns 133 bytes_per_second=757.635M/s +BM_format_to_n_string_span>/1 37.9 ns 37.9 ns 18535600 bytes_per_second=100.723M/s +BM_format_to_n_string_span>/2 38.6 ns 38.6 ns 18149788 bytes_per_second=197.575M/s +BM_format_to_n_string_span>/4 42.3 ns 42.3 ns 16553233 bytes_per_second=360.564M/s +BM_format_to_n_string_span>/8 46.5 ns 46.5 ns 15049500 bytes_per_second=655.94M/s +BM_format_to_n_string_span>/16 59.5 ns 59.5 ns 11771599 bytes_per_second=1025.99M/s +BM_format_to_n_string_span>/32 83.9 ns 83.9 ns 8380621 bytes_per_second=1.42089G/s +BM_format_to_n_string_span>/64 130 ns 130 ns 5403109 bytes_per_second=1.83727G/s +BM_format_to_n_string_span>/128 224 ns 224 ns 3127418 bytes_per_second=2.12714G/s +BM_format_to_n_string_span>/256 426 ns 426 ns 1644735 bytes_per_second=2.23924G/s +BM_format_to_n_string_span>/512 819 ns 819 ns 852783 bytes_per_second=2.32985G/s +BM_format_to_n_string_span>/1024 1586 ns 1586 ns 441528 bytes_per_second=2.40544G/s +BM_format_to_n_string_span>/2048 3098 ns 3098 ns 225550 bytes_per_second=2.46279G/s +BM_format_to_n_string_span>/4096 6395 ns 6395 ns 109480 bytes_per_second=2.38603G/s +BM_format_to_n_string_span>/8192 12786 ns 12785 ns 54459 bytes_per_second=2.38692G/s +BM_format_to_n_string_span>/16384 25091 ns 25091 ns 27894 bytes_per_second=2.43251G/s +BM_format_to_n_string_span>/32768 53739 ns 53737 ns 13023 bytes_per_second=2.2716G/s +BM_format_to_n_string_span>/65536 106749 ns 106749 ns 6556 bytes_per_second=2.28706G/s +BM_format_to_n_string_span>/131072 214645 ns 214645 ns 3262 bytes_per_second=2.27483G/s +BM_format_to_n_string_span>/262144 430088 ns 430088 ns 1628 bytes_per_second=2.27061G/s +BM_format_to_n_string_span>/524288 885497 ns 885445 ns 790 bytes_per_second=2.20581G/s +BM_format_to_n_string_span>/1048576 1866425 ns 1866292 ns 376 bytes_per_second=2.09305G/s +BM_format_to_n_string_pointer/1 37.8 ns 37.8 ns 18547000 bytes_per_second=100.922M/s +BM_format_to_n_string_pointer/2 39.0 ns 39.0 ns 17970649 bytes_per_second=195.671M/s +BM_format_to_n_string_pointer/4 42.2 ns 42.2 ns 16579398 bytes_per_second=361.247M/s +BM_format_to_n_string_pointer/8 46.6 ns 46.6 ns 15024949 bytes_per_second=655.004M/s +BM_format_to_n_string_pointer/16 59.5 ns 59.5 ns 11770744 bytes_per_second=1026.38M/s +BM_format_to_n_string_pointer/32 84.6 ns 84.6 ns 8300914 bytes_per_second=1.40878G/s +BM_format_to_n_string_pointer/64 130 ns 130 ns 5394632 bytes_per_second=1.83702G/s +BM_format_to_n_string_pointer/128 224 ns 224 ns 3108546 bytes_per_second=2.12698G/s +BM_format_to_n_string_pointer/256 425 ns 425 ns 1647166 bytes_per_second=2.24206G/s +BM_format_to_n_string_pointer/512 818 ns 818 ns 856073 bytes_per_second=2.33129G/s +BM_format_to_n_string_pointer/1024 1586 ns 1586 ns 440781 bytes_per_second=2.40559G/s +BM_format_to_n_string_pointer/2048 3104 ns 3104 ns 225660 bytes_per_second=2.45769G/s +BM_format_to_n_string_pointer/4096 6393 ns 6393 ns 109410 bytes_per_second=2.38663G/s +BM_format_to_n_string_pointer/8192 12799 ns 12799 ns 54600 bytes_per_second=2.38435G/s +BM_format_to_n_string_pointer/16384 25099 ns 25099 ns 27892 bytes_per_second=2.4318G/s +BM_format_to_n_string_pointer/32768 53728 ns 53728 ns 13046 bytes_per_second=2.27203G/s +BM_format_to_n_string_pointer/65536 106777 ns 106778 ns 6560 bytes_per_second=2.28644G/s +BM_format_to_n_string_pointer/131072 214667 ns 214666 ns 3256 bytes_per_second=2.27461G/s +BM_format_to_n_string_pointer/262144 430013 ns 430012 ns 1628 bytes_per_second=2.27101G/s +BM_format_to_n_string_pointer/524288 886103 ns 886090 ns 790 bytes_per_second=2.20421G/s +BM_format_to_n_string_pointer/1048576 1867337 ns 1867284 ns 373 bytes_per_second=2.09194G/s diff --git a/libcxx/after/formatted_size.txt b/libcxx/after/formatted_size.txt new file mode 100644 --- /dev/null +++ b/libcxx/after/formatted_size.txt @@ -0,0 +1,45 @@ +---------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +---------------------------------------------------------------------------------------------------- +BM_formatted_size_string/1 32.4 ns 32.4 ns 21598493 bytes_per_second=29.4176M/s +BM_formatted_size_string/2 16.8 ns 16.8 ns 41723546 bytes_per_second=113.704M/s +BM_formatted_size_string/4 9.02 ns 9.02 ns 77627068 bytes_per_second=423.117M/s +BM_formatted_size_string/8 5.51 ns 5.51 ns 127094016 bytes_per_second=1.35335G/s +BM_formatted_size_string/16 3.68 ns 3.68 ns 190570112 bytes_per_second=4.04464G/s +BM_formatted_size_string/32 2.73 ns 2.73 ns 255864544 bytes_per_second=10.9089G/s +BM_formatted_size_string/64 2.25 ns 2.25 ns 310573440 bytes_per_second=26.449G/s +BM_formatted_size_string/128 2.02 ns 2.02 ns 345991808 bytes_per_second=58.9085G/s +BM_formatted_size_string/256 1.95 ns 1.95 ns 355650048 bytes_per_second=122.054G/s +BM_formatted_size_string/512 1.89 ns 1.89 ns 370622464 bytes_per_second=252.329G/s +BM_formatted_size_string/1024 1.85 ns 1.85 ns 377767936 bytes_per_second=514.465G/s +BM_formatted_size_string/2048 1.83 ns 1.83 ns 382072832 bytes_per_second=1040.47G/s +BM_formatted_size_string/4096 1.82 ns 1.82 ns 384032768 bytes_per_second=2.04741T/s +BM_formatted_size_string/8192 1.81 ns 1.81 ns 386129920 bytes_per_second=4.11172T/s +BM_formatted_size_string/16384 1.81 ns 1.81 ns 386662400 bytes_per_second=8.23601T/s +BM_formatted_size_string/32768 1.81 ns 1.81 ns 387383296 bytes_per_second=16.4877T/s +BM_formatted_size_string/65536 1.81 ns 1.81 ns 387317760 bytes_per_second=32.9732T/s +BM_formatted_size_string/131072 1.81 ns 1.81 ns 387317760 bytes_per_second=65.9684T/s +BM_formatted_size_string/262144 1.81 ns 1.81 ns 386924544 bytes_per_second=131.924T/s +BM_formatted_size_string/524288 1.81 ns 1.81 ns 387448832 bytes_per_second=263.952T/s +BM_formatted_size_string/1048576 1.81 ns 1.81 ns 387973120 bytes_per_second=527.955T/s +BM_formatted_size_string/1 32.4 ns 32.4 ns 21529673 bytes_per_second=117.617M/s +BM_formatted_size_string/2 16.6 ns 16.6 ns 42132806 bytes_per_second=458.84M/s +BM_formatted_size_string/4 8.63 ns 8.63 ns 81081180 bytes_per_second=1.72651G/s +BM_formatted_size_string/8 4.63 ns 4.63 ns 151535056 bytes_per_second=6.44197G/s +BM_formatted_size_string/16 2.59 ns 2.59 ns 270219296 bytes_per_second=23.0252G/s +BM_formatted_size_string/32 1.59 ns 1.59 ns 438878432 bytes_per_second=74.8853G/s +BM_formatted_size_string/64 1.22 ns 1.22 ns 572460096 bytes_per_second=195.489G/s +BM_formatted_size_string/128 0.955 ns 0.955 ns 733116160 bytes_per_second=499.387G/s +BM_formatted_size_string/256 0.829 ns 0.829 ns 845439488 bytes_per_second=1.12356T/s +BM_formatted_size_string/512 0.769 ns 0.769 ns 910455296 bytes_per_second=2.42167T/s +BM_formatted_size_string/1024 0.730 ns 0.730 ns 957693952 bytes_per_second=5.10579T/s +BM_formatted_size_string/2048 0.711 ns 0.711 ns 984363008 bytes_per_second=10.4734T/s +BM_formatted_size_string/4096 0.702 ns 0.702 ns 998043648 bytes_per_second=21.2359T/s +BM_formatted_size_string/8192 0.699 ns 0.699 ns 1000005632 bytes_per_second=42.6543T/s +BM_formatted_size_string/16384 0.698 ns 0.698 ns 1000013824 bytes_per_second=85.4246T/s +BM_formatted_size_string/32768 0.696 ns 0.696 ns 1000013824 bytes_per_second=171.246T/s +BM_formatted_size_string/65536 0.695 ns 0.695 ns 1000013824 bytes_per_second=343.038T/s +BM_formatted_size_string/131072 0.693 ns 0.693 ns 1000079360 bytes_per_second=687.883T/s +BM_formatted_size_string/262144 0.693 ns 0.693 ns 1000079360 bytes_per_second=1.34414P/s +BM_formatted_size_string/524288 0.692 ns 0.692 ns 1000341504 bytes_per_second=2.69005P/s +BM_formatted_size_string/1048576 0.693 ns 0.693 ns 1000341504 bytes_per_second=5.37523P/s diff --git a/libcxx/before/format.txt b/libcxx/before/format.txt new file mode 100644 --- /dev/null +++ b/libcxx/before/format.txt @@ -0,0 +1,45 @@ +-------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +-------------------------------------------------------------------------------------------- +BM_format_string/1 42.2 ns 42.2 ns 16569674 bytes_per_second=22.6014M/s +BM_format_string/2 22.1 ns 22.1 ns 31741352 bytes_per_second=86.4756M/s +BM_format_string/4 12.1 ns 12.1 ns 57789660 bytes_per_second=314.611M/s +BM_format_string/8 7.04 ns 7.04 ns 99510768 bytes_per_second=1084.22M/s +BM_format_string/16 4.48 ns 4.48 ns 156531072 bytes_per_second=3.32906G/s +BM_format_string/32 3.95 ns 3.94 ns 177596896 bytes_per_second=7.55626G/s +BM_format_string/64 3.23 ns 3.23 ns 216913408 bytes_per_second=18.4639G/s +BM_format_string/128 2.71 ns 2.71 ns 257868672 bytes_per_second=43.9468G/s +BM_format_string/256 2.45 ns 2.45 ns 285697280 bytes_per_second=97.2903G/s +BM_format_string/512 2.39 ns 2.39 ns 293160960 bytes_per_second=199.797G/s +BM_format_string/1024 2.38 ns 2.38 ns 294042624 bytes_per_second=400.679G/s +BM_format_string/2048 2.36 ns 2.36 ns 297142272 bytes_per_second=809.644G/s +BM_format_string/4096 2.31 ns 2.30 ns 303648768 bytes_per_second=1.61679T/s +BM_format_string/8192 2.29 ns 2.29 ns 305897472 bytes_per_second=3.25398T/s +BM_format_string/16384 2.29 ns 2.29 ns 306020352 bytes_per_second=6.51932T/s +BM_format_string/32768 2.28 ns 2.28 ns 306905088 bytes_per_second=13.0609T/s +BM_format_string/65536 2.33 ns 2.33 ns 300482560 bytes_per_second=25.5889T/s +BM_format_string/131072 2.60 ns 2.60 ns 269615104 bytes_per_second=45.904T/s +BM_format_string/262144 2.71 ns 2.71 ns 258211840 bytes_per_second=88.0239T/s +BM_format_string/524288 2.76 ns 2.76 ns 253231104 bytes_per_second=172.706T/s +BM_format_string/1048576 2.80 ns 2.79 ns 250609664 bytes_per_second=341.317T/s +BM_format_string/1 39.6 ns 39.6 ns 17674280 bytes_per_second=96.2655M/s +BM_format_string/2 20.6 ns 20.6 ns 33903786 bytes_per_second=369.672M/s +BM_format_string/4 11.5 ns 11.5 ns 61029212 bytes_per_second=1.29816G/s +BM_format_string/8 9.88 ns 9.87 ns 70804848 bytes_per_second=3.01854G/s +BM_format_string/16 5.94 ns 5.94 ns 117722976 bytes_per_second=10.0317G/s +BM_format_string/32 3.97 ns 3.97 ns 176390496 bytes_per_second=30.0407G/s +BM_format_string/64 3.26 ns 3.26 ns 214762880 bytes_per_second=73.201G/s +BM_format_string/128 3.07 ns 3.07 ns 227731840 bytes_per_second=155.478G/s +BM_format_string/256 2.99 ns 2.99 ns 233409536 bytes_per_second=318.95G/s +BM_format_string/512 2.90 ns 2.90 ns 240894976 bytes_per_second=657.67G/s +BM_format_string/1024 2.70 ns 2.70 ns 259237888 bytes_per_second=1.37986T/s +BM_format_string/2048 2.62 ns 2.62 ns 267853824 bytes_per_second=2.84855T/s +BM_format_string/4096 2.57 ns 2.57 ns 272265216 bytes_per_second=5.79715T/s +BM_format_string/8192 2.56 ns 2.56 ns 273612800 bytes_per_second=11.6526T/s +BM_format_string/16384 2.55 ns 2.55 ns 273793024 bytes_per_second=23.3424T/s +BM_format_string/32768 2.59 ns 2.59 ns 269811712 bytes_per_second=45.9856T/s +BM_format_string/65536 2.58 ns 2.58 ns 270598144 bytes_per_second=92.2862T/s +BM_format_string/131072 2.60 ns 2.60 ns 268828672 bytes_per_second=183.205T/s +BM_format_string/262144 4.58 ns 4.58 ns 153092096 bytes_per_second=208.405T/s +BM_format_string/524288 4.78 ns 4.77 ns 146276352 bytes_per_second=399.575T/s +BM_format_string/1048576 4.57 ns 4.57 ns 154140672 bytes_per_second=835.334T/s diff --git a/libcxx/before/format_to.txt b/libcxx/before/format_to.txt new file mode 100644 --- /dev/null +++ b/libcxx/before/format_to.txt @@ -0,0 +1,339 @@ +-------------------------------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +-------------------------------------------------------------------------------------------------------------------------- +BM_format_to_string_back_inserter/1 39.3 ns 39.3 ns 17851007 bytes_per_second=24.2472M/s +BM_format_to_string_back_inserter/2 40.9 ns 40.9 ns 17113192 bytes_per_second=46.65M/s +BM_format_to_string_back_inserter/4 45.3 ns 45.2 ns 15429842 bytes_per_second=84.3045M/s +BM_format_to_string_back_inserter/8 53.4 ns 53.4 ns 13143143 bytes_per_second=142.981M/s +BM_format_to_string_back_inserter/16 69.8 ns 69.7 ns 10030085 bytes_per_second=218.793M/s +BM_format_to_string_back_inserter/32 122 ns 122 ns 5743765 bytes_per_second=250.638M/s +BM_format_to_string_back_inserter/64 206 ns 206 ns 3392054 bytes_per_second=296.04M/s +BM_format_to_string_back_inserter/128 350 ns 350 ns 1996850 bytes_per_second=348.452M/s +BM_format_to_string_back_inserter/256 634 ns 634 ns 1097759 bytes_per_second=385.042M/s +BM_format_to_string_back_inserter/512 1242 ns 1241 ns 563382 bytes_per_second=393.314M/s +BM_format_to_string_back_inserter/1024 2486 ns 2486 ns 281367 bytes_per_second=392.891M/s +BM_format_to_string_back_inserter/2048 4883 ns 4881 ns 143466 bytes_per_second=400.146M/s +BM_format_to_string_back_inserter/4096 9584 ns 9580 ns 72837 bytes_per_second=407.751M/s +BM_format_to_string_back_inserter/8192 18957 ns 18950 ns 36926 bytes_per_second=412.277M/s +BM_format_to_string_back_inserter/16384 37743 ns 37729 ns 18557 bytes_per_second=414.141M/s +BM_format_to_string_back_inserter/32768 75504 ns 75477 ns 9276 bytes_per_second=414.031M/s +BM_format_to_string_back_inserter/65536 149335 ns 149269 ns 4691 bytes_per_second=418.706M/s +BM_format_to_string_back_inserter/131072 325041 ns 324909 ns 2156 bytes_per_second=384.724M/s +BM_format_to_string_back_inserter/262144 695653 ns 695282 ns 1008 bytes_per_second=359.566M/s +BM_format_to_string_back_inserter/524288 1436307 ns 1435605 ns 488 bytes_per_second=348.285M/s +BM_format_to_string_back_inserter/1048576 2938109 ns 2936439 ns 238 bytes_per_second=340.549M/s +BM_format_to_string_back_inserter>/1 52.8 ns 52.8 ns 13273130 bytes_per_second=18.0772M/s +BM_format_to_string_back_inserter>/2 55.1 ns 55.1 ns 12682916 bytes_per_second=34.6119M/s +BM_format_to_string_back_inserter>/4 58.0 ns 58.0 ns 12080785 bytes_per_second=65.8229M/s +BM_format_to_string_back_inserter>/8 66.0 ns 66.0 ns 10599616 bytes_per_second=115.577M/s +BM_format_to_string_back_inserter>/16 83.0 ns 83.0 ns 8450004 bytes_per_second=183.929M/s +BM_format_to_string_back_inserter>/32 118 ns 118 ns 5941561 bytes_per_second=259.193M/s +BM_format_to_string_back_inserter>/64 202 ns 202 ns 3477164 bytes_per_second=302.629M/s +BM_format_to_string_back_inserter>/128 366 ns 366 ns 1915599 bytes_per_second=333.779M/s +BM_format_to_string_back_inserter>/256 637 ns 637 ns 1084507 bytes_per_second=383.511M/s +BM_format_to_string_back_inserter>/512 1219 ns 1219 ns 574962 bytes_per_second=400.551M/s +BM_format_to_string_back_inserter>/1024 2401 ns 2400 ns 292059 bytes_per_second=406.918M/s +BM_format_to_string_back_inserter>/2048 4805 ns 4802 ns 145582 bytes_per_second=406.69M/s +BM_format_to_string_back_inserter>/4096 9464 ns 9461 ns 74002 bytes_per_second=412.872M/s +BM_format_to_string_back_inserter>/8192 18794 ns 18786 ns 37294 bytes_per_second=415.872M/s +BM_format_to_string_back_inserter>/16384 37371 ns 37356 ns 18717 bytes_per_second=418.268M/s +BM_format_to_string_back_inserter>/32768 74969 ns 74942 ns 9335 bytes_per_second=416.99M/s +BM_format_to_string_back_inserter>/65536 148077 ns 148020 ns 4725 bytes_per_second=422.24M/s +BM_format_to_string_back_inserter>/131072 298204 ns 298056 ns 2351 bytes_per_second=419.385M/s +BM_format_to_string_back_inserter>/262144 597450 ns 597173 ns 1171 bytes_per_second=418.639M/s +BM_format_to_string_back_inserter>/524288 1192279 ns 1191700 ns 588 bytes_per_second=419.569M/s +BM_format_to_string_back_inserter>/1048576 2394636 ns 2393339 ns 292 bytes_per_second=417.826M/s +BM_format_to_string_back_inserter>/1 52.2 ns 52.2 ns 13358310 bytes_per_second=18.2737M/s +BM_format_to_string_back_inserter>/2 65.6 ns 65.6 ns 10693004 bytes_per_second=29.0974M/s +BM_format_to_string_back_inserter>/4 93.8 ns 93.8 ns 7462495 bytes_per_second=40.6757M/s +BM_format_to_string_back_inserter>/8 161 ns 161 ns 4375165 bytes_per_second=47.512M/s +BM_format_to_string_back_inserter>/16 310 ns 310 ns 2281308 bytes_per_second=49.2962M/s +BM_format_to_string_back_inserter>/32 621 ns 621 ns 1121230 bytes_per_second=49.1445M/s +BM_format_to_string_back_inserter>/64 1228 ns 1228 ns 570470 bytes_per_second=49.6886M/s +BM_format_to_string_back_inserter>/128 2410 ns 2410 ns 288460 bytes_per_second=50.6559M/s +BM_format_to_string_back_inserter>/256 4787 ns 4787 ns 146122 bytes_per_second=51.0026M/s +BM_format_to_string_back_inserter>/512 9558 ns 9558 ns 73114 bytes_per_second=51.086M/s +BM_format_to_string_back_inserter>/1024 19235 ns 19235 ns 36354 bytes_per_second=50.7706M/s +BM_format_to_string_back_inserter>/2048 38503 ns 38503 ns 18182 bytes_per_second=50.727M/s +BM_format_to_string_back_inserter>/4096 77164 ns 77164 ns 9059 bytes_per_second=50.6226M/s +BM_format_to_string_back_inserter>/8192 155284 ns 155283 ns 4509 bytes_per_second=50.3112M/s +BM_format_to_string_back_inserter>/16384 311444 ns 311439 ns 2248 bytes_per_second=50.1704M/s +BM_format_to_string_back_inserter>/32768 623696 ns 623696 ns 1114 bytes_per_second=50.1045M/s +BM_format_to_string_back_inserter>/65536 1248241 ns 1248234 ns 558 bytes_per_second=50.0707M/s +BM_format_to_string_back_inserter>/131072 2515105 ns 2515077 ns 277 bytes_per_second=49.7003M/s +BM_format_to_string_back_inserter>/262144 5223970 ns 5223802 ns 124 bytes_per_second=47.8579M/s +BM_format_to_string_back_inserter>/524288 10747614 ns 10722883 ns 61 bytes_per_second=46.6293M/s +BM_format_to_string_back_inserter>/1048576 21823410 ns 21771042 ns 30 bytes_per_second=45.9326M/s +BM_format_to_string_begin/1 31.0 ns 31.0 ns 22605202 bytes_per_second=30.7703M/s +BM_format_to_string_begin/2 32.2 ns 32.2 ns 21736311 bytes_per_second=59.2341M/s +BM_format_to_string_begin/4 35.3 ns 35.3 ns 19843208 bytes_per_second=108.032M/s +BM_format_to_string_begin/8 42.1 ns 42.0 ns 16651659 bytes_per_second=181.53M/s +BM_format_to_string_begin/16 56.7 ns 56.6 ns 12351581 bytes_per_second=269.477M/s +BM_format_to_string_begin/32 86.2 ns 86.1 ns 8110325 bytes_per_second=354.332M/s +BM_format_to_string_begin/64 149 ns 149 ns 4651728 bytes_per_second=409.186M/s +BM_format_to_string_begin/128 269 ns 268 ns 2601402 bytes_per_second=454.992M/s +BM_format_to_string_begin/256 552 ns 552 ns 1243850 bytes_per_second=442.463M/s +BM_format_to_string_begin/512 1109 ns 1108 ns 626649 bytes_per_second=440.802M/s +BM_format_to_string_begin/1024 1994 ns 1992 ns 351354 bytes_per_second=490.252M/s +BM_format_to_string_begin/2048 3968 ns 3964 ns 175329 bytes_per_second=492.676M/s +BM_format_to_string_begin/4096 7561 ns 7554 ns 91139 bytes_per_second=517.144M/s +BM_format_to_string_begin/8192 14707 ns 14693 ns 47707 bytes_per_second=531.729M/s +BM_format_to_string_begin/16384 31224 ns 31196 ns 22445 bytes_per_second=500.864M/s +BM_format_to_string_begin/32768 61175 ns 61113 ns 11428 bytes_per_second=511.349M/s +BM_format_to_string_begin/65536 126086 ns 125968 ns 5568 bytes_per_second=496.159M/s +BM_format_to_string_begin/131072 246662 ns 246400 ns 2833 bytes_per_second=507.305M/s +BM_format_to_string_begin/262144 495877 ns 495361 ns 1414 bytes_per_second=504.682M/s +BM_format_to_string_begin/524288 987349 ns 986346 ns 710 bytes_per_second=506.921M/s +BM_format_to_string_begin/1048576 1971895 ns 1969779 ns 356 bytes_per_second=507.671M/s +BM_format_to_string_begin>/1 30.6 ns 30.6 ns 22927558 bytes_per_second=31.2022M/s +BM_format_to_string_begin>/2 31.6 ns 31.5 ns 22216023 bytes_per_second=60.5019M/s +BM_format_to_string_begin>/4 33.6 ns 33.5 ns 20877618 bytes_per_second=113.731M/s +BM_format_to_string_begin>/8 41.0 ns 40.9 ns 17139230 bytes_per_second=186.445M/s +BM_format_to_string_begin>/16 56.1 ns 56.0 ns 12478953 bytes_per_second=272.296M/s +BM_format_to_string_begin>/32 84.5 ns 84.4 ns 8296548 bytes_per_second=361.547M/s +BM_format_to_string_begin>/64 143 ns 143 ns 4896161 bytes_per_second=425.865M/s +BM_format_to_string_begin>/128 262 ns 262 ns 2651436 bytes_per_second=465.744M/s +BM_format_to_string_begin>/256 508 ns 507 ns 1380229 bytes_per_second=481.179M/s +BM_format_to_string_begin>/512 982 ns 981 ns 712874 bytes_per_second=497.615M/s +BM_format_to_string_begin>/1024 1937 ns 1935 ns 361916 bytes_per_second=504.676M/s +BM_format_to_string_begin>/2048 3792 ns 3788 ns 186057 bytes_per_second=515.549M/s +BM_format_to_string_begin>/4096 7651 ns 7644 ns 93081 bytes_per_second=511.029M/s +BM_format_to_string_begin>/8192 14846 ns 14832 ns 47340 bytes_per_second=526.738M/s +BM_format_to_string_begin>/16384 31165 ns 31136 ns 22297 bytes_per_second=501.832M/s +BM_format_to_string_begin>/32768 60297 ns 60239 ns 11601 bytes_per_second=518.764M/s +BM_format_to_string_begin>/65536 126439 ns 126312 ns 5528 bytes_per_second=494.806M/s +BM_format_to_string_begin>/131072 243962 ns 243717 ns 2867 bytes_per_second=512.891M/s +BM_format_to_string_begin>/262144 488215 ns 487721 ns 1435 bytes_per_second=512.588M/s +BM_format_to_string_begin>/524288 973884 ns 972939 ns 721 bytes_per_second=513.907M/s +BM_format_to_string_begin>/1048576 1946522 ns 1944561 ns 360 bytes_per_second=514.255M/s +BM_format_to_string_begin>/1 31.6 ns 31.6 ns 22138930 bytes_per_second=30.1688M/s +BM_format_to_string_begin>/2 34.0 ns 34.0 ns 21180048 bytes_per_second=56.115M/s +BM_format_to_string_begin>/4 37.1 ns 37.1 ns 17839136 bytes_per_second=102.957M/s +BM_format_to_string_begin>/8 52.0 ns 51.9 ns 13413072 bytes_per_second=146.896M/s +BM_format_to_string_begin>/16 74.4 ns 74.4 ns 9343827 bytes_per_second=205.146M/s +BM_format_to_string_begin>/32 122 ns 122 ns 5761779 bytes_per_second=250.798M/s +BM_format_to_string_begin>/64 216 ns 216 ns 3240752 bytes_per_second=282.46M/s +BM_format_to_string_begin>/128 408 ns 408 ns 1718931 bytes_per_second=299.24M/s +BM_format_to_string_begin>/256 791 ns 790 ns 887927 bytes_per_second=308.877M/s +BM_format_to_string_begin>/512 1561 ns 1559 ns 449345 bytes_per_second=313.15M/s +BM_format_to_string_begin>/1024 3121 ns 3118 ns 224735 bytes_per_second=313.169M/s +BM_format_to_string_begin>/2048 6198 ns 6192 ns 113155 bytes_per_second=315.44M/s +BM_format_to_string_begin>/4096 12356 ns 12344 ns 56645 bytes_per_second=316.443M/s +BM_format_to_string_begin>/8192 24787 ns 24761 ns 28283 bytes_per_second=315.513M/s +BM_format_to_string_begin>/16384 49362 ns 49313 ns 14217 bytes_per_second=316.853M/s +BM_format_to_string_begin>/32768 98372 ns 98272 ns 7128 bytes_per_second=317.996M/s +BM_format_to_string_begin>/65536 196544 ns 196343 ns 3565 bytes_per_second=318.321M/s +BM_format_to_string_begin>/131072 398933 ns 398350 ns 1759 bytes_per_second=313.794M/s +BM_format_to_string_begin>/262144 921090 ns 918869 ns 756 bytes_per_second=272.074M/s +BM_format_to_string_begin>/524288 2109426 ns 2104321 ns 333 bytes_per_second=237.606M/s +BM_format_to_string_begin>/1048576 4409461 ns 4398739 ns 159 bytes_per_second=227.338M/s +BM_format_to_string_span>/1 31.4 ns 31.4 ns 22313366 bytes_per_second=30.3883M/s +BM_format_to_string_span>/2 32.0 ns 31.9 ns 21935868 bytes_per_second=59.722M/s +BM_format_to_string_span>/4 35.3 ns 35.3 ns 19796705 bytes_per_second=108.033M/s +BM_format_to_string_span>/8 42.3 ns 42.3 ns 16598367 bytes_per_second=180.515M/s +BM_format_to_string_span>/16 56.0 ns 56.0 ns 12475646 bytes_per_second=272.556M/s +BM_format_to_string_span>/32 87.2 ns 87.1 ns 8093149 bytes_per_second=350.406M/s +BM_format_to_string_span>/64 147 ns 147 ns 4733228 bytes_per_second=415.983M/s +BM_format_to_string_span>/128 274 ns 273 ns 2574297 bytes_per_second=446.608M/s +BM_format_to_string_span>/256 504 ns 503 ns 1386007 bytes_per_second=485.283M/s +BM_format_to_string_span>/512 988 ns 987 ns 706055 bytes_per_second=494.829M/s +BM_format_to_string_span>/1024 1943 ns 1941 ns 360969 bytes_per_second=503.163M/s +BM_format_to_string_span>/2048 3953 ns 3950 ns 176833 bytes_per_second=494.473M/s +BM_format_to_string_span>/4096 7796 ns 7789 ns 90264 bytes_per_second=501.51M/s +BM_format_to_string_span>/8192 14707 ns 14694 ns 47628 bytes_per_second=531.669M/s +BM_format_to_string_span>/16384 31272 ns 31242 ns 22396 bytes_per_second=500.12M/s +BM_format_to_string_span>/32768 60835 ns 60779 ns 11537 bytes_per_second=514.159M/s +BM_format_to_string_span>/65536 124283 ns 124163 ns 5635 bytes_per_second=503.372M/s +BM_format_to_string_span>/131072 245324 ns 245077 ns 2856 bytes_per_second=510.045M/s +BM_format_to_string_span>/262144 494089 ns 493569 ns 1418 bytes_per_second=506.515M/s +BM_format_to_string_span>/524288 987521 ns 986530 ns 710 bytes_per_second=506.827M/s +BM_format_to_string_span>/1048576 1972241 ns 1970158 ns 355 bytes_per_second=507.574M/s +BM_format_to_string_pointer/1 31.1 ns 31.1 ns 22529776 bytes_per_second=30.6867M/s +BM_format_to_string_pointer/2 32.2 ns 32.1 ns 21768157 bytes_per_second=59.3642M/s +BM_format_to_string_pointer/4 34.7 ns 34.7 ns 20190453 bytes_per_second=109.936M/s +BM_format_to_string_pointer/8 40.6 ns 40.6 ns 17298274 bytes_per_second=187.99M/s +BM_format_to_string_pointer/16 56.4 ns 56.3 ns 12448474 bytes_per_second=270.948M/s +BM_format_to_string_pointer/32 84.7 ns 84.6 ns 8294748 bytes_per_second=360.639M/s +BM_format_to_string_pointer/64 147 ns 147 ns 4759736 bytes_per_second=414.764M/s +BM_format_to_string_pointer/128 288 ns 288 ns 2437952 bytes_per_second=424.24M/s +BM_format_to_string_pointer/256 576 ns 575 ns 1228502 bytes_per_second=424.524M/s +BM_format_to_string_pointer/512 1125 ns 1124 ns 633244 bytes_per_second=434.467M/s +BM_format_to_string_pointer/1024 1994 ns 1992 ns 351621 bytes_per_second=490.136M/s +BM_format_to_string_pointer/2048 3861 ns 3857 ns 181973 bytes_per_second=506.332M/s +BM_format_to_string_pointer/4096 7865 ns 7858 ns 88927 bytes_per_second=497.132M/s +BM_format_to_string_pointer/8192 14742 ns 14729 ns 47518 bytes_per_second=530.417M/s +BM_format_to_string_pointer/16384 31428 ns 31400 ns 22250 bytes_per_second=497.619M/s +BM_format_to_string_pointer/32768 60942 ns 60882 ns 11500 bytes_per_second=513.287M/s +BM_format_to_string_pointer/65536 123791 ns 123673 ns 5663 bytes_per_second=505.364M/s +BM_format_to_string_pointer/131072 245225 ns 244971 ns 2854 bytes_per_second=510.265M/s +BM_format_to_string_pointer/262144 493878 ns 493386 ns 1419 bytes_per_second=506.702M/s +BM_format_to_string_pointer/524288 987519 ns 986516 ns 710 bytes_per_second=506.834M/s +BM_format_to_string_pointer/1048576 1972722 ns 1970444 ns 355 bytes_per_second=507.5M/s +BM_format_to_string_back_inserter/1 43.1 ns 43.1 ns 16251106 bytes_per_second=88.5922M/s +BM_format_to_string_back_inserter/2 43.5 ns 43.5 ns 16136813 bytes_per_second=175.456M/s +BM_format_to_string_back_inserter/4 47.5 ns 47.5 ns 14724861 bytes_per_second=321.221M/s +BM_format_to_string_back_inserter/8 74.5 ns 74.4 ns 9428063 bytes_per_second=410.267M/s +BM_format_to_string_back_inserter/16 94.1 ns 94.0 ns 7433127 bytes_per_second=649.048M/s +BM_format_to_string_back_inserter/32 131 ns 131 ns 5346982 bytes_per_second=932.888M/s +BM_format_to_string_back_inserter/64 209 ns 209 ns 3357877 bytes_per_second=1.14147G/s +BM_format_to_string_back_inserter/128 397 ns 397 ns 1766181 bytes_per_second=1.20174G/s +BM_format_to_string_back_inserter/256 795 ns 794 ns 882831 bytes_per_second=1.20078G/s +BM_format_to_string_back_inserter/512 1506 ns 1505 ns 465499 bytes_per_second=1.26764G/s +BM_format_to_string_back_inserter/1024 2860 ns 2857 ns 245055 bytes_per_second=1.33498G/s +BM_format_to_string_back_inserter/2048 5534 ns 5529 ns 127002 bytes_per_second=1.37985G/s +BM_format_to_string_back_inserter/4096 10811 ns 10801 ns 64811 bytes_per_second=1.41269G/s +BM_format_to_string_back_inserter/8192 21450 ns 21429 ns 32634 bytes_per_second=1.4241G/s +BM_format_to_string_back_inserter/16384 42268 ns 42227 ns 16584 bytes_per_second=1.44541G/s +BM_format_to_string_back_inserter/32768 85714 ns 85628 ns 8178 bytes_per_second=1.4256G/s +BM_format_to_string_back_inserter/65536 173425 ns 173246 ns 4043 bytes_per_second=1.40922G/s +BM_format_to_string_back_inserter/131072 345710 ns 345372 ns 2026 bytes_per_second=1.41378G/s +BM_format_to_string_back_inserter/262144 1199022 ns 1197284 ns 583 bytes_per_second=835.224M/s +BM_format_to_string_back_inserter/524288 2504500 ns 2498739 ns 280 bytes_per_second=800.404M/s +BM_format_to_string_back_inserter/1048576 4764132 ns 4752655 ns 147 bytes_per_second=841.635M/s +BM_format_to_string_back_inserter>/1 59.8 ns 59.8 ns 11728742 bytes_per_second=63.8387M/s +BM_format_to_string_back_inserter>/2 60.0 ns 59.9 ns 11677234 bytes_per_second=127.293M/s +BM_format_to_string_back_inserter>/4 63.8 ns 63.8 ns 11003241 bytes_per_second=239.327M/s +BM_format_to_string_back_inserter>/8 71.2 ns 71.1 ns 9851596 bytes_per_second=429.149M/s +BM_format_to_string_back_inserter>/16 86.2 ns 86.1 ns 8177162 bytes_per_second=708.684M/s +BM_format_to_string_back_inserter>/32 135 ns 135 ns 5193171 bytes_per_second=905.14M/s +BM_format_to_string_back_inserter>/64 202 ns 202 ns 3463904 bytes_per_second=1.17977G/s +BM_format_to_string_back_inserter>/128 376 ns 376 ns 1867466 bytes_per_second=1.26874G/s +BM_format_to_string_back_inserter>/256 715 ns 714 ns 980020 bytes_per_second=1.3354G/s +BM_format_to_string_back_inserter>/512 1432 ns 1431 ns 489179 bytes_per_second=1.33331G/s +BM_format_to_string_back_inserter>/1024 2733 ns 2731 ns 256117 bytes_per_second=1.39707G/s +BM_format_to_string_back_inserter>/2048 5313 ns 5308 ns 131792 bytes_per_second=1.43739G/s +BM_format_to_string_back_inserter>/4096 10484 ns 10473 ns 66711 bytes_per_second=1.4569G/s +BM_format_to_string_back_inserter>/8192 21181 ns 21161 ns 33086 bytes_per_second=1.44216G/s +BM_format_to_string_back_inserter>/16384 41222 ns 41183 ns 16988 bytes_per_second=1.48206G/s +BM_format_to_string_back_inserter>/32768 83850 ns 83761 ns 8354 bytes_per_second=1.45737G/s +BM_format_to_string_back_inserter>/65536 169845 ns 169677 ns 4125 bytes_per_second=1.43885G/s +BM_format_to_string_back_inserter>/131072 339042 ns 338702 ns 2064 bytes_per_second=1.44163G/s +BM_format_to_string_back_inserter>/262144 679147 ns 678442 ns 1030 bytes_per_second=1.43942G/s +BM_format_to_string_back_inserter>/524288 1360221 ns 1357530 ns 515 bytes_per_second=1.43873G/s +BM_format_to_string_back_inserter>/1048576 2928774 ns 2922055 ns 239 bytes_per_second=1.33682G/s +BM_format_to_string_back_inserter>/1 53.8 ns 53.8 ns 13034245 bytes_per_second=70.9359M/s +BM_format_to_string_back_inserter>/2 67.7 ns 67.7 ns 10333096 bytes_per_second=112.741M/s +BM_format_to_string_back_inserter>/4 99.9 ns 99.8 ns 6997013 bytes_per_second=152.851M/s +BM_format_to_string_back_inserter>/8 169 ns 169 ns 4147214 bytes_per_second=180.516M/s +BM_format_to_string_back_inserter>/16 320 ns 320 ns 2189621 bytes_per_second=190.983M/s +BM_format_to_string_back_inserter>/32 643 ns 642 ns 1082037 bytes_per_second=190.06M/s +BM_format_to_string_back_inserter>/64 1259 ns 1258 ns 556421 bytes_per_second=194.088M/s +BM_format_to_string_back_inserter>/128 2458 ns 2456 ns 284859 bytes_per_second=198.802M/s +BM_format_to_string_back_inserter>/256 4867 ns 4863 ns 143991 bytes_per_second=200.818M/s +BM_format_to_string_back_inserter>/512 9722 ns 9713 ns 72082 bytes_per_second=201.087M/s +BM_format_to_string_back_inserter>/1024 19454 ns 19436 ns 36047 bytes_per_second=200.982M/s +BM_format_to_string_back_inserter>/2048 38952 ns 38914 ns 17985 bytes_per_second=200.763M/s +BM_format_to_string_back_inserter>/4096 78010 ns 77931 ns 8980 bytes_per_second=200.498M/s +BM_format_to_string_back_inserter>/8192 156838 ns 156677 ns 4464 bytes_per_second=199.455M/s +BM_format_to_string_back_inserter>/16384 314229 ns 313895 ns 2229 bytes_per_second=199.111M/s +BM_format_to_string_back_inserter>/32768 628546 ns 627928 ns 1109 bytes_per_second=199.067M/s +BM_format_to_string_back_inserter>/65536 1258339 ns 1256896 ns 555 bytes_per_second=198.903M/s +BM_format_to_string_back_inserter>/131072 2529588 ns 2525572 ns 276 bytes_per_second=197.975M/s +BM_format_to_string_back_inserter>/262144 5175627 ns 5163829 ns 125 bytes_per_second=193.655M/s +BM_format_to_string_back_inserter>/524288 10513129 ns 10488184 ns 62 bytes_per_second=190.691M/s +BM_format_to_string_back_inserter>/1048576 21339631 ns 21291917 ns 31 bytes_per_second=187.865M/s +BM_format_to_string_begin/1 31.7 ns 31.7 ns 22101018 bytes_per_second=120.427M/s +BM_format_to_string_begin/2 32.5 ns 32.5 ns 21565712 bytes_per_second=234.737M/s +BM_format_to_string_begin/4 35.2 ns 35.1 ns 19942828 bytes_per_second=434.32M/s +BM_format_to_string_begin/8 45.4 ns 45.3 ns 15443050 bytes_per_second=673.368M/s +BM_format_to_string_begin/16 56.2 ns 56.2 ns 12449190 bytes_per_second=1086.59M/s +BM_format_to_string_begin/32 86.3 ns 86.2 ns 8120820 bytes_per_second=1.38233G/s +BM_format_to_string_begin/64 146 ns 146 ns 4774782 bytes_per_second=1.62989G/s +BM_format_to_string_begin/128 262 ns 262 ns 2679623 bytes_per_second=1.82201G/s +BM_format_to_string_begin/256 492 ns 491 ns 1425634 bytes_per_second=1.94113G/s +BM_format_to_string_begin/512 950 ns 949 ns 735063 bytes_per_second=2.00942G/s +BM_format_to_string_begin/1024 1919 ns 1917 ns 364794 bytes_per_second=1.99016G/s +BM_format_to_string_begin/2048 3808 ns 3805 ns 183945 bytes_per_second=2.00524G/s +BM_format_to_string_begin/4096 7697 ns 7690 ns 91107 bytes_per_second=1.98429G/s +BM_format_to_string_begin/8192 15136 ns 15122 ns 46245 bytes_per_second=2.01812G/s +BM_format_to_string_begin/16384 31101 ns 31070 ns 22428 bytes_per_second=1.96442G/s +BM_format_to_string_begin/32768 60877 ns 60813 ns 11465 bytes_per_second=2.0073G/s +BM_format_to_string_begin/65536 124100 ns 123975 ns 5643 bytes_per_second=1.96928G/s +BM_format_to_string_begin/131072 250179 ns 249924 ns 2803 bytes_per_second=1.95372G/s +BM_format_to_string_begin/262144 492394 ns 491914 ns 1423 bytes_per_second=1.98523G/s +BM_format_to_string_begin/524288 980484 ns 979015 ns 716 bytes_per_second=1.99499G/s +BM_format_to_string_begin/1048576 1978730 ns 1974187 ns 355 bytes_per_second=1.97866G/s +BM_format_to_string_begin>/1 31.6 ns 31.6 ns 22165728 bytes_per_second=120.718M/s +BM_format_to_string_begin>/2 32.7 ns 32.7 ns 21420917 bytes_per_second=233.489M/s +BM_format_to_string_begin>/4 34.8 ns 34.8 ns 20126552 bytes_per_second=438.258M/s +BM_format_to_string_begin>/8 41.5 ns 41.5 ns 16859169 bytes_per_second=735.377M/s +BM_format_to_string_begin>/16 55.9 ns 55.8 ns 12517082 bytes_per_second=1092.87M/s +BM_format_to_string_begin>/32 85.2 ns 85.1 ns 8223499 bytes_per_second=1.40064G/s +BM_format_to_string_begin>/64 147 ns 147 ns 4784264 bytes_per_second=1.62661G/s +BM_format_to_string_begin>/128 261 ns 261 ns 2676207 bytes_per_second=1.8254G/s +BM_format_to_string_begin>/256 494 ns 494 ns 1418791 bytes_per_second=1.93156G/s +BM_format_to_string_begin>/512 958 ns 957 ns 729789 bytes_per_second=1.99258G/s +BM_format_to_string_begin>/1024 1907 ns 1905 ns 368503 bytes_per_second=2.00202G/s +BM_format_to_string_begin>/2048 3799 ns 3796 ns 184676 bytes_per_second=2.00987G/s +BM_format_to_string_begin>/4096 7762 ns 7755 ns 90150 bytes_per_second=1.9677G/s +BM_format_to_string_begin>/8192 15033 ns 15019 ns 46582 bytes_per_second=2.03197G/s +BM_format_to_string_begin>/16384 31079 ns 31047 ns 22582 bytes_per_second=1.96586G/s +BM_format_to_string_begin>/32768 60861 ns 60799 ns 11536 bytes_per_second=2.00775G/s +BM_format_to_string_begin>/65536 120524 ns 120398 ns 5812 bytes_per_second=2.02779G/s +BM_format_to_string_begin>/131072 239049 ns 238808 ns 2934 bytes_per_second=2.04466G/s +BM_format_to_string_begin>/262144 485279 ns 484766 ns 1445 bytes_per_second=2.0145G/s +BM_format_to_string_begin>/524288 979718 ns 978259 ns 716 bytes_per_second=1.99653G/s +BM_format_to_string_begin>/1048576 1983644 ns 1979303 ns 353 bytes_per_second=1.97355G/s +BM_format_to_string_begin>/1 31.7 ns 31.7 ns 22075938 bytes_per_second=120.345M/s +BM_format_to_string_begin>/2 33.3 ns 33.2 ns 21069229 bytes_per_second=229.587M/s +BM_format_to_string_begin>/4 39.0 ns 39.0 ns 18026922 bytes_per_second=391.126M/s +BM_format_to_string_begin>/8 49.1 ns 49.1 ns 14243700 bytes_per_second=622.172M/s +BM_format_to_string_begin>/16 75.0 ns 74.9 ns 9364875 bytes_per_second=814.448M/s +BM_format_to_string_begin>/32 123 ns 123 ns 5743996 bytes_per_second=995.025M/s +BM_format_to_string_begin>/64 216 ns 216 ns 3234505 bytes_per_second=1.10596G/s +BM_format_to_string_begin>/128 407 ns 406 ns 1722427 bytes_per_second=1.17378G/s +BM_format_to_string_begin>/256 790 ns 790 ns 886444 bytes_per_second=1.20774G/s +BM_format_to_string_begin>/512 1575 ns 1573 ns 444778 bytes_per_second=1.2122G/s +BM_format_to_string_begin>/1024 3120 ns 3117 ns 224702 bytes_per_second=1.22381G/s +BM_format_to_string_begin>/2048 6182 ns 6176 ns 113449 bytes_per_second=1.23534G/s +BM_format_to_string_begin>/4096 12337 ns 12324 ns 56789 bytes_per_second=1.23815G/s +BM_format_to_string_begin>/8192 24729 ns 24705 ns 28286 bytes_per_second=1.23528G/s +BM_format_to_string_begin>/16384 49348 ns 49296 ns 14205 bytes_per_second=1.23814G/s +BM_format_to_string_begin>/32768 98360 ns 98262 ns 7126 bytes_per_second=1.24229G/s +BM_format_to_string_begin>/65536 196552 ns 196347 ns 3561 bytes_per_second=1.24341G/s +BM_format_to_string_begin>/131072 393625 ns 393059 ns 1764 bytes_per_second=1.24226G/s +BM_format_to_string_begin>/262144 951326 ns 949033 ns 737 bytes_per_second=1053.7M/s +BM_format_to_string_begin>/524288 2194016 ns 2188643 ns 318 bytes_per_second=913.808M/s +BM_format_to_string_begin>/1048576 4579232 ns 4567819 ns 153 bytes_per_second=875.692M/s +BM_format_to_string_span>/1 31.6 ns 31.5 ns 22204929 bytes_per_second=120.953M/s +BM_format_to_string_span>/2 32.7 ns 32.7 ns 21399295 bytes_per_second=233.259M/s +BM_format_to_string_span>/4 36.7 ns 36.7 ns 19088282 bytes_per_second=415.768M/s +BM_format_to_string_span>/8 43.7 ns 43.6 ns 15979287 bytes_per_second=699.614M/s +BM_format_to_string_span>/16 56.0 ns 55.9 ns 12496860 bytes_per_second=1091.73M/s +BM_format_to_string_span>/32 85.4 ns 85.3 ns 8225066 bytes_per_second=1.39787G/s +BM_format_to_string_span>/64 148 ns 148 ns 4740781 bytes_per_second=1.61636G/s +BM_format_to_string_span>/128 261 ns 261 ns 2682991 bytes_per_second=1.82714G/s +BM_format_to_string_span>/256 491 ns 491 ns 1430130 bytes_per_second=1.94299G/s +BM_format_to_string_span>/512 963 ns 962 ns 732489 bytes_per_second=1.98347G/s +BM_format_to_string_span>/1024 1901 ns 1899 ns 367262 bytes_per_second=2.00833G/s +BM_format_to_string_span>/2048 3818 ns 3814 ns 183916 bytes_per_second=2.00029G/s +BM_format_to_string_span>/4096 7713 ns 7707 ns 90763 bytes_per_second=1.97998G/s +BM_format_to_string_span>/8192 15156 ns 15141 ns 46060 bytes_per_second=2.01552G/s +BM_format_to_string_span>/16384 31055 ns 31024 ns 22591 bytes_per_second=1.96735G/s +BM_format_to_string_span>/32768 60808 ns 60748 ns 11510 bytes_per_second=2.00944G/s +BM_format_to_string_span>/65536 123959 ns 123828 ns 5660 bytes_per_second=1.97161G/s +BM_format_to_string_span>/131072 250169 ns 249924 ns 2804 bytes_per_second=1.95372G/s +BM_format_to_string_span>/262144 492444 ns 491942 ns 1423 bytes_per_second=1.98512G/s +BM_format_to_string_span>/524288 979676 ns 978244 ns 716 bytes_per_second=1.99656G/s +BM_format_to_string_span>/1048576 1978049 ns 1973710 ns 355 bytes_per_second=1.97914G/s +BM_format_to_string_pointer/1 31.2 ns 31.2 ns 22448222 bytes_per_second=122.24M/s +BM_format_to_string_pointer/2 32.1 ns 32.0 ns 21851431 bytes_per_second=238.191M/s +BM_format_to_string_pointer/4 34.7 ns 34.6 ns 20205345 bytes_per_second=440.539M/s +BM_format_to_string_pointer/8 41.3 ns 41.2 ns 16965431 bytes_per_second=740.146M/s +BM_format_to_string_pointer/16 55.5 ns 55.5 ns 12631410 bytes_per_second=1099.93M/s +BM_format_to_string_pointer/32 85.6 ns 85.6 ns 8187720 bytes_per_second=1.39314G/s +BM_format_to_string_pointer/64 146 ns 146 ns 4802464 bytes_per_second=1.63435G/s +BM_format_to_string_pointer/128 260 ns 260 ns 2691270 bytes_per_second=1.83292G/s +BM_format_to_string_pointer/256 493 ns 493 ns 1419227 bytes_per_second=1.93562G/s +BM_format_to_string_pointer/512 953 ns 952 ns 734100 bytes_per_second=2.00283G/s +BM_format_to_string_pointer/1024 1920 ns 1918 ns 364645 bytes_per_second=1.98838G/s +BM_format_to_string_pointer/2048 3824 ns 3821 ns 183426 bytes_per_second=1.99692G/s +BM_format_to_string_pointer/4096 7715 ns 7708 ns 90687 bytes_per_second=1.97968G/s +BM_format_to_string_pointer/8192 15067 ns 15052 ns 46427 bytes_per_second=2.02746G/s +BM_format_to_string_pointer/16384 31013 ns 30983 ns 22494 bytes_per_second=1.96996G/s +BM_format_to_string_pointer/32768 60877 ns 60811 ns 11513 bytes_per_second=2.00736G/s +BM_format_to_string_pointer/65536 120748 ns 120631 ns 5802 bytes_per_second=2.02387G/s +BM_format_to_string_pointer/131072 240422 ns 240179 ns 2916 bytes_per_second=2.03299G/s +BM_format_to_string_pointer/262144 485640 ns 485150 ns 1444 bytes_per_second=2.01291G/s +BM_format_to_string_pointer/524288 977713 ns 976351 ns 717 bytes_per_second=2.00043G/s +BM_format_to_string_pointer/1048576 1981062 ns 1976435 ns 354 bytes_per_second=1.97641G/s diff --git a/libcxx/before/format_to_n.txt b/libcxx/before/format_to_n.txt new file mode 100644 --- /dev/null +++ b/libcxx/before/format_to_n.txt @@ -0,0 +1,339 @@ +---------------------------------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +---------------------------------------------------------------------------------------------------------------------------- +BM_format_to_n_string_back_inserter/1 41.4 ns 41.4 ns 16852820 bytes_per_second=23.0466M/s +BM_format_to_n_string_back_inserter/2 45.1 ns 45.1 ns 15529110 bytes_per_second=42.3239M/s +BM_format_to_n_string_back_inserter/4 53.2 ns 53.2 ns 13173165 bytes_per_second=71.7401M/s +BM_format_to_n_string_back_inserter/8 68.4 ns 68.4 ns 10252852 bytes_per_second=111.493M/s +BM_format_to_n_string_back_inserter/16 101 ns 101 ns 6910182 bytes_per_second=151.24M/s +BM_format_to_n_string_back_inserter/32 207 ns 207 ns 3378133 bytes_per_second=147.417M/s +BM_format_to_n_string_back_inserter/64 331 ns 331 ns 2116277 bytes_per_second=184.456M/s +BM_format_to_n_string_back_inserter/128 579 ns 579 ns 1209234 bytes_per_second=210.813M/s +BM_format_to_n_string_back_inserter/256 1111 ns 1111 ns 631282 bytes_per_second=219.701M/s +BM_format_to_n_string_back_inserter/512 2232 ns 2232 ns 313589 bytes_per_second=218.791M/s +BM_format_to_n_string_back_inserter/1024 4367 ns 4367 ns 160232 bytes_per_second=223.637M/s +BM_format_to_n_string_back_inserter/2048 8586 ns 8586 ns 81465 bytes_per_second=227.484M/s +BM_format_to_n_string_back_inserter/4096 16994 ns 16994 ns 41206 bytes_per_second=229.863M/s +BM_format_to_n_string_back_inserter/8192 35051 ns 35051 ns 19976 bytes_per_second=222.889M/s +BM_format_to_n_string_back_inserter/16384 69720 ns 69720 ns 10020 bytes_per_second=224.11M/s +BM_format_to_n_string_back_inserter/32768 139705 ns 139706 ns 5013 bytes_per_second=223.684M/s +BM_format_to_n_string_back_inserter/65536 278657 ns 278659 ns 2514 bytes_per_second=224.288M/s +BM_format_to_n_string_back_inserter/131072 557540 ns 557541 ns 1250 bytes_per_second=224.199M/s +BM_format_to_n_string_back_inserter/262144 1118672 ns 1118672 ns 624 bytes_per_second=223.479M/s +BM_format_to_n_string_back_inserter/524288 2235741 ns 2235753 ns 313 bytes_per_second=223.638M/s +BM_format_to_n_string_back_inserter/1048576 4489119 ns 4489111 ns 156 bytes_per_second=222.761M/s +BM_format_to_n_string_back_inserter>/1 57.1 ns 57.1 ns 12270699 bytes_per_second=16.7079M/s +BM_format_to_n_string_back_inserter>/2 60.1 ns 60.1 ns 11649114 bytes_per_second=31.7234M/s +BM_format_to_n_string_back_inserter>/4 68.3 ns 68.3 ns 10257027 bytes_per_second=55.8682M/s +BM_format_to_n_string_back_inserter>/8 85.2 ns 85.2 ns 8169446 bytes_per_second=89.5482M/s +BM_format_to_n_string_back_inserter>/16 118 ns 118 ns 5937279 bytes_per_second=129.41M/s +BM_format_to_n_string_back_inserter>/32 207 ns 207 ns 3377186 bytes_per_second=147.1M/s +BM_format_to_n_string_back_inserter>/64 340 ns 340 ns 2067578 bytes_per_second=179.639M/s +BM_format_to_n_string_back_inserter>/128 606 ns 606 ns 1155174 bytes_per_second=201.449M/s +BM_format_to_n_string_back_inserter>/256 1148 ns 1148 ns 609615 bytes_per_second=212.654M/s +BM_format_to_n_string_back_inserter>/512 2270 ns 2270 ns 308201 bytes_per_second=215.061M/s +BM_format_to_n_string_back_inserter>/1024 4498 ns 4498 ns 155726 bytes_per_second=217.122M/s +BM_format_to_n_string_back_inserter>/2048 9027 ns 9027 ns 77612 bytes_per_second=216.375M/s +BM_format_to_n_string_back_inserter>/4096 17947 ns 17947 ns 39080 bytes_per_second=217.66M/s +BM_format_to_n_string_back_inserter>/8192 35693 ns 35693 ns 19608 bytes_per_second=218.878M/s +BM_format_to_n_string_back_inserter>/16384 70971 ns 70971 ns 9852 bytes_per_second=220.16M/s +BM_format_to_n_string_back_inserter>/32768 141795 ns 141793 ns 4941 bytes_per_second=220.392M/s +BM_format_to_n_string_back_inserter>/65536 284207 ns 284206 ns 2457 bytes_per_second=219.911M/s +BM_format_to_n_string_back_inserter>/131072 568044 ns 568042 ns 1232 bytes_per_second=220.054M/s +BM_format_to_n_string_back_inserter>/262144 1137530 ns 1137530 ns 616 bytes_per_second=219.774M/s +BM_format_to_n_string_back_inserter>/524288 2274258 ns 2274253 ns 308 bytes_per_second=219.852M/s +BM_format_to_n_string_back_inserter>/1048576 4559305 ns 4559296 ns 153 bytes_per_second=219.332M/s +BM_format_to_n_string_back_inserter>/1 53.0 ns 53.0 ns 13219984 bytes_per_second=18.0065M/s +BM_format_to_n_string_back_inserter>/2 68.8 ns 68.8 ns 10212369 bytes_per_second=27.7353M/s +BM_format_to_n_string_back_inserter>/4 101 ns 101 ns 6904278 bytes_per_second=37.6498M/s +BM_format_to_n_string_back_inserter>/8 180 ns 180 ns 3888049 bytes_per_second=42.3662M/s +BM_format_to_n_string_back_inserter>/16 341 ns 341 ns 2051825 bytes_per_second=44.7451M/s +BM_format_to_n_string_back_inserter>/32 756 ns 756 ns 953258 bytes_per_second=40.3562M/s +BM_format_to_n_string_back_inserter>/64 1396 ns 1396 ns 516488 bytes_per_second=43.7128M/s +BM_format_to_n_string_back_inserter>/128 2655 ns 2655 ns 261492 bytes_per_second=45.9845M/s +BM_format_to_n_string_back_inserter>/256 5303 ns 5303 ns 131917 bytes_per_second=46.0379M/s +BM_format_to_n_string_back_inserter>/512 10448 ns 10448 ns 66978 bytes_per_second=46.7334M/s +BM_format_to_n_string_back_inserter>/1024 20951 ns 20951 ns 33402 bytes_per_second=46.6122M/s +BM_format_to_n_string_back_inserter>/2048 41986 ns 41986 ns 16676 bytes_per_second=46.5186M/s +BM_format_to_n_string_back_inserter>/4096 84169 ns 84168 ns 8324 bytes_per_second=46.4099M/s +BM_format_to_n_string_back_inserter>/8192 169344 ns 169341 ns 4132 bytes_per_second=46.1347M/s +BM_format_to_n_string_back_inserter>/16384 339786 ns 339787 ns 2060 bytes_per_second=45.9847M/s +BM_format_to_n_string_back_inserter>/32768 681096 ns 681097 ns 1019 bytes_per_second=45.8818M/s +BM_format_to_n_string_back_inserter>/65536 1364083 ns 1364079 ns 511 bytes_per_second=45.8185M/s +BM_format_to_n_string_back_inserter>/131072 2741135 ns 2741096 ns 254 bytes_per_second=45.6022M/s +BM_format_to_n_string_back_inserter>/262144 5588544 ns 5588336 ns 117 bytes_per_second=44.736M/s +BM_format_to_n_string_back_inserter>/524288 11320852 ns 11320181 ns 58 bytes_per_second=44.1689M/s +BM_format_to_n_string_back_inserter>/1048576 22977305 ns 22976543 ns 29 bytes_per_second=43.5226M/s +BM_format_to_n_string_begin/1 32.7 ns 32.7 ns 21403497 bytes_per_second=29.1499M/s +BM_format_to_n_string_begin/2 34.8 ns 34.8 ns 20104323 bytes_per_second=54.7507M/s +BM_format_to_n_string_begin/4 40.9 ns 40.9 ns 17109175 bytes_per_second=93.2252M/s +BM_format_to_n_string_begin/8 55.6 ns 55.6 ns 12566851 bytes_per_second=137.114M/s +BM_format_to_n_string_begin/16 85.3 ns 85.3 ns 8216693 bytes_per_second=178.983M/s +BM_format_to_n_string_begin/32 162 ns 162 ns 4326062 bytes_per_second=188.541M/s +BM_format_to_n_string_begin/64 281 ns 281 ns 2491732 bytes_per_second=217.098M/s +BM_format_to_n_string_begin/128 519 ns 519 ns 1350158 bytes_per_second=235.087M/s +BM_format_to_n_string_begin/256 991 ns 991 ns 705450 bytes_per_second=246.347M/s +BM_format_to_n_string_begin/512 1957 ns 1957 ns 357025 bytes_per_second=249.548M/s +BM_format_to_n_string_begin/1024 3897 ns 3897 ns 179593 bytes_per_second=250.621M/s +BM_format_to_n_string_begin/2048 7723 ns 7723 ns 90658 bytes_per_second=252.9M/s +BM_format_to_n_string_begin/4096 15461 ns 15462 ns 45357 bytes_per_second=252.642M/s +BM_format_to_n_string_begin/8192 31144 ns 31144 ns 22608 bytes_per_second=250.85M/s +BM_format_to_n_string_begin/16384 62177 ns 62175 ns 11230 bytes_per_second=251.307M/s +BM_format_to_n_string_begin/32768 124455 ns 124454 ns 5620 bytes_per_second=251.098M/s +BM_format_to_n_string_begin/65536 248990 ns 248991 ns 2810 bytes_per_second=251.013M/s +BM_format_to_n_string_begin/131072 494301 ns 494301 ns 1414 bytes_per_second=252.882M/s +BM_format_to_n_string_begin/262144 988639 ns 988643 ns 708 bytes_per_second=252.872M/s +BM_format_to_n_string_begin/524288 1977142 ns 1977150 ns 354 bytes_per_second=252.889M/s +BM_format_to_n_string_begin/1048576 3957373 ns 3957370 ns 177 bytes_per_second=252.693M/s +BM_format_to_n_string_begin>/1 32.6 ns 32.6 ns 21449903 bytes_per_second=29.2964M/s +BM_format_to_n_string_begin>/2 35.3 ns 35.3 ns 19799426 bytes_per_second=53.9596M/s +BM_format_to_n_string_begin>/4 40.8 ns 40.8 ns 17148186 bytes_per_second=93.3894M/s +BM_format_to_n_string_begin>/8 55.5 ns 55.5 ns 12582440 bytes_per_second=137.361M/s +BM_format_to_n_string_begin>/16 85.3 ns 85.3 ns 8197729 bytes_per_second=178.814M/s +BM_format_to_n_string_begin>/32 163 ns 163 ns 4298996 bytes_per_second=187.063M/s +BM_format_to_n_string_begin>/64 287 ns 287 ns 2437264 bytes_per_second=212.939M/s +BM_format_to_n_string_begin>/128 528 ns 528 ns 1331030 bytes_per_second=231.322M/s +BM_format_to_n_string_begin>/256 1006 ns 1006 ns 697904 bytes_per_second=242.634M/s +BM_format_to_n_string_begin>/512 2031 ns 2031 ns 345151 bytes_per_second=240.434M/s +BM_format_to_n_string_begin>/1024 3892 ns 3892 ns 179756 bytes_per_second=250.915M/s +BM_format_to_n_string_begin>/2048 7696 ns 7696 ns 91018 bytes_per_second=253.772M/s +BM_format_to_n_string_begin>/4096 15625 ns 15625 ns 44746 bytes_per_second=249.998M/s +BM_format_to_n_string_begin>/8192 31042 ns 31042 ns 22544 bytes_per_second=251.674M/s +BM_format_to_n_string_begin>/16384 62186 ns 62187 ns 11257 bytes_per_second=251.26M/s +BM_format_to_n_string_begin>/32768 124567 ns 124567 ns 5624 bytes_per_second=250.868M/s +BM_format_to_n_string_begin>/65536 249022 ns 249023 ns 2810 bytes_per_second=250.981M/s +BM_format_to_n_string_begin>/131072 494717 ns 494720 ns 1416 bytes_per_second=252.668M/s +BM_format_to_n_string_begin>/262144 988930 ns 988936 ns 708 bytes_per_second=252.797M/s +BM_format_to_n_string_begin>/524288 1978701 ns 1978701 ns 354 bytes_per_second=252.691M/s +BM_format_to_n_string_begin>/1048576 3957093 ns 3957062 ns 177 bytes_per_second=252.713M/s +BM_format_to_n_string_begin>/1 32.7 ns 32.7 ns 21382756 bytes_per_second=29.141M/s +BM_format_to_n_string_begin>/2 35.2 ns 35.2 ns 19862978 bytes_per_second=54.226M/s +BM_format_to_n_string_begin>/4 42.7 ns 42.7 ns 16378066 bytes_per_second=89.3966M/s +BM_format_to_n_string_begin>/8 59.3 ns 59.3 ns 11809804 bytes_per_second=128.761M/s +BM_format_to_n_string_begin>/16 97.2 ns 97.2 ns 7204957 bytes_per_second=156.978M/s +BM_format_to_n_string_begin>/32 182 ns 182 ns 3837829 bytes_per_second=167.545M/s +BM_format_to_n_string_begin>/64 343 ns 343 ns 2041752 bytes_per_second=177.919M/s +BM_format_to_n_string_begin>/128 664 ns 664 ns 1054577 bytes_per_second=183.824M/s +BM_format_to_n_string_begin>/256 1311 ns 1311 ns 533849 bytes_per_second=186.255M/s +BM_format_to_n_string_begin>/512 2612 ns 2612 ns 267922 bytes_per_second=186.926M/s +BM_format_to_n_string_begin>/1024 5284 ns 5284 ns 132752 bytes_per_second=184.813M/s +BM_format_to_n_string_begin>/2048 10538 ns 10538 ns 66505 bytes_per_second=185.346M/s +BM_format_to_n_string_begin>/4096 21037 ns 21037 ns 33256 bytes_per_second=185.687M/s +BM_format_to_n_string_begin>/8192 41964 ns 41964 ns 16684 bytes_per_second=186.17M/s +BM_format_to_n_string_begin>/16384 83718 ns 83718 ns 8353 bytes_per_second=186.638M/s +BM_format_to_n_string_begin>/32768 167280 ns 167280 ns 4187 bytes_per_second=186.812M/s +BM_format_to_n_string_begin>/65536 334884 ns 334885 ns 2092 bytes_per_second=186.631M/s +BM_format_to_n_string_begin>/131072 679986 ns 679980 ns 1027 bytes_per_second=183.829M/s +BM_format_to_n_string_begin>/262144 1472285 ns 1472246 ns 474 bytes_per_second=169.809M/s +BM_format_to_n_string_begin>/524288 3201521 ns 3201454 ns 219 bytes_per_second=156.179M/s +BM_format_to_n_string_begin>/1048576 6582037 ns 6581752 ns 106 bytes_per_second=151.935M/s +BM_format_to_n_string_span>/1 32.7 ns 32.7 ns 21435036 bytes_per_second=29.1829M/s +BM_format_to_n_string_span>/2 35.0 ns 35.0 ns 20013174 bytes_per_second=54.485M/s +BM_format_to_n_string_span>/4 41.3 ns 41.3 ns 16930855 bytes_per_second=92.2774M/s +BM_format_to_n_string_span>/8 55.9 ns 55.9 ns 12519983 bytes_per_second=136.395M/s +BM_format_to_n_string_span>/16 84.2 ns 84.2 ns 8296523 bytes_per_second=181.193M/s +BM_format_to_n_string_span>/32 161 ns 161 ns 4331905 bytes_per_second=189.373M/s +BM_format_to_n_string_span>/64 282 ns 282 ns 2484768 bytes_per_second=216.338M/s +BM_format_to_n_string_span>/128 514 ns 514 ns 1363343 bytes_per_second=237.322M/s +BM_format_to_n_string_span>/256 980 ns 980 ns 715603 bytes_per_second=249.16M/s +BM_format_to_n_string_span>/512 1936 ns 1936 ns 360382 bytes_per_second=252.264M/s +BM_format_to_n_string_span>/1024 3871 ns 3871 ns 180731 bytes_per_second=252.296M/s +BM_format_to_n_string_span>/2048 7745 ns 7745 ns 90506 bytes_per_second=252.191M/s +BM_format_to_n_string_span>/4096 15586 ns 15586 ns 44903 bytes_per_second=250.624M/s +BM_format_to_n_string_span>/8192 31252 ns 31252 ns 22399 bytes_per_second=249.985M/s +BM_format_to_n_string_span>/16384 62243 ns 62243 ns 11247 bytes_per_second=251.031M/s +BM_format_to_n_string_span>/32768 124597 ns 124598 ns 5620 bytes_per_second=250.807M/s +BM_format_to_n_string_span>/65536 249141 ns 249141 ns 2810 bytes_per_second=250.862M/s +BM_format_to_n_string_span>/131072 494807 ns 494801 ns 1416 bytes_per_second=252.627M/s +BM_format_to_n_string_span>/262144 989101 ns 989102 ns 708 bytes_per_second=252.755M/s +BM_format_to_n_string_span>/524288 1977346 ns 1977343 ns 354 bytes_per_second=252.865M/s +BM_format_to_n_string_span>/1048576 3956074 ns 3956044 ns 177 bytes_per_second=252.778M/s +BM_format_to_n_string_pointer/1 32.8 ns 32.8 ns 21331783 bytes_per_second=29.0665M/s +BM_format_to_n_string_pointer/2 35.1 ns 35.1 ns 19908566 bytes_per_second=54.2839M/s +BM_format_to_n_string_pointer/4 44.1 ns 44.1 ns 15856442 bytes_per_second=86.4335M/s +BM_format_to_n_string_pointer/8 60.8 ns 60.8 ns 11520352 bytes_per_second=125.49M/s +BM_format_to_n_string_pointer/16 91.6 ns 91.6 ns 7638666 bytes_per_second=166.604M/s +BM_format_to_n_string_pointer/32 166 ns 166 ns 4211443 bytes_per_second=183.497M/s +BM_format_to_n_string_pointer/64 292 ns 292 ns 2394764 bytes_per_second=208.768M/s +BM_format_to_n_string_pointer/128 538 ns 538 ns 1292188 bytes_per_second=227.094M/s +BM_format_to_n_string_pointer/256 1034 ns 1034 ns 677278 bytes_per_second=236.034M/s +BM_format_to_n_string_pointer/512 2025 ns 2025 ns 347500 bytes_per_second=241.09M/s +BM_format_to_n_string_pointer/1024 4006 ns 4006 ns 175228 bytes_per_second=243.789M/s +BM_format_to_n_string_pointer/2048 8081 ns 8081 ns 86500 bytes_per_second=241.7M/s +BM_format_to_n_string_pointer/4096 16020 ns 16020 ns 43707 bytes_per_second=243.83M/s +BM_format_to_n_string_pointer/8192 32717 ns 32718 ns 21389 bytes_per_second=238.787M/s +BM_format_to_n_string_pointer/16384 65726 ns 65727 ns 10644 bytes_per_second=237.727M/s +BM_format_to_n_string_pointer/32768 131404 ns 131404 ns 5325 bytes_per_second=237.816M/s +BM_format_to_n_string_pointer/65536 262769 ns 262771 ns 2660 bytes_per_second=237.85M/s +BM_format_to_n_string_pointer/131072 524361 ns 524363 ns 1334 bytes_per_second=238.385M/s +BM_format_to_n_string_pointer/262144 1048815 ns 1048801 ns 668 bytes_per_second=238.368M/s +BM_format_to_n_string_pointer/524288 2097934 ns 2097936 ns 334 bytes_per_second=238.329M/s +BM_format_to_n_string_pointer/1048576 4195349 ns 4195366 ns 167 bytes_per_second=238.358M/s +BM_format_to_n_string_back_inserter/1 41.0 ns 41.0 ns 17107563 bytes_per_second=93.1008M/s +BM_format_to_n_string_back_inserter/2 44.8 ns 44.8 ns 15615043 bytes_per_second=170.285M/s +BM_format_to_n_string_back_inserter/4 55.5 ns 55.5 ns 12612615 bytes_per_second=274.935M/s +BM_format_to_n_string_back_inserter/8 92.7 ns 92.7 ns 7551227 bytes_per_second=329.217M/s +BM_format_to_n_string_back_inserter/16 129 ns 129 ns 5412604 bytes_per_second=472.041M/s +BM_format_to_n_string_back_inserter/32 209 ns 209 ns 3353721 bytes_per_second=584.62M/s +BM_format_to_n_string_back_inserter/64 348 ns 348 ns 2008530 bytes_per_second=701.129M/s +BM_format_to_n_string_back_inserter/128 665 ns 665 ns 1052509 bytes_per_second=734.11M/s +BM_format_to_n_string_back_inserter/256 1339 ns 1339 ns 522542 bytes_per_second=729.526M/s +BM_format_to_n_string_back_inserter/512 2577 ns 2577 ns 271399 bytes_per_second=757.768M/s +BM_format_to_n_string_back_inserter/1024 4986 ns 4986 ns 140371 bytes_per_second=783.438M/s +BM_format_to_n_string_back_inserter/2048 9788 ns 9788 ns 71481 bytes_per_second=798.175M/s +BM_format_to_n_string_back_inserter/4096 19169 ns 19169 ns 36494 bytes_per_second=815.115M/s +BM_format_to_n_string_back_inserter/8192 38115 ns 38115 ns 18377 bytes_per_second=819.888M/s +BM_format_to_n_string_back_inserter/16384 76274 ns 76274 ns 9182 bytes_per_second=819.417M/s +BM_format_to_n_string_back_inserter/32768 153130 ns 153131 ns 4569 bytes_per_second=816.293M/s +BM_format_to_n_string_back_inserter/65536 307449 ns 307449 ns 2278 bytes_per_second=813.143M/s +BM_format_to_n_string_back_inserter/131072 613850 ns 613848 ns 1142 bytes_per_second=814.534M/s +BM_format_to_n_string_back_inserter/262144 1239516 ns 1239485 ns 563 bytes_per_second=806.787M/s +BM_format_to_n_string_back_inserter/524288 2535430 ns 2535361 ns 275 bytes_per_second=788.842M/s +BM_format_to_n_string_back_inserter/1048576 5256875 ns 5256654 ns 129 bytes_per_second=760.94M/s +BM_format_to_n_string_back_inserter>/1 60.7 ns 60.7 ns 11474514 bytes_per_second=62.7996M/s +BM_format_to_n_string_back_inserter>/2 64.1 ns 64.1 ns 10914906 bytes_per_second=118.958M/s +BM_format_to_n_string_back_inserter>/4 71.9 ns 71.9 ns 9721997 bytes_per_second=212.153M/s +BM_format_to_n_string_back_inserter>/8 86.5 ns 86.5 ns 8091667 bytes_per_second=352.792M/s +BM_format_to_n_string_back_inserter>/16 121 ns 121 ns 5836266 bytes_per_second=506.23M/s +BM_format_to_n_string_back_inserter>/32 206 ns 206 ns 3398569 bytes_per_second=592.177M/s +BM_format_to_n_string_back_inserter>/64 346 ns 346 ns 2022232 bytes_per_second=705.263M/s +BM_format_to_n_string_back_inserter>/128 645 ns 645 ns 1085694 bytes_per_second=756.995M/s +BM_format_to_n_string_back_inserter>/256 1245 ns 1245 ns 562302 bytes_per_second=784.249M/s +BM_format_to_n_string_back_inserter>/512 2498 ns 2498 ns 280341 bytes_per_second=781.926M/s +BM_format_to_n_string_back_inserter>/1024 4859 ns 4859 ns 143965 bytes_per_second=803.953M/s +BM_format_to_n_string_back_inserter>/2048 9630 ns 9630 ns 72570 bytes_per_second=811.26M/s +BM_format_to_n_string_back_inserter>/4096 18969 ns 18969 ns 36916 bytes_per_second=823.691M/s +BM_format_to_n_string_back_inserter>/8192 37644 ns 37645 ns 18605 bytes_per_second=830.134M/s +BM_format_to_n_string_back_inserter>/16384 75622 ns 75622 ns 9250 bytes_per_second=826.48M/s +BM_format_to_n_string_back_inserter>/32768 151239 ns 151240 ns 4631 bytes_per_second=826.503M/s +BM_format_to_n_string_back_inserter>/65536 303268 ns 303269 ns 2307 bytes_per_second=824.35M/s +BM_format_to_n_string_back_inserter>/131072 605410 ns 605412 ns 1154 bytes_per_second=825.883M/s +BM_format_to_n_string_back_inserter>/262144 1219852 ns 1219812 ns 574 bytes_per_second=819.798M/s +BM_format_to_n_string_back_inserter>/524288 2489744 ns 2489681 ns 281 bytes_per_second=803.316M/s +BM_format_to_n_string_back_inserter>/1048576 5183302 ns 5183156 ns 131 bytes_per_second=771.731M/s +BM_format_to_n_string_back_inserter>/1 55.2 ns 55.2 ns 12690929 bytes_per_second=69.123M/s +BM_format_to_n_string_back_inserter>/2 73.2 ns 73.2 ns 9580261 bytes_per_second=104.201M/s +BM_format_to_n_string_back_inserter>/4 106 ns 106 ns 6628034 bytes_per_second=144.372M/s +BM_format_to_n_string_back_inserter>/8 184 ns 184 ns 3798971 bytes_per_second=165.854M/s +BM_format_to_n_string_back_inserter>/16 351 ns 351 ns 1992346 bytes_per_second=174.056M/s +BM_format_to_n_string_back_inserter>/32 754 ns 754 ns 934387 bytes_per_second=161.801M/s +BM_format_to_n_string_back_inserter>/64 1420 ns 1420 ns 500553 bytes_per_second=171.889M/s +BM_format_to_n_string_back_inserter>/128 2719 ns 2719 ns 257332 bytes_per_second=179.587M/s +BM_format_to_n_string_back_inserter>/256 5414 ns 5414 ns 129422 bytes_per_second=180.388M/s +BM_format_to_n_string_back_inserter>/512 10836 ns 10836 ns 64540 bytes_per_second=180.248M/s +BM_format_to_n_string_back_inserter>/1024 21634 ns 21634 ns 32336 bytes_per_second=180.564M/s +BM_format_to_n_string_back_inserter>/2048 43282 ns 43282 ns 16172 bytes_per_second=180.503M/s +BM_format_to_n_string_back_inserter>/4096 86968 ns 86969 ns 8047 bytes_per_second=179.662M/s +BM_format_to_n_string_back_inserter>/8192 174275 ns 174272 ns 4018 bytes_per_second=179.317M/s +BM_format_to_n_string_back_inserter>/16384 348291 ns 348290 ns 2010 bytes_per_second=179.448M/s +BM_format_to_n_string_back_inserter>/32768 696565 ns 696561 ns 1002 bytes_per_second=179.453M/s +BM_format_to_n_string_back_inserter>/65536 1394055 ns 1394056 ns 500 bytes_per_second=179.333M/s +BM_format_to_n_string_back_inserter>/131072 2805343 ns 2805290 ns 249 bytes_per_second=178.235M/s +BM_format_to_n_string_back_inserter>/262144 5724342 ns 5724148 ns 117 bytes_per_second=174.698M/s +BM_format_to_n_string_back_inserter>/524288 11656091 ns 11655591 ns 56 bytes_per_second=171.591M/s +BM_format_to_n_string_back_inserter>/1048576 23642684 ns 23641336 ns 28 bytes_per_second=169.195M/s +BM_format_to_n_string_begin/1 32.8 ns 32.8 ns 21338659 bytes_per_second=116.184M/s +BM_format_to_n_string_begin/2 35.1 ns 35.1 ns 19962824 bytes_per_second=217.565M/s +BM_format_to_n_string_begin/4 40.7 ns 40.7 ns 17172148 bytes_per_second=374.516M/s +BM_format_to_n_string_begin/8 55.1 ns 55.1 ns 12705656 bytes_per_second=554.174M/s +BM_format_to_n_string_begin/16 84.7 ns 84.6 ns 8280633 bytes_per_second=721.036M/s +BM_format_to_n_string_begin/32 161 ns 161 ns 4349905 bytes_per_second=757.732M/s +BM_format_to_n_string_begin/64 276 ns 276 ns 2534042 bytes_per_second=883.741M/s +BM_format_to_n_string_begin/128 509 ns 509 ns 1372698 bytes_per_second=958.403M/s +BM_format_to_n_string_begin/256 992 ns 992 ns 705178 bytes_per_second=984.068M/s +BM_format_to_n_string_begin/512 1970 ns 1970 ns 353902 bytes_per_second=991.398M/s +BM_format_to_n_string_begin/1024 3918 ns 3918 ns 178739 bytes_per_second=997.034M/s +BM_format_to_n_string_begin/2048 7790 ns 7790 ns 89978 bytes_per_second=1002.87M/s +BM_format_to_n_string_begin/4096 15461 ns 15461 ns 45333 bytes_per_second=1010.6M/s +BM_format_to_n_string_begin/8192 30841 ns 30842 ns 22706 bytes_per_second=1013.24M/s +BM_format_to_n_string_begin/16384 61655 ns 61655 ns 11349 bytes_per_second=1013.7M/s +BM_format_to_n_string_begin/32768 122560 ns 122560 ns 5715 bytes_per_second=1019.91M/s +BM_format_to_n_string_begin/65536 244889 ns 244889 ns 2858 bytes_per_second=1020.87M/s +BM_format_to_n_string_begin/131072 489986 ns 489987 ns 1430 bytes_per_second=1020.43M/s +BM_format_to_n_string_begin/262144 979684 ns 979677 ns 715 bytes_per_second=1020.74M/s +BM_format_to_n_string_begin/524288 1973013 ns 1972959 ns 355 bytes_per_second=1013.71M/s +BM_format_to_n_string_begin/1048576 3981417 ns 3981219 ns 176 bytes_per_second=1004.72M/s +BM_format_to_n_string_begin>/1 33.6 ns 33.6 ns 20814767 bytes_per_second=113.436M/s +BM_format_to_n_string_begin>/2 37.3 ns 37.3 ns 18792781 bytes_per_second=204.788M/s +BM_format_to_n_string_begin>/4 43.7 ns 43.7 ns 16065440 bytes_per_second=349.277M/s +BM_format_to_n_string_begin>/8 56.5 ns 56.5 ns 12447278 bytes_per_second=540.494M/s +BM_format_to_n_string_begin>/16 87.4 ns 87.4 ns 8068446 bytes_per_second=698.431M/s +BM_format_to_n_string_begin>/32 169 ns 169 ns 4136408 bytes_per_second=721.795M/s +BM_format_to_n_string_begin>/64 295 ns 295 ns 2360916 bytes_per_second=826.69M/s +BM_format_to_n_string_begin>/128 585 ns 585 ns 1203226 bytes_per_second=834.706M/s +BM_format_to_n_string_begin>/256 1065 ns 1065 ns 656226 bytes_per_second=916.686M/s +BM_format_to_n_string_begin>/512 2090 ns 2090 ns 335029 bytes_per_second=934.487M/s +BM_format_to_n_string_begin>/1024 4165 ns 4165 ns 168552 bytes_per_second=937.963M/s +BM_format_to_n_string_begin>/2048 7791 ns 7791 ns 89710 bytes_per_second=1002.77M/s +BM_format_to_n_string_begin>/4096 15460 ns 15460 ns 45105 bytes_per_second=1010.69M/s +BM_format_to_n_string_begin>/8192 30845 ns 30845 ns 22699 bytes_per_second=1013.12M/s +BM_format_to_n_string_begin>/16384 61662 ns 61663 ns 11338 bytes_per_second=1013.58M/s +BM_format_to_n_string_begin>/32768 122521 ns 122520 ns 5713 bytes_per_second=1020.24M/s +BM_format_to_n_string_begin>/65536 244851 ns 244851 ns 2856 bytes_per_second=1021.03M/s +BM_format_to_n_string_begin>/131072 489456 ns 489459 ns 1430 bytes_per_second=1021.54M/s +BM_format_to_n_string_begin>/262144 979774 ns 979772 ns 715 bytes_per_second=1020.65M/s +BM_format_to_n_string_begin>/524288 1972600 ns 1972564 ns 355 bytes_per_second=1013.91M/s +BM_format_to_n_string_begin>/1048576 3982451 ns 3982319 ns 176 bytes_per_second=1004.44M/s +BM_format_to_n_string_begin>/1 32.8 ns 32.8 ns 21328814 bytes_per_second=116.253M/s +BM_format_to_n_string_begin>/2 35.1 ns 35.1 ns 19935750 bytes_per_second=217.66M/s +BM_format_to_n_string_begin>/4 42.2 ns 42.2 ns 16603380 bytes_per_second=361.839M/s +BM_format_to_n_string_begin>/8 58.8 ns 58.8 ns 11915649 bytes_per_second=519.34M/s +BM_format_to_n_string_begin>/16 97.0 ns 97.0 ns 7216079 bytes_per_second=629.051M/s +BM_format_to_n_string_begin>/32 177 ns 177 ns 3963446 bytes_per_second=690.276M/s +BM_format_to_n_string_begin>/64 328 ns 328 ns 2135136 bytes_per_second=744.87M/s +BM_format_to_n_string_begin>/128 635 ns 635 ns 1102681 bytes_per_second=768.996M/s +BM_format_to_n_string_begin>/256 1244 ns 1244 ns 562773 bytes_per_second=785.055M/s +BM_format_to_n_string_begin>/512 2466 ns 2466 ns 284767 bytes_per_second=792.117M/s +BM_format_to_n_string_begin>/1024 4959 ns 4959 ns 141098 bytes_per_second=787.657M/s +BM_format_to_n_string_begin>/2048 9874 ns 9874 ns 70903 bytes_per_second=791.181M/s +BM_format_to_n_string_begin>/4096 19814 ns 19814 ns 35334 bytes_per_second=788.589M/s +BM_format_to_n_string_begin>/8192 39612 ns 39612 ns 17677 bytes_per_second=788.898M/s +BM_format_to_n_string_begin>/16384 78980 ns 78980 ns 8858 bytes_per_second=791.338M/s +BM_format_to_n_string_begin>/32768 157840 ns 157840 ns 4434 bytes_per_second=791.941M/s +BM_format_to_n_string_begin>/65536 315607 ns 315608 ns 2218 bytes_per_second=792.122M/s +BM_format_to_n_string_begin>/131072 655076 ns 655071 ns 1078 bytes_per_second=763.276M/s +BM_format_to_n_string_begin>/262144 1461939 ns 1461908 ns 479 bytes_per_second=684.037M/s +BM_format_to_n_string_begin>/524288 3152474 ns 3152326 ns 222 bytes_per_second=634.452M/s +BM_format_to_n_string_begin>/1048576 6414448 ns 6414209 ns 109 bytes_per_second=623.615M/s +BM_format_to_n_string_span>/1 32.7 ns 32.7 ns 21394006 bytes_per_second=116.536M/s +BM_format_to_n_string_span>/2 35.0 ns 35.0 ns 20034968 bytes_per_second=218.034M/s +BM_format_to_n_string_span>/4 40.6 ns 40.6 ns 17235539 bytes_per_second=375.663M/s +BM_format_to_n_string_span>/8 55.0 ns 55.0 ns 12709128 bytes_per_second=555.106M/s +BM_format_to_n_string_span>/16 84.4 ns 84.4 ns 8299946 bytes_per_second=722.989M/s +BM_format_to_n_string_span>/32 162 ns 162 ns 4330267 bytes_per_second=755.132M/s +BM_format_to_n_string_span>/64 278 ns 278 ns 2526618 bytes_per_second=878.343M/s +BM_format_to_n_string_span>/128 513 ns 513 ns 1365356 bytes_per_second=951.206M/s +BM_format_to_n_string_span>/256 986 ns 986 ns 711630 bytes_per_second=990.874M/s +BM_format_to_n_string_span>/512 1958 ns 1958 ns 356572 bytes_per_second=997.49M/s +BM_format_to_n_string_span>/1024 3845 ns 3845 ns 182090 bytes_per_second=1016.02M/s +BM_format_to_n_string_span>/2048 7795 ns 7795 ns 89798 bytes_per_second=1002.2M/s +BM_format_to_n_string_span>/4096 15446 ns 15446 ns 45347 bytes_per_second=1011.57M/s +BM_format_to_n_string_span>/8192 30846 ns 30847 ns 22706 bytes_per_second=1013.08M/s +BM_format_to_n_string_span>/16384 61637 ns 61637 ns 11360 bytes_per_second=1014M/s +BM_format_to_n_string_span>/32768 122584 ns 122584 ns 5714 bytes_per_second=1019.71M/s +BM_format_to_n_string_span>/65536 245050 ns 245050 ns 2856 bytes_per_second=1020.2M/s +BM_format_to_n_string_span>/131072 489752 ns 489754 ns 1429 bytes_per_second=1020.92M/s +BM_format_to_n_string_span>/262144 979507 ns 979507 ns 715 bytes_per_second=1020.92M/s +BM_format_to_n_string_span>/524288 1972638 ns 1972587 ns 354 bytes_per_second=1013.9M/s +BM_format_to_n_string_span>/1048576 3979849 ns 3979713 ns 176 bytes_per_second=1005.1M/s +BM_format_to_n_string_pointer/1 32.8 ns 32.8 ns 21374386 bytes_per_second=116.409M/s +BM_format_to_n_string_pointer/2 35.3 ns 35.3 ns 19840628 bytes_per_second=216.3M/s +BM_format_to_n_string_pointer/4 40.8 ns 40.8 ns 17156415 bytes_per_second=373.608M/s +BM_format_to_n_string_pointer/8 55.2 ns 55.2 ns 12711670 bytes_per_second=553.204M/s +BM_format_to_n_string_pointer/16 84.3 ns 84.3 ns 8290762 bytes_per_second=723.8M/s +BM_format_to_n_string_pointer/32 161 ns 161 ns 4335180 bytes_per_second=756.09M/s +BM_format_to_n_string_pointer/64 275 ns 275 ns 2540222 bytes_per_second=886.62M/s +BM_format_to_n_string_pointer/128 508 ns 508 ns 1385500 bytes_per_second=961.218M/s +BM_format_to_n_string_pointer/256 992 ns 992 ns 705538 bytes_per_second=984.382M/s +BM_format_to_n_string_pointer/512 1957 ns 1957 ns 358169 bytes_per_second=997.851M/s +BM_format_to_n_string_pointer/1024 3901 ns 3901 ns 179362 bytes_per_second=1001.45M/s +BM_format_to_n_string_pointer/2048 7773 ns 7773 ns 90082 bytes_per_second=1005.14M/s +BM_format_to_n_string_pointer/4096 15470 ns 15470 ns 45319 bytes_per_second=1010.01M/s +BM_format_to_n_string_pointer/8192 30857 ns 30857 ns 22738 bytes_per_second=1012.74M/s +BM_format_to_n_string_pointer/16384 61643 ns 61643 ns 11332 bytes_per_second=1013.9M/s +BM_format_to_n_string_pointer/32768 122561 ns 122562 ns 5714 bytes_per_second=1019.89M/s +BM_format_to_n_string_pointer/65536 245079 ns 245079 ns 2856 bytes_per_second=1020.08M/s +BM_format_to_n_string_pointer/131072 489789 ns 489790 ns 1429 bytes_per_second=1020.85M/s +BM_format_to_n_string_pointer/262144 979134 ns 979131 ns 715 bytes_per_second=1021.31M/s +BM_format_to_n_string_pointer/524288 1973862 ns 1973786 ns 355 bytes_per_second=1013.28M/s +BM_format_to_n_string_pointer/1048576 3979557 ns 3979482 ns 176 bytes_per_second=1005.16M/s diff --git a/libcxx/before/formatted_size.txt b/libcxx/before/formatted_size.txt new file mode 100644 --- /dev/null +++ b/libcxx/before/formatted_size.txt @@ -0,0 +1,45 @@ +---------------------------------------------------------------------------------------------------- +Benchmark Time CPU Iterations UserCounters... +---------------------------------------------------------------------------------------------------- +BM_formatted_size_string/1 30.7 ns 30.7 ns 22708628 bytes_per_second=31.0901M/s +BM_formatted_size_string/2 15.9 ns 15.9 ns 44158114 bytes_per_second=120.323M/s +BM_formatted_size_string/4 8.36 ns 8.35 ns 83757624 bytes_per_second=456.693M/s +BM_formatted_size_string/8 5.00 ns 4.99 ns 140042128 bytes_per_second=1.49285G/s +BM_formatted_size_string/16 3.40 ns 3.40 ns 205922352 bytes_per_second=4.38566G/s +BM_formatted_size_string/32 2.59 ns 2.59 ns 268813856 bytes_per_second=11.4985G/s +BM_formatted_size_string/64 2.28 ns 2.28 ns 306919424 bytes_per_second=26.1217G/s +BM_formatted_size_string/128 2.05 ns 2.05 ns 341980416 bytes_per_second=58.2823G/s +BM_formatted_size_string/256 1.94 ns 1.94 ns 361398016 bytes_per_second=123.083G/s +BM_formatted_size_string/512 1.89 ns 1.89 ns 371089408 bytes_per_second=252.395G/s +BM_formatted_size_string/1024 1.86 ns 1.86 ns 376577024 bytes_per_second=512.856G/s +BM_formatted_size_string/2048 1.79 ns 1.79 ns 391180288 bytes_per_second=1065.02G/s +BM_formatted_size_string/4096 1.79 ns 1.79 ns 391004160 bytes_per_second=2.08132T/s +BM_formatted_size_string/8192 1.79 ns 1.79 ns 392224768 bytes_per_second=4.17236T/s +BM_formatted_size_string/16384 1.78 ns 1.78 ns 393822208 bytes_per_second=8.38387T/s +BM_formatted_size_string/32768 1.78 ns 1.78 ns 393740288 bytes_per_second=16.7646T/s +BM_formatted_size_string/65536 1.78 ns 1.78 ns 392429568 bytes_per_second=33.5266T/s +BM_formatted_size_string/131072 1.78 ns 1.78 ns 393084928 bytes_per_second=67.0169T/s +BM_formatted_size_string/262144 1.83 ns 1.83 ns 383254528 bytes_per_second=130.434T/s +BM_formatted_size_string/524288 1.80 ns 1.80 ns 386400256 bytes_per_second=264.954T/s +BM_formatted_size_string/1048576 1.81 ns 1.81 ns 385875968 bytes_per_second=528.217T/s +BM_formatted_size_string/1 31.2 ns 31.1 ns 22498527 bytes_per_second=122.488M/s +BM_formatted_size_string/2 16.1 ns 16.1 ns 43418302 bytes_per_second=473.805M/s +BM_formatted_size_string/4 8.55 ns 8.54 ns 81952012 bytes_per_second=1.74505G/s +BM_formatted_size_string/8 5.09 ns 5.09 ns 137753792 bytes_per_second=5.85971G/s +BM_formatted_size_string/16 3.43 ns 3.42 ns 204534800 bytes_per_second=17.4084G/s +BM_formatted_size_string/32 2.60 ns 2.60 ns 269500576 bytes_per_second=45.8081G/s +BM_formatted_size_string/64 2.27 ns 2.27 ns 308412352 bytes_per_second=105.006G/s +BM_formatted_size_string/128 2.02 ns 2.02 ns 346366976 bytes_per_second=236.043G/s +BM_formatted_size_string/256 1.90 ns 1.90 ns 369362176 bytes_per_second=503.073G/s +BM_formatted_size_string/512 1.84 ns 1.83 ns 382286848 bytes_per_second=1040.3G/s +BM_formatted_size_string/1024 1.80 ns 1.80 ns 388232192 bytes_per_second=2.06773T/s +BM_formatted_size_string/2048 1.79 ns 1.79 ns 392097792 bytes_per_second=4.17204T/s +BM_formatted_size_string/4096 1.79 ns 1.79 ns 391139328 bytes_per_second=8.32526T/s +BM_formatted_size_string/8192 1.79 ns 1.79 ns 391913472 bytes_per_second=16.6698T/s +BM_formatted_size_string/16384 1.78 ns 1.78 ns 393592832 bytes_per_second=33.5251T/s +BM_formatted_size_string/32768 1.78 ns 1.77 ns 392364032 bytes_per_second=67.194T/s +BM_formatted_size_string/65536 1.77 ns 1.77 ns 394985472 bytes_per_second=134.535T/s +BM_formatted_size_string/131072 1.77 ns 1.77 ns 394657792 bytes_per_second=269.018T/s +BM_formatted_size_string/262144 1.77 ns 1.77 ns 394526720 bytes_per_second=537.963T/s +BM_formatted_size_string/524288 1.78 ns 1.78 ns 395313152 bytes_per_second=1072.85T/s +BM_formatted_size_string/1048576 1.81 ns 1.80 ns 387973120 bytes_per_second=2.06671P/s diff --git a/libcxx/include/__format/buffer.h b/libcxx/include/__format/buffer.h --- a/libcxx/include/__format/buffer.h +++ b/libcxx/include/__format/buffer.h @@ -10,12 +10,15 @@ #ifndef _LIBCPP___FORMAT_BUFFER_H #define _LIBCPP___FORMAT_BUFFER_H +#include <__algorithm/min.h> #include <__config> +#include <__debug> #include <__format/formatter.h> // for __char_type TODO FMT Move the concept? #include <__iterator/back_insert_iterator.h> #include <__iterator/concepts.h> +#include <__iterator/wrap_iter.h> +#include <__iterator/iterator_traits.h> #include <__utility/move.h> -#include #include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) @@ -32,67 +35,129 @@ // to support compilers with partial C++20 support. #if !defined(_LIBCPP_HAS_NO_CONCEPTS) +// TODO FMT move to its own header. +template +struct _LIBCPP_TEMPLATE_VIS format_to_n_result { + _OutIt out; + iter_difference_t<_OutIt> size; +}; + namespace __format { -/// The output iterator used for the @ref format_context. -/// -/// In order to specialize the iterator only for the character type used it -/// uses a type-erased function pointer to call the underlying buffer storage -/// function. template <__formatter::__char_type _CharT> -class _LIBCPP_TEMPLATE_VIS __output_iterator { +class _LIBCPP_TEMPLATE_VIS __output_buffer { public: - // No Legacy tag since the code isn't available prior to C++20. - using value_type = void; - using difference_type = ptrdiff_t; - using pointer = void; - using reference = void; + using value_type = _CharT; template - _LIBCPP_HIDE_FROM_ABI explicit __output_iterator(_Tp* __obj) - : __fun_([](_CharT __c, void* __o) { static_cast<_Tp*>(__o)->put(__c); }), + _LIBCPP_HIDE_FROM_ABI explicit __output_buffer(_CharT* __ptr, + size_t __capacity, _Tp* __obj) + : __ptr_(__ptr), __capacity_(__capacity), + __flush_([](_CharT* __ptr, size_t __size, void* __o) { + static_cast<_Tp*>(__o)->flush(__ptr, __size); + }), __obj_(__obj) {} - _LIBCPP_HIDE_FROM_ABI __output_iterator& operator=(_CharT __c) { - __fun_(__c, __obj_); - return *this; + _LIBCPP_HIDE_FROM_ABI void reset(_CharT* __ptr, size_t __capacity) { + __ptr_ = __ptr; + __capacity_ = __capacity; + } + + _LIBCPP_HIDE_FROM_ABI auto make_output_iterator() { + return back_insert_iterator{*this}; + } + + // TODO FMT It would be nice to have an overload to take a + // basic_string_view<_CharT> and append directly. + _LIBCPP_HIDE_FROM_ABI void push_back(_CharT __c) { + __ptr_[__size_++] = __c; + + // Profiling showed flushing after adding is more efficient than flushing + // when entering the function. + if (__size_ == __capacity_) + flush(); + } + + _LIBCPP_HIDE_FROM_ABI void flush() { + __flush_(__ptr_, __size_, __obj_); + __size_ = 0; } - _LIBCPP_HIDE_FROM_ABI __output_iterator& operator*() { return *this; } - _LIBCPP_HIDE_FROM_ABI __output_iterator& operator++() { return *this; } - _LIBCPP_HIDE_FROM_ABI __output_iterator& operator++(int) { return *this; } private: - void (*__fun_)(_CharT, void*); + _CharT* __ptr_; + size_t __capacity_; + size_t __size_{0}; + void (*__flush_)(_CharT*, size_t, void*); void* __obj_; }; -/// A "buffer" that directly writes to the supplied iterator. +/// A storage using an internal buffer. /// -/// This helper is specialized for all different output iterators used in the -/// format function. Together with the @ref __output_iterator this offers a -/// type erasure, reducing the number of formatter specializations. +/// This storage is used when writing a single element to the output iterator +/// is expensive. +template <__formatter::__char_type _CharT> +class _LIBCPP_TEMPLATE_VIS __internal_storage { +public: + _LIBCPP_HIDE_FROM_ABI _CharT* begin() { return __buffer_; } + _LIBCPP_HIDE_FROM_ABI size_t capacity() { return __buffer_size_; } + +private: + static constexpr size_t __buffer_size_ = 256 / sizeof(_CharT); + _CharT __buffer_[__buffer_size_]; +}; + +/// A storage writing directly to the storage. +/// +/// This requires the storage to be a contiguous buffer of \a _CharT. +/// Since the output is directly written to the underlaying storage this class +/// is just an empty class. +template <__formatter::__char_type _CharT> +class _LIBCPP_TEMPLATE_VIS __direct_storage {}; + +template +concept __enable_direct_output = __formatter::__char_type<_CharT> && + (same_as<_OutIt, _CharT*> +#if _LIBCPP_DEBUG_LEVEL < 2 + || same_as<_OutIt, __wrap_iter<_CharT*>> +#endif + ); + +/// Write policy for directly writing to the underlying output. template -requires(output_iterator<_OutIt, const _CharT&>) class _LIBCPP_TEMPLATE_VIS - __iterator_wrapper_buffer { +class _LIBCPP_TEMPLATE_VIS __writer_direct { public: - _LIBCPP_HIDE_FROM_ABI explicit __iterator_wrapper_buffer(_OutIt __it) - : __it_(_VSTD::move(__it)) {} + _LIBCPP_HIDE_FROM_ABI explicit __writer_direct(_OutIt __out_it) + : __out_it_(__out_it) {} - _LIBCPP_HIDE_FROM_ABI void put(_CharT __c) { *__it_++ = __c; } + _LIBCPP_HIDE_FROM_ABI auto out() { return __out_it_; } - _LIBCPP_HIDE_FROM_ABI _OutIt out() { return __it_; } + _LIBCPP_HIDE_FROM_ABI void flush(_CharT*, size_t __size) { + // _OutIt can be a __wrap_iter. Therefore the original iterator + // is adjusted. + __out_it_ += __size; + } private: - _OutIt __it_; + _OutIt __out_it_; +}; + +/// Write policy for copying the buffer to the output. +template +class _LIBCPP_TEMPLATE_VIS __writer_iterator { +public: + _LIBCPP_HIDE_FROM_ABI explicit __writer_iterator(_OutIt __out_it) + : __out_it_{_VSTD::move(__out_it)} {} + + _LIBCPP_HIDE_FROM_ABI auto out() { return __out_it_; } + + _LIBCPP_HIDE_FROM_ABI void flush(_CharT* __ptr, size_t __size) { + __out_it_ = _VSTD::copy_n(__ptr, __size, _VSTD::move(__out_it_)); + } + +private: + _OutIt __out_it_; }; -/// Concept to see whether a \a _Container is insertable. -/// -/// The concept is used to validate whether multiple calls to a -/// \ref back_insert_iterator can be replace by a call to \c _Container::insert. -/// -/// \note a \a _Container needs to opt-in to the concept by adding a typedef -/// \ref __enable_format_insertable with the same type as \a _Container. template concept __insertable = same_as<_Container, typename _Container::__enable_format_insertable> && @@ -114,59 +179,76 @@ using type = _Container; }; -/// A buffer that wraps a \ref back_insert_iterator for a \a _Container. +/// Write policy for inserting the buffer in a container. template -class _LIBCPP_TEMPLATE_VIS __container_buffer { +class _LIBCPP_TEMPLATE_VIS __writer_container { public: using _CharT = typename _Container::value_type; - _LIBCPP_HIDE_FROM_ABI explicit __container_buffer( - back_insert_iterator<_Container> __it) - : __container_(__it.__get_container()) {} + _LIBCPP_HIDE_FROM_ABI explicit __writer_container( + back_insert_iterator<_Container> __out_it) + : __container_{__out_it.__get_container()} {} - _LIBCPP_HIDE_FROM_ABI explicit __container_buffer(_Container* __container) - : __container_(__container) {} + _LIBCPP_HIDE_FROM_ABI auto out() { return back_inserter(*__container_); } - _LIBCPP_HIDE_FROM_ABI void put(_CharT __c) { - *__buffer_it_++ = __c; - // Profiling showed flushing after adding is more efficient than flushing - // when entering the function. - if (__buffer_it_ == __buffer_.end()) - __flush(); - } - - _LIBCPP_HIDE_FROM_ABI auto out() { - __flush(); - return back_inserter(*__container_); + _LIBCPP_HIDE_FROM_ABI void flush(_CharT* __ptr, size_t __size) { + __container_->insert(__container_->end(), __ptr, __ptr + __size); } private: - /// The size of the internal buffer. - /// - /// Profiling shows a 256 byte buffer seems optimal. - /// (256 elements for a char buffer and 64 elements for a 4-byte wchar_t) - static constexpr size_t __buffer_size = 256 / sizeof(_CharT); - - array<_CharT, __buffer_size> __buffer_; - _CharT* __buffer_it_ = __buffer_.begin(); _Container* __container_; - - void __flush() { - // Use __buffer_it_ instead of end() since the buffer might be partly filled. - __container_->insert(__container_->end(), __buffer_.begin(), __buffer_it_); - __buffer_it_ = __buffer_.begin(); - } }; -/// Selects the type of the buffer for the output iterator. +/// Selects the type of the writer used for the output iterator. template -class _LIBCPP_TEMPLATE_VIS __buffer_selector { - using _Iterator = typename __back_insert_iterator_container<_OutIt>::type; +class _LIBCPP_TEMPLATE_VIS __writer_selector { + + using _Container = typename __back_insert_iterator_container<_OutIt>::type; public: - using type = conditional_t, - __iterator_wrapper_buffer<_OutIt, _CharT>, - __container_buffer<_Iterator>>; + using type = + conditional_t, __writer_container<_Container>, + conditional_t<__enable_direct_output<_OutIt, _CharT>, + __writer_direct<_OutIt, _CharT>, + __writer_iterator<_OutIt, _CharT>>>; +}; + +/// The generic formatting buffer. +template +requires(output_iterator<_OutIt, const _CharT&>) class _LIBCPP_TEMPLATE_VIS + __format_buffer { + using _Storage = + conditional_t<__enable_direct_output<_OutIt, _CharT>, + __direct_storage<_CharT>, __internal_storage<_CharT>>; + +public: + _LIBCPP_HIDE_FROM_ABI explicit __format_buffer(_OutIt __out_it) requires( + same_as<_Storage, __internal_storage<_CharT>>) + : __output_(__storage_.begin(), __storage_.capacity(), this), + __writer_(_VSTD::move(__out_it)) {} + + _LIBCPP_HIDE_FROM_ABI explicit __format_buffer(_OutIt __out_it) requires( + same_as<_Storage, __direct_storage<_CharT>>) + : __output_(_VSTD::__unwrap_iter(__out_it), size_t(-1), this), + __writer_(_VSTD::move(__out_it)) {} + + _LIBCPP_HIDE_FROM_ABI auto make_output_iterator() { + return __output_.make_output_iterator(); + } + + _LIBCPP_HIDE_FROM_ABI void flush(_CharT* __ptr, size_t __size) { + __writer_.flush(__ptr, __size); + } + + _LIBCPP_HIDE_FROM_ABI _OutIt out() && { + __output_.flush(); + return _VSTD::move(__writer_).out(); + } + +private: + [[no_unique_address]] _Storage __storage_; + __output_buffer<_CharT> __output_; + typename __writer_selector<_OutIt, _CharT>::type __writer_; }; /// A buffer that counts the number of insertions. @@ -176,48 +258,123 @@ template <__formatter::__char_type _CharT> class _LIBCPP_TEMPLATE_VIS __formatted_size_buffer { public: - _LIBCPP_HIDE_FROM_ABI void put(_CharT) { ++__size_; } + _LIBCPP_HIDE_FROM_ABI auto make_output_iterator() { + return __output_.make_output_iterator(); + } + + _LIBCPP_HIDE_FROM_ABI void flush(_CharT*, size_t __size) { + __size_ += __size; + } - _LIBCPP_HIDE_FROM_ABI size_t formatted_size() const noexcept { + _LIBCPP_HIDE_FROM_ABI size_t result() && { + __output_.flush(); return __size_; } private: + __internal_storage<_CharT> __storage_; + __output_buffer<_CharT> __output_{__storage_.begin(), __storage_.capacity(), + this}; size_t __size_{0}; }; -/// A buffer that counts and limits the number of insertions. +/// The base of a buffer that counts and limits the number of insertions. +template +requires(output_iterator<_OutIt, const _CharT&>) struct _LIBCPP_TEMPLATE_VIS + __format_to_n_buffer_base { + using _Size = iter_difference_t<_OutIt>; + +public: + _LIBCPP_HIDE_FROM_ABI explicit __format_to_n_buffer_base(_OutIt __out_it, + _Size __n) + : __writer_(_VSTD::move(__out_it)), __n_(__n) {} + + _LIBCPP_HIDE_FROM_ABI void flush(_CharT* __ptr, size_t __size) { + if (_Size(__size_) <= __n_) + __writer_.flush(__ptr, _VSTD::min(_Size(__size), __n_ - __size_)); + __size_ += __size; + } + +protected: + __internal_storage<_CharT> __storage_; + __output_buffer<_CharT> __output_{__storage_.begin(), __storage_.capacity(), + this}; + typename __writer_selector<_OutIt, _CharT>::type __writer_; + + _Size __n_; + _Size __size_{0}; +}; + +/// The buffer that counts and limits the number of insertions. /// -/// This buffer holds another buffer to do the actual insertions until the -/// requested maximum has been reached. Once the maximum is reached it only -/// keeps track of the number of additional insertions. +/// This version is used for direct storage iterators. +/// +/// This limits the size of the "infinite" direct storage buffer so it will +/// limit the number of writes to the storage. template requires(output_iterator<_OutIt, const _CharT&>) class _LIBCPP_TEMPLATE_VIS - __format_to_n_buffer { - using _Buffer = typename __buffer_selector<_OutIt, _CharT>::type; + __format_to_n_buffer_base<_OutIt, _CharT, true> { using _Size = iter_difference_t<_OutIt>; public: - _LIBCPP_HIDE_FROM_ABI explicit __format_to_n_buffer(_OutIt __out_it, - _Size __n) - : __buffer_(_VSTD::move(__out_it)), __n_(__n) {} + _LIBCPP_HIDE_FROM_ABI explicit __format_to_n_buffer_base(_OutIt __out_it, + _Size __n) + : __output_(_VSTD::__unwrap_iter(__out_it), __n, this), + __writer_(_VSTD::move(__out_it)) { + _LIBCPP_ASSERT(__n > 0, + "The buffer doesn't work properly with negative sizes. For " + "efficiency the caller is also expected to handle __n == 0"); + } - _LIBCPP_HIDE_FROM_ABI void put(_CharT __c) { - ++__size_; - if (__size_ <= __n_) - __buffer_.put(__c); + _LIBCPP_HIDE_FROM_ABI void flush(_CharT* __ptr, size_t __size) { + // A flush on the direct storage buffer happens in two occasions: + // - The format function has written n code units. At this point it's no + // longer valid to write to this buffer. So switch to the internal buffer. + // This internal buffer doesn't need to be written anywhere so the flush + // for that buffer does nothing. + // - The format_to_n function is finished. In this there's no need to + // switch the buffer, but for simplicity the buffers are still switched. + if (__size_ == 0) { + __writer_.flush(__ptr, __size); + __output_.reset(__storage_.begin(), __storage_.capacity()); + } + + __size_ += __size; } - _LIBCPP_HIDE_FROM_ABI _OutIt out() { return __buffer_.out(); } +protected: + __internal_storage<_CharT> __storage_; + __output_buffer<_CharT> __output_; + __writer_direct<_OutIt, _CharT> __writer_; - _LIBCPP_HIDE_FROM_ABI _Size formatted_size() const noexcept { - return __size_; + _Size __size_{0}; +}; + +/// The buffer that counts and limits the number of insertions. +/// +/// This version is used for non-direct storage iterators. +template +requires(output_iterator<_OutIt, const _CharT&>) struct _LIBCPP_TEMPLATE_VIS + __format_to_n_buffer final + : public __format_to_n_buffer_base< + _OutIt, _CharT, __enable_direct_output<_OutIt, _CharT>> { + using _Base = + __format_to_n_buffer_base<_OutIt, _CharT, + __enable_direct_output<_OutIt, _CharT>>; + using _Size = iter_difference_t<_OutIt>; + +public: + _LIBCPP_HIDE_FROM_ABI explicit __format_to_n_buffer(_OutIt __out_it, + _Size __n) + : _Base(_VSTD::move(__out_it), __n) {} + _LIBCPP_HIDE_FROM_ABI auto make_output_iterator() { + return this->__output_.make_output_iterator(); } -private: - _Buffer __buffer_; - _Size __n_; - _Size __size_{0}; + _LIBCPP_HIDE_FROM_ABI format_to_n_result<_OutIt> result() && { + this->__output_.flush(); + return {_VSTD::move(this->__writer_).out(), this->__size_}; + } }; } // namespace __format diff --git a/libcxx/include/__format/format_context.h b/libcxx/include/__format/format_context.h --- a/libcxx/include/__format/format_context.h +++ b/libcxx/include/__format/format_context.h @@ -145,10 +145,11 @@ // (such as a span) and polymorphic reallocation. - end note] using format_context = - basic_format_context<__format::__output_iterator, char>; + basic_format_context>, + char>; #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS -using wformat_context = - basic_format_context<__format::__output_iterator, wchar_t>; +using wformat_context = basic_format_context< + back_insert_iterator<__format::__output_buffer>, wchar_t>; #endif #endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) diff --git a/libcxx/include/format b/libcxx/include/format --- a/libcxx/include/format +++ b/libcxx/include/format @@ -497,23 +497,6 @@ } // namespace __format -template -requires(output_iterator<_OutIt, const _CharT&>) _LIBCPP_HIDE_FROM_ABI _OutIt - __vformat_to_wrapped( - _OutIt __out_it, basic_string_view<_CharT> __fmt, - basic_format_args> __args) { - - using _Buffer = typename __format::__buffer_selector<_OutIt, _CharT>::type; - _Buffer __buffer{_VSTD::move(__out_it)}; - _VSTD::__format::__vformat_to( - basic_format_parse_context{__fmt, __args.__size()}, - _VSTD::__format_context_create( - _VSTD::__format::__output_iterator<_CharT>{ - _VSTD::addressof(__buffer)}, - __args)); - return __buffer.out(); -} - template requires(output_iterator<_OutIt, const _CharT&>) _LIBCPP_HIDE_FROM_ABI _OutIt __vformat_to( @@ -523,8 +506,14 @@ return _VSTD::__format::__vformat_to( basic_format_parse_context{__fmt, __args.__size()}, _VSTD::__format_context_create(_VSTD::move(__out_it), __args)); - else - return _VSTD::__vformat_to_wrapped(_VSTD::move(__out_it), __fmt, __args); + else { + __format::__format_buffer<_OutIt, _CharT> __buffer{_VSTD::move(__out_it)}; + _VSTD::__format::__vformat_to( + basic_format_parse_context{__fmt, __args.__size()}, + _VSTD::__format_context_create(__buffer.make_output_iterator(), + __args)); + return _VSTD::move(__buffer).out(); + } } template _OutIt> @@ -559,27 +548,17 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT string vformat(string_view __fmt, format_args __args) { - string __res; - using _Buffer = typename __format::__container_buffer; - _Buffer __buffer{&__res}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, __fmt, - __args); - __buffer.out(); - return __res; + string __res; + _VSTD::vformat_to(back_insert_iterator{__res}, __fmt, __args); + return __res; } #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT wstring vformat(wstring_view __fmt, wformat_args __args) { - using _Buffer = typename __format::__container_buffer; - wstring __res; - _Buffer __buffer{&__res}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, __fmt, - __args); - __buffer.out(); - return __res; + wstring __res; + _VSTD::vformat_to(back_insert_iterator{__res}, __fmt, __args); + return __res; } #endif @@ -597,23 +576,41 @@ } #endif -template -struct _LIBCPP_TEMPLATE_VIS format_to_n_result { - _OutIt out; - iter_difference_t<_OutIt> size; -}; +template +_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t +formatted_size(string_view __fmt, const _Args&... __args) { + __format::__formatted_size_buffer __buffer; + _VSTD::__vformat_to(__buffer.make_output_iterator(), __fmt, + basic_format_args{_VSTD::make_format_args(__args...)}); + + return _VSTD::move(__buffer).result(); +} + +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS +template +_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t +formatted_size(wstring_view __fmt, const _Args&... __args) { + __format::__formatted_size_buffer __buffer; + _VSTD::__vformat_to(__buffer.make_output_iterator(), __fmt, + basic_format_args{_VSTD::make_wformat_args(__args...)}); + + return _VSTD::move(__buffer).result(); +} +#endif template _OutIt, class... _Args> _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt> format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, string_view __fmt, const _Args&... __args) { + if (__n <= 0) [[unlikely]] + return {_VSTD::move(__out_it), + iter_difference_t<_OutIt>(formatted_size(__fmt, __args...))}; - using _Buffer = __format::__format_to_n_buffer<_OutIt, char>; - _Buffer __buffer{_VSTD::move(__out_it), __n}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, __fmt, - basic_format_args{_VSTD::make_format_args(__args...)}); - return {__buffer.out(), __buffer.formatted_size()}; + __format::__format_to_n_buffer<_OutIt, char> __buffer{_VSTD::move(__out_it), + __n}; + _VSTD::__vformat_to(__buffer.make_output_iterator(), __fmt, + basic_format_args{_VSTD::make_format_args(__args...)}); + return _VSTD::move(__buffer).result(); } #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS @@ -621,59 +618,19 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt> format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, wstring_view __fmt, const _Args&... __args) { + if (__n <= 0) [[unlikely]] + return {_VSTD::move(__out_it), + iter_difference_t<_OutIt>(formatted_size(__fmt, __args...))}; - using _Buffer = __format::__format_to_n_buffer<_OutIt, wchar_t>; - _Buffer __buffer{_VSTD::move(__out_it), __n}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, __fmt, - basic_format_args{_VSTD::make_wformat_args(__args...)}); - return {__buffer.out(), __buffer.formatted_size()}; -} -#endif - -template -_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t -formatted_size(string_view __fmt, const _Args&... __args) { - using _Buffer = __format::__formatted_size_buffer; - _Buffer __buffer; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, __fmt, - basic_format_args{_VSTD::make_format_args(__args...)}); - return __buffer.formatted_size(); -} - -#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS -template -_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t -formatted_size(wstring_view __fmt, const _Args&... __args) { - using _Buffer = __format::__formatted_size_buffer; - _Buffer __buffer; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, __fmt, - basic_format_args{_VSTD::make_wformat_args(__args...)}); - return __buffer.formatted_size(); + __format::__format_to_n_buffer<_OutIt, wchar_t> __buffer{ + _VSTD::move(__out_it), __n}; + _VSTD::__vformat_to(__buffer.make_output_iterator(), __fmt, + basic_format_args{_VSTD::make_wformat_args(__args...)}); + return _VSTD::move(__buffer).result(); } #endif #ifndef _LIBCPP_HAS_NO_LOCALIZATION - -template -requires(output_iterator<_OutIt, const _CharT&>) _LIBCPP_HIDE_FROM_ABI _OutIt - __vformat_to_wrapped( - _OutIt __out_it, locale __loc, basic_string_view<_CharT> __fmt, - basic_format_args> __args) { - - using _Buffer = typename __format::__buffer_selector<_OutIt, _CharT>::type; - _Buffer __buffer{_VSTD::move(__out_it)}; - _VSTD::__format::__vformat_to( - basic_format_parse_context{__fmt, __args.__size()}, - _VSTD::__format_context_create( - _VSTD::__format::__output_iterator<_CharT>{ - _VSTD::addressof(__buffer)}, - __args, _VSTD::move(__loc))); - return __buffer.out(); -} - template requires(output_iterator<_OutIt, const _CharT&>) _LIBCPP_HIDE_FROM_ABI _OutIt __vformat_to( @@ -685,9 +642,14 @@ basic_format_parse_context{__fmt, __args.__size()}, _VSTD::__format_context_create(_VSTD::move(__out_it), __args, _VSTD::move(__loc))); - else - return _VSTD::__vformat_to_wrapped(_VSTD::move(__out_it), - _VSTD::move(__loc), __fmt, __args); + else { + __format::__format_buffer<_OutIt, _CharT> __buffer{_VSTD::move(__out_it)}; + _VSTD::__format::__vformat_to( + basic_format_parse_context{__fmt, __args.__size()}, + _VSTD::__format_context_create(__buffer.make_output_iterator(), + __args, _VSTD::move(__loc))); + return _VSTD::move(__buffer).out(); + } } template _OutIt> @@ -724,27 +686,19 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT string vformat(locale __loc, string_view __fmt, format_args __args) { - using _Buffer = typename __format::__container_buffer; - string __res; - _Buffer __buffer{&__res}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, - _VSTD::move(__loc), __fmt, __args); - __buffer.out(); - return __res; + string __res; + _VSTD::vformat_to(back_insert_iterator{__res}, _VSTD::move(__loc), __fmt, + __args); + return __res; } #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT wstring vformat(locale __loc, wstring_view __fmt, wformat_args __args) { - using _Buffer = typename __format::__container_buffer; - wstring __res; - _Buffer __buffer{&__res}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, - _VSTD::move(__loc), __fmt, __args); - __buffer.out(); - return __res; + wstring __res; + _VSTD::vformat_to(back_insert_iterator{__res}, _VSTD::move(__loc), __fmt, + __args); + return __res; } #endif @@ -764,18 +718,41 @@ } #endif +template +_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t +formatted_size(locale __loc, string_view __fmt, const _Args&... __args) { + __format::__formatted_size_buffer __buffer; + _VSTD::__vformat_to(__buffer.make_output_iterator(), _VSTD::move(__loc),__fmt, + basic_format_args{_VSTD::make_format_args(__args...)}); + return _VSTD::move(__buffer).result(); +} + +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS +template +_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t +formatted_size(locale __loc, wstring_view __fmt, const _Args&... __args) { + __format::__formatted_size_buffer __buffer; + _VSTD::__vformat_to(__buffer.make_output_iterator(), _VSTD::move(__loc),__fmt, + basic_format_args{_VSTD::make_wformat_args(__args...)}); + + return _VSTD::move(__buffer).result(); +} +#endif + template _OutIt, class... _Args> _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt> format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, locale __loc, string_view __fmt, const _Args&... __args) { + if (__n <= 0) [[unlikely]] + return {_VSTD::move(__out_it), + iter_difference_t<_OutIt>(formatted_size(__fmt, __args...))}; - using _Buffer = __format::__format_to_n_buffer<_OutIt, char>; - _Buffer __buffer{_VSTD::move(__out_it), __n}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, - _VSTD::move(__loc), __fmt, - basic_format_args{_VSTD::make_format_args(__args...)}); - return {__buffer.out(), __buffer.formatted_size()}; + __format::__format_to_n_buffer<_OutIt, char> __buffer{_VSTD::move(__out_it), + __n}; + _VSTD::__vformat_to(__buffer.make_output_iterator(), _VSTD::move(__loc), + __fmt, + basic_format_args{_VSTD::make_format_args(__args...)}); + return _VSTD::move(__buffer).result(); } #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS @@ -783,40 +760,16 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt> format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, locale __loc, wstring_view __fmt, const _Args&... __args) { - - using _Buffer = __format::__format_to_n_buffer<_OutIt, wchar_t>; - _Buffer __buffer{_VSTD::move(__out_it), __n}; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, - _VSTD::move(__loc), __fmt, - basic_format_args{_VSTD::make_wformat_args(__args...)}); - return {__buffer.out(), __buffer.formatted_size()}; -} -#endif - -template -_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t -formatted_size(locale __loc, string_view __fmt, const _Args&... __args) { - using _Buffer = __format::__formatted_size_buffer; - _Buffer __buffer; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, - _VSTD::move(__loc), __fmt, - basic_format_args{_VSTD::make_format_args(__args...)}); - return __buffer.formatted_size(); -} - -#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS -template -_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t -formatted_size(locale __loc, wstring_view __fmt, const _Args&... __args) { - using _Buffer = __format::__formatted_size_buffer; - _Buffer __buffer; - _VSTD::__vformat_to( - __format::__output_iterator{_VSTD::addressof(__buffer)}, - _VSTD::move(__loc), __fmt, - basic_format_args{_VSTD::make_wformat_args(__args...)}); - return __buffer.formatted_size(); + if (__n <= 0) [[unlikely]] + return {_VSTD::move(__out_it), + iter_difference_t<_OutIt>(formatted_size(__fmt, __args...))}; + + __format::__format_to_n_buffer<_OutIt, wchar_t> __buffer{ + _VSTD::move(__out_it), __n}; + _VSTD::__vformat_to(__buffer.make_output_iterator(), _VSTD::move(__loc), + __fmt, + basic_format_args{_VSTD::make_wformat_args(__args...)}); + return _VSTD::move(__buffer).result(); } #endif diff --git a/libcxx/test/libcxx/utilities/format/format.formatter/format.context/types.compile.pass.cpp b/libcxx/test/libcxx/utilities/format/format.formatter/format.context/types.compile.pass.cpp --- a/libcxx/test/libcxx/utilities/format/format.formatter/format.context/types.compile.pass.cpp +++ b/libcxx/test/libcxx/utilities/format/format.formatter/format.context/types.compile.pass.cpp @@ -97,19 +97,24 @@ } constexpr void test() { - test, char>(); + test>, char>(); #ifndef TEST_HAS_NO_WIDE_CHARACTERS - test, wchar_t>(); + test>, + wchar_t>(); #endif } static_assert( - std::is_same_v, char>>); + std::is_same_v< + std::format_context, + std::basic_format_context< + std::back_insert_iterator>, + char>>); #ifndef TEST_HAS_NO_WIDE_CHARACTERS static_assert( - std::is_same_v, wchar_t>>); + std::is_same_v< + std::wformat_context, + std::basic_format_context< + std::back_insert_iterator< std::__format::__output_buffer>, + wchar_t>>); #endif