[all-commits] [llvm/llvm-project] 90f1b4: [libc++][format][5/7] Improve std::format_to_n

Mark de Wever via All-commits all-commits at lists.llvm.org
Sat Aug 3 08:16:26 PDT 2024


  Branch: refs/heads/users/mordante/format_performance__format_to_n
  Home:   https://github.com/llvm/llvm-project
  Commit: 90f1b4fb22a5bbcfec95eb770b346b79f24079a7
      https://github.com/llvm/llvm-project/commit/90f1b4fb22a5bbcfec95eb770b346b79f24079a7
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
    M libcxx/include/__format/buffer.h
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv

  Log Message:
  -----------
  [libc++][format][5/7] Improve std::format_to_n

__format_to_n_buffer is not used in the public library interface so the
changes are not an ABI break.

Before
----------------------------------------------------------------------------------------------------------------------------
Benchmark                                                                  Time             CPU   Iterations UserCounters...
----------------------------------------------------------------------------------------------------------------------------
BM_format_to_n_string_back_inserter<std::string>/1                      59.2 ns         59.1 ns     11797400 bytes_per_second=16.146Mi/s
BM_format_to_n_string_back_inserter<std::string>/2                      58.5 ns         58.3 ns     12042693 bytes_per_second=32.69Mi/s
BM_format_to_n_string_back_inserter<std::string>/4                      58.2 ns         58.0 ns     12053679 bytes_per_second=65.7375Mi/s
BM_format_to_n_string_back_inserter<std::string>/8                      58.6 ns         58.4 ns     12000831 bytes_per_second=130.542Mi/s
BM_format_to_n_string_back_inserter<std::string>/16                     58.7 ns         58.6 ns     11948692 bytes_per_second=260.493Mi/s
BM_format_to_n_string_back_inserter<std::string>/32                     77.8 ns         77.6 ns      8957906 bytes_per_second=393.212Mi/s
BM_format_to_n_string_back_inserter<std::string>/64                     77.5 ns         77.3 ns      9015286 bytes_per_second=789.397Mi/s
BM_format_to_n_string_back_inserter<std::string>/128                    90.9 ns         90.7 ns      7712930 bytes_per_second=1.31409Gi/s
BM_format_to_n_string_back_inserter<std::string>/256                     102 ns          102 ns      6865771 bytes_per_second=2.33399Gi/s
BM_format_to_n_string_back_inserter<std::string>/512                     158 ns          158 ns      4449684 bytes_per_second=3.02418Gi/s
BM_format_to_n_string_back_inserter<std::string>/1024                    290 ns          289 ns      2415073 bytes_per_second=3.29623Gi/s
BM_format_to_n_string_back_inserter<std::string>/2048                    489 ns          488 ns      1435682 bytes_per_second=3.90789Gi/s
BM_format_to_n_string_back_inserter<std::string>/4096                    801 ns          799 ns       875722 bytes_per_second=4.77568Gi/s
BM_format_to_n_string_back_inserter<std::string>/8192                   1449 ns         1445 ns       485062 bytes_per_second=5.27805Gi/s
BM_format_to_n_string_back_inserter<std::string>/16384                  2942 ns         2933 ns       238811 bytes_per_second=5.20206Gi/s
BM_format_to_n_string_back_inserter<std::string>/32768                  5676 ns         5661 ns       123699 bytes_per_second=5.39051Gi/s
BM_format_to_n_string_back_inserter<std::string>/65536                 12437 ns        12404 ns        56488 bytes_per_second=4.92062Gi/s
BM_format_to_n_string_back_inserter<std::string>/131072                25855 ns        25787 ns        27203 bytes_per_second=4.73377Gi/s
BM_format_to_n_string_back_inserter<std::string>/262144                52880 ns        52739 ns        13234 bytes_per_second=4.62925Gi/s
BM_format_to_n_string_back_inserter<std::string>/524288               107703 ns       107410 ns         6509 bytes_per_second=4.54594Gi/s
BM_format_to_n_string_back_inserter<std::string>/1048576              231479 ns       230781 ns         3041 bytes_per_second=4.23155Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/1                72.2 ns         72.0 ns      9743767 bytes_per_second=13.2436Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/2                72.5 ns         72.3 ns      9678565 bytes_per_second=26.3647Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/4                74.1 ns         73.9 ns      9474498 bytes_per_second=51.6367Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/8                75.0 ns         74.8 ns      9343663 bytes_per_second=101.929Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/16               79.4 ns         79.2 ns      8837997 bytes_per_second=192.732Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/32               88.6 ns         88.3 ns      7935214 bytes_per_second=345.479Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/64               90.6 ns         90.3 ns      7741976 bytes_per_second=675.639Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/128               109 ns          109 ns      6438809 bytes_per_second=1.0968Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/256               120 ns          119 ns      5857845 bytes_per_second=1.99756Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/512               186 ns          186 ns      3765552 bytes_per_second=2.56813Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/1024              284 ns          283 ns      2474412 bytes_per_second=3.37194Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/2048              484 ns          483 ns      1450834 bytes_per_second=3.94717Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/4096              802 ns          800 ns       869473 bytes_per_second=4.76587Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/8192             1469 ns         1466 ns       477127 bytes_per_second=5.20439Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/16384            2700 ns         2693 ns       259821 bytes_per_second=5.66613Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/32768            4979 ns         4967 ns       140926 bytes_per_second=6.14388Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/65536           10431 ns        10405 ns        67137 bytes_per_second=5.86603Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/131072          22646 ns        22591 ns        30999 bytes_per_second=5.40348Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/262144          46278 ns        46148 ns        15156 bytes_per_second=5.29038Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/524288          91695 ns        91511 ns         7657 bytes_per_second=5.33577Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/1048576        195458 ns       194988 ns         3567 bytes_per_second=5.00831Gi/s
BM_format_to_n_string_back_inserter<std::list<char>>/1                  65.5 ns         65.4 ns     10691963 bytes_per_second=14.5921Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/2                  78.9 ns         78.7 ns      8920318 bytes_per_second=24.2294Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/4                   107 ns          107 ns      6540004 bytes_per_second=35.6329Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/8                   171 ns          171 ns      4108360 bytes_per_second=44.6311Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/16                  331 ns          330 ns      2121251 bytes_per_second=46.2379Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/32                  641 ns          640 ns      1097213 bytes_per_second=47.6889Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/64                 1237 ns         1233 ns       565941 bytes_per_second=49.4821Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/128                2474 ns         2469 ns       284645 bytes_per_second=49.4484Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/256                4984 ns         4972 ns       142037 bytes_per_second=49.0997Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/512                9740 ns         9716 ns        71542 bytes_per_second=50.2565Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/1024              19503 ns        19451 ns        35970 bytes_per_second=50.2075Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/2048              39078 ns        38981 ns        17962 bytes_per_second=50.1052Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/4096              78329 ns        78132 ns         8963 bytes_per_second=49.9954Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/8192             156689 ns       156291 ns         4467 bytes_per_second=49.9869Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/16384            313624 ns       312732 ns         2235 bytes_per_second=49.9629Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/32768            630336 ns       628711 ns         1108 bytes_per_second=49.7048Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/65536           1261542 ns      1258055 ns          555 bytes_per_second=49.6799Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/131072          2543001 ns      2535000 ns          275 bytes_per_second=49.3097Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/262144          5214390 ns      5191608 ns          125 bytes_per_second=48.1546Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/524288         10650366 ns     10609616 ns           62 bytes_per_second=47.1271Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/1048576        21677130 ns     21550764 ns           31 bytes_per_second=46.4021Mi/s
BM_format_to_n_string_begin<std::string>/1                              53.7 ns         53.5 ns     13041641 bytes_per_second=17.8119Mi/s
BM_format_to_n_string_begin<std::string>/2                              53.0 ns         52.9 ns     13243962 bytes_per_second=36.0447Mi/s
BM_format_to_n_string_begin<std::string>/4                              53.1 ns         53.0 ns     13167006 bytes_per_second=71.98Mi/s
BM_format_to_n_string_begin<std::string>/8                              53.6 ns         53.5 ns     13093098 bytes_per_second=142.591Mi/s
BM_format_to_n_string_begin<std::string>/16                             53.7 ns         53.5 ns     13020678 bytes_per_second=285.038Mi/s
BM_format_to_n_string_begin<std::string>/32                             53.9 ns         53.8 ns     13034246 bytes_per_second=567.706Mi/s
BM_format_to_n_string_begin<std::string>/64                             54.3 ns         54.2 ns     12901135 bytes_per_second=1.10027Gi/s
BM_format_to_n_string_begin<std::string>/128                            60.7 ns         60.5 ns     11605050 bytes_per_second=1.97014Gi/s
BM_format_to_n_string_begin<std::string>/256                            69.1 ns         68.9 ns     10172526 bytes_per_second=3.4582Gi/s
BM_format_to_n_string_begin<std::string>/512                            89.5 ns         89.3 ns      7814551 bytes_per_second=5.33874Gi/s
BM_format_to_n_string_begin<std::string>/1024                            132 ns          132 ns      5302589 bytes_per_second=7.23812Gi/s
BM_format_to_n_string_begin<std::string>/2048                            229 ns          228 ns      3070816 bytes_per_second=8.3559Gi/s
BM_format_to_n_string_begin<std::string>/4096                            425 ns          424 ns      1649496 bytes_per_second=8.98833Gi/s
BM_format_to_n_string_begin<std::string>/8192                            812 ns          810 ns       866484 bytes_per_second=9.42053Gi/s
BM_format_to_n_string_begin<std::string>/16384                          1656 ns         1652 ns       423179 bytes_per_second=9.23521Gi/s
BM_format_to_n_string_begin<std::string>/32768                          3179 ns         3171 ns       220456 bytes_per_second=9.62316Gi/s
BM_format_to_n_string_begin<std::string>/65536                          6818 ns         6802 ns       103122 bytes_per_second=8.97315Gi/s
BM_format_to_n_string_begin<std::string>/131072                        14829 ns        14788 ns        47434 bytes_per_second=8.25491Gi/s
BM_format_to_n_string_begin<std::string>/262144                        29547 ns        29471 ns        23756 bytes_per_second=8.28414Gi/s
BM_format_to_n_string_begin<std::string>/524288                        59436 ns        59284 ns        11787 bytes_per_second=8.2363Gi/s
BM_format_to_n_string_begin<std::string>/1048576                      120292 ns       119974 ns         5842 bytes_per_second=8.13979Gi/s
BM_format_to_n_string_begin<std::vector<char>>/1                        53.0 ns         52.9 ns     13395096 bytes_per_second=18.0263Mi/s
BM_format_to_n_string_begin<std::vector<char>>/2                        53.0 ns         52.9 ns     13255941 bytes_per_second=36.0868Mi/s
BM_format_to_n_string_begin<std::vector<char>>/4                        52.9 ns         52.8 ns     13208574 bytes_per_second=72.2285Mi/s
BM_format_to_n_string_begin<std::vector<char>>/8                        52.5 ns         52.4 ns     13349218 bytes_per_second=145.688Mi/s
BM_format_to_n_string_begin<std::vector<char>>/16                       52.7 ns         52.6 ns     13239180 bytes_per_second=290.223Mi/s
BM_format_to_n_string_begin<std::vector<char>>/32                       52.9 ns         52.8 ns     12857843 bytes_per_second=577.776Mi/s
BM_format_to_n_string_begin<std::vector<char>>/64                       53.3 ns         53.2 ns     13165818 bytes_per_second=1.12004Gi/s
BM_format_to_n_string_begin<std::vector<char>>/128                      58.8 ns         58.7 ns     11955351 bytes_per_second=2.03242Gi/s
BM_format_to_n_string_begin<std::vector<char>>/256                      72.7 ns         72.5 ns      9567121 bytes_per_second=3.28642Gi/s
BM_format_to_n_string_begin<std::vector<char>>/512                      96.6 ns         96.3 ns      7270746 bytes_per_second=4.9504Gi/s
BM_format_to_n_string_begin<std::vector<char>>/1024                      138 ns          138 ns      5074395 bytes_per_second=6.91338Gi/s
BM_format_to_n_string_begin<std::vector<char>>/2048                      235 ns          235 ns      2985729 bytes_per_second=8.13348Gi/s
BM_format_to_n_string_begin<std::vector<char>>/4096                      439 ns          438 ns      1597496 bytes_per_second=8.70102Gi/s
BM_format_to_n_string_begin<std::vector<char>>/8192                      853 ns          851 ns       823405 bytes_per_second=8.96488Gi/s
BM_format_to_n_string_begin<std::vector<char>>/16384                    1627 ns         1623 ns       429274 bytes_per_second=9.40197Gi/s
BM_format_to_n_string_begin<std::vector<char>>/32768                    3221 ns         3212 ns       218030 bytes_per_second=9.50016Gi/s
BM_format_to_n_string_begin<std::vector<char>>/65536                    7089 ns         7072 ns        98823 bytes_per_second=8.63113Gi/s
BM_format_to_n_string_begin<std::vector<char>>/131072                  15268 ns        15229 ns        46052 bytes_per_second=8.01568Gi/s
BM_format_to_n_string_begin<std::vector<char>>/262144                  30296 ns        30219 ns        23098 bytes_per_second=8.07902Gi/s
BM_format_to_n_string_begin<std::vector<char>>/524288                  61230 ns        61074 ns        11421 bytes_per_second=7.99487Gi/s
BM_format_to_n_string_begin<std::vector<char>>/1048576                124101 ns       123704 ns         5671 bytes_per_second=7.89434Gi/s
BM_format_to_n_string_begin<std::list<char>>/1                          49.0 ns         48.9 ns     14339585 bytes_per_second=19.5125Mi/s
BM_format_to_n_string_begin<std::list<char>>/2                          49.8 ns         49.6 ns     14059613 bytes_per_second=38.4293Mi/s
BM_format_to_n_string_begin<std::list<char>>/4                          50.9 ns         50.8 ns     13803755 bytes_per_second=75.0895Mi/s
BM_format_to_n_string_begin<std::list<char>>/8                          64.0 ns         63.8 ns     10943929 bytes_per_second=119.516Mi/s
BM_format_to_n_string_begin<std::list<char>>/16                         84.8 ns         84.6 ns      8276210 bytes_per_second=180.468Mi/s
BM_format_to_n_string_begin<std::list<char>>/32                          127 ns          127 ns      5517041 bytes_per_second=240.407Mi/s
BM_format_to_n_string_begin<std::list<char>>/64                          214 ns          213 ns      3276668 bytes_per_second=286.073Mi/s
BM_format_to_n_string_begin<std::list<char>>/128                         389 ns          388 ns      1795410 bytes_per_second=314.419Mi/s
BM_format_to_n_string_begin<std::list<char>>/256                         749 ns          747 ns       938533 bytes_per_second=326.8Mi/s
BM_format_to_n_string_begin<std::list<char>>/512                        1453 ns         1449 ns       483905 bytes_per_second=336.9Mi/s
BM_format_to_n_string_begin<std::list<char>>/1024                       2852 ns         2845 ns       245676 bytes_per_second=343.269Mi/s
BM_format_to_n_string_begin<std::list<char>>/2048                       5685 ns         5671 ns       122982 bytes_per_second=344.409Mi/s
BM_format_to_n_string_begin<std::list<char>>/4096                      11312 ns        11283 ns        61990 bytes_per_second=346.216Mi/s
BM_format_to_n_string_begin<std::list<char>>/8192                      22644 ns        22586 ns        31006 bytes_per_second=345.9Mi/s
BM_format_to_n_string_begin<std::list<char>>/16384                     45298 ns        45180 ns        15512 bytes_per_second=345.836Mi/s
BM_format_to_n_string_begin<std::list<char>>/32768                     90351 ns        90110 ns         7777 bytes_per_second=346.8Mi/s
BM_format_to_n_string_begin<std::list<char>>/65536                    180594 ns       180048 ns         3892 bytes_per_second=347.13Mi/s
BM_format_to_n_string_begin<std::list<char>>/131072                   373023 ns       371863 ns         1882 bytes_per_second=336.145Mi/s
BM_format_to_n_string_begin<std::list<char>>/262144                   895166 ns       891717 ns          713 bytes_per_second=280.358Mi/s
BM_format_to_n_string_begin<std::list<char>>/524288                  2209006 ns      2201104 ns          318 bytes_per_second=227.159Mi/s
BM_format_to_n_string_begin<std::list<char>>/1048576                 4421130 ns      4404315 ns          159 bytes_per_second=227.05Mi/s
BM_format_to_n_string_span<char>/1                                      53.3 ns         53.2 ns     13152297 bytes_per_second=17.9301Mi/s
BM_format_to_n_string_span<char>/2                                      52.5 ns         52.4 ns     13372731 bytes_per_second=36.4069Mi/s
BM_format_to_n_string_span<char>/4                                      52.8 ns         52.7 ns     13249176 bytes_per_second=72.3966Mi/s
BM_format_to_n_string_span<char>/8                                      52.9 ns         52.8 ns     13256871 bytes_per_second=144.603Mi/s
BM_format_to_n_string_span<char>/16                                     53.7 ns         53.5 ns     13086124 bytes_per_second=285.171Mi/s
BM_format_to_n_string_span<char>/32                                     53.4 ns         53.3 ns     13156961 bytes_per_second=572.554Mi/s
BM_format_to_n_string_span<char>/64                                     53.4 ns         53.1 ns     13208519 bytes_per_second=1.12209Gi/s
BM_format_to_n_string_span<char>/128                                    60.8 ns         60.7 ns     11537915 bytes_per_second=1.96458Gi/s
BM_format_to_n_string_span<char>/256                                    69.1 ns         69.0 ns     10221573 bytes_per_second=3.45715Gi/s
BM_format_to_n_string_span<char>/512                                    89.5 ns         89.3 ns      7857679 bytes_per_second=5.34184Gi/s
BM_format_to_n_string_span<char>/1024                                    134 ns          134 ns      5229017 bytes_per_second=7.12054Gi/s
BM_format_to_n_string_span<char>/2048                                    223 ns          222 ns      3148532 bytes_per_second=8.58077Gi/s
BM_format_to_n_string_span<char>/4096                                    427 ns          426 ns      1640906 bytes_per_second=8.9548Gi/s
BM_format_to_n_string_span<char>/8192                                    818 ns          816 ns       862045 bytes_per_second=9.35247Gi/s
BM_format_to_n_string_span<char>/16384                                  1622 ns         1617 ns       432033 bytes_per_second=9.43376Gi/s
BM_format_to_n_string_span<char>/32768                                  3137 ns         3129 ns       223336 bytes_per_second=9.75164Gi/s
BM_format_to_n_string_span<char>/65536                                  6698 ns         6682 ns       104597 bytes_per_second=9.13435Gi/s
BM_format_to_n_string_span<char>/131072                                14925 ns        14888 ns        46957 bytes_per_second=8.19897Gi/s
BM_format_to_n_string_span<char>/262144                                29688 ns        29603 ns        23654 bytes_per_second=8.24706Gi/s
BM_format_to_n_string_span<char>/524288                                59308 ns        59180 ns        11818 bytes_per_second=8.25073Gi/s
BM_format_to_n_string_span<char>/1048576                              118765 ns       118433 ns         5890 bytes_per_second=8.24568Gi/s
BM_format_to_n_string_pointer<char>/1                                   52.3 ns         52.2 ns     13388309 bytes_per_second=18.2682Mi/s
BM_format_to_n_string_pointer<char>/2                                   52.9 ns         52.8 ns     13272848 bytes_per_second=36.1233Mi/s
BM_format_to_n_string_pointer<char>/4                                   53.1 ns         52.9 ns     13228995 bytes_per_second=72.0969Mi/s
BM_format_to_n_string_pointer<char>/8                                   52.9 ns         52.8 ns     13249394 bytes_per_second=144.527Mi/s
BM_format_to_n_string_pointer<char>/16                                  52.6 ns         52.5 ns     13336233 bytes_per_second=290.602Mi/s
BM_format_to_n_string_pointer<char>/32                                  52.5 ns         52.4 ns     13331942 bytes_per_second=582.748Mi/s
BM_format_to_n_string_pointer<char>/64                                  53.5 ns         53.4 ns     13126493 bytes_per_second=1.11708Gi/s
BM_format_to_n_string_pointer<char>/128                                 62.4 ns         62.3 ns     11222983 bytes_per_second=1.9146Gi/s
BM_format_to_n_string_pointer<char>/256                                 69.5 ns         69.4 ns     10086274 bytes_per_second=3.43692Gi/s
BM_format_to_n_string_pointer<char>/512                                 88.3 ns         88.1 ns      7929196 bytes_per_second=5.41346Gi/s
BM_format_to_n_string_pointer<char>/1024                                 131 ns          131 ns      5357630 bytes_per_second=7.29499Gi/s
BM_format_to_n_string_pointer<char>/2048                                 226 ns          225 ns      3099073 bytes_per_second=8.46339Gi/s
BM_format_to_n_string_pointer<char>/4096                                 426 ns          425 ns      1646323 bytes_per_second=8.97431Gi/s
BM_format_to_n_string_pointer<char>/8192                                 815 ns          813 ns       859395 bytes_per_second=9.38067Gi/s
BM_format_to_n_string_pointer<char>/16384                               1618 ns         1614 ns       432959 bytes_per_second=9.45405Gi/s
BM_format_to_n_string_pointer<char>/32768                               3137 ns         3129 ns       223694 bytes_per_second=9.75173Gi/s
BM_format_to_n_string_pointer<char>/65536                               6693 ns         6675 ns       104933 bytes_per_second=9.14424Gi/s
BM_format_to_n_string_pointer<char>/131072                             14912 ns        14876 ns        47053 bytes_per_second=8.20589Gi/s
BM_format_to_n_string_pointer<char>/262144                             29685 ns        29609 ns        23651 bytes_per_second=8.24549Gi/s
BM_format_to_n_string_pointer<char>/524288                             59254 ns        59133 ns        11837 bytes_per_second=8.25738Gi/s
BM_format_to_n_string_pointer<char>/1048576                           118746 ns       118523 ns         5911 bytes_per_second=8.2394Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/1                     57.5 ns         57.3 ns     12220461 bytes_per_second=66.5332Mi/s
BM_format_to_n_string_back_inserter<std::wstring>/2                     57.4 ns         57.2 ns     12204054 bytes_per_second=133.333Mi/s
BM_format_to_n_string_back_inserter<std::wstring>/4                     57.3 ns         57.2 ns     12223980 bytes_per_second=266.784Mi/s
BM_format_to_n_string_back_inserter<std::wstring>/8                     77.0 ns         76.8 ns      9139240 bytes_per_second=397.372Mi/s
BM_format_to_n_string_back_inserter<std::wstring>/16                    78.2 ns         78.0 ns      8964082 bytes_per_second=782.577Mi/s
BM_format_to_n_string_back_inserter<std::wstring>/32                    92.9 ns         92.6 ns      7565173 bytes_per_second=1.28711Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/64                     103 ns          103 ns      6811965 bytes_per_second=2.3225Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/128                    159 ns          159 ns      4405973 bytes_per_second=3.00338Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/256                    288 ns          287 ns      2435586 bytes_per_second=3.31766Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/512                    484 ns          483 ns      1449916 bytes_per_second=3.94838Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/1024                   817 ns          815 ns       856668 bytes_per_second=4.68114Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/2048                  1553 ns         1549 ns       451120 bytes_per_second=4.92413Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/4096                  2984 ns         2977 ns       235097 bytes_per_second=5.12583Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/8192                  5893 ns         5878 ns       119106 bytes_per_second=5.19202Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/16384                12448 ns        12412 ns        56460 bytes_per_second=4.91758Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/32768                25981 ns        25918 ns        27056 bytes_per_second=4.7099Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/65536                52551 ns        52422 ns        13313 bytes_per_second=4.65723Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/131072              107130 ns       106904 ns         6544 bytes_per_second=4.56746Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/262144              229385 ns       228860 ns         3050 bytes_per_second=4.26707Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/524288              635498 ns       633625 ns         1077 bytes_per_second=3.08246Gi/s
BM_format_to_n_string_back_inserter<std::wstring>/1048576            1433803 ns      1428452 ns          484 bytes_per_second=2.7346Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/1             70.5 ns         70.3 ns      9940095 bytes_per_second=54.2572Mi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/2             70.7 ns         70.6 ns      9934856 bytes_per_second=108.129Mi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/4             73.2 ns         73.0 ns      9588422 bytes_per_second=209.069Mi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/8             75.6 ns         75.4 ns      9285318 bytes_per_second=404.488Mi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/16            79.9 ns         79.7 ns      8792551 bytes_per_second=766.115Mi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/32             104 ns          104 ns      6731654 bytes_per_second=1.14643Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/64             137 ns          137 ns      5110206 bytes_per_second=1.739Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/128            225 ns          225 ns      3119091 bytes_per_second=2.12152Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/256            338 ns          337 ns      2076273 bytes_per_second=2.82731Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/512            546 ns          544 ns      1266193 bytes_per_second=3.50459Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/1024           872 ns          870 ns       803018 bytes_per_second=4.3864Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/2048          1553 ns         1551 ns       448165 bytes_per_second=4.91783Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/4096          2719 ns         2719 ns       257081 bytes_per_second=5.61113Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/8192          5032 ns         5033 ns       139480 bytes_per_second=6.06401Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/16384        10447 ns        10447 ns        67169 bytes_per_second=5.84251Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/32768        22749 ns        22749 ns        30716 bytes_per_second=5.36591Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/65536        46382 ns        46383 ns        15107 bytes_per_second=5.26353Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/131072       91122 ns        91123 ns         7643 bytes_per_second=5.35849Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/262144      189609 ns       189589 ns         3730 bytes_per_second=5.15094Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/524288      604574 ns       604526 ns         1153 bytes_per_second=3.23084Gi/s
BM_format_to_n_string_back_inserter<std::vector<wchar_t>>/1048576    1419322 ns      1419261 ns          489 bytes_per_second=2.75231Gi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/1               63.6 ns         63.6 ns     11046791 bytes_per_second=59.9824Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/2               77.7 ns         77.7 ns      9013447 bytes_per_second=98.1427Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/4                106 ns          106 ns      6608662 bytes_per_second=144.104Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/8                171 ns          171 ns      4100338 bytes_per_second=177.949Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/16               333 ns          333 ns      2090106 bytes_per_second=183.038Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/32               665 ns          665 ns      1051827 bytes_per_second=183.55Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/64              1277 ns         1277 ns       547868 bytes_per_second=191.143Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/128             2531 ns         2531 ns       275172 bytes_per_second=192.953Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/256             5071 ns         5070 ns       138777 bytes_per_second=192.603Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/512             9998 ns         9998 ns        69940 bytes_per_second=195.344Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/1024           20060 ns        20060 ns        34925 bytes_per_second=194.725Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/2048           40194 ns        40195 ns        17413 bytes_per_second=194.365Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/4096           80358 ns        80359 ns         8721 bytes_per_second=194.439Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/8192          161371 ns       161364 ns         4334 bytes_per_second=193.662Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/16384         323119 ns       323121 ns         2166 bytes_per_second=193.426Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/32768         646629 ns       646587 ns         1075 bytes_per_second=193.323Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/65536        1292611 ns      1292597 ns          541 bytes_per_second=193.409Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/131072       2616640 ns      2616409 ns          267 bytes_per_second=191.102Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/262144       5414119 ns      5414122 ns          124 bytes_per_second=184.702Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/524288      10974467 ns     10974049 ns           59 bytes_per_second=182.248Mi/s
BM_format_to_n_string_back_inserter<std::list<wchar_t>>/1048576     22293729 ns     22293492 ns           30 bytes_per_second=179.425Mi/s
BM_format_to_n_string_begin<std::wstring>/1                             52.0 ns         52.0 ns     13513725 bytes_per_second=73.3442Mi/s
BM_format_to_n_string_begin<std::wstring>/2                             51.7 ns         51.7 ns     13424668 bytes_per_second=147.671Mi/s
BM_format_to_n_string_begin<std::wstring>/4                             51.9 ns         51.9 ns     13509922 bytes_per_second=294.176Mi/s
BM_format_to_n_string_begin<std::wstring>/8                             52.0 ns         52.0 ns     13465404 bytes_per_second=587.05Mi/s
BM_format_to_n_string_begin<std::wstring>/16                            52.5 ns         52.5 ns     13500423 bytes_per_second=1.13543Gi/s
BM_format_to_n_string_begin<std::wstring>/32                            56.4 ns         56.4 ns     12405180 bytes_per_second=2.11547Gi/s
BM_format_to_n_string_begin<std::wstring>/64                            67.6 ns         67.6 ns     10352129 bytes_per_second=3.52698Gi/s
BM_format_to_n_string_begin<std::wstring>/128                           93.9 ns         93.9 ns      7522376 bytes_per_second=5.07921Gi/s
BM_format_to_n_string_begin<std::wstring>/256                            133 ns          133 ns      5247826 bytes_per_second=7.16001Gi/s
BM_format_to_n_string_begin<std::wstring>/512                            231 ns          231 ns      3023825 bytes_per_second=8.24208Gi/s
BM_format_to_n_string_begin<std::wstring>/1024                           424 ns          424 ns      1649402 bytes_per_second=8.99487Gi/s
BM_format_to_n_string_begin<std::wstring>/2048                           830 ns          830 ns       848532 bytes_per_second=9.19095Gi/s
BM_format_to_n_string_begin<std::wstring>/4096                          1679 ns         1679 ns       416070 bytes_per_second=9.09029Gi/s
BM_format_to_n_string_begin<std::wstring>/8192                          3213 ns         3213 ns       218136 bytes_per_second=9.49747Gi/s
BM_format_to_n_string_begin<std::wstring>/16384                         6838 ns         6838 ns       102068 bytes_per_second=8.92627Gi/s
BM_format_to_n_string_begin<std::wstring>/32768                        14764 ns        14764 ns        47436 bytes_per_second=8.26818Gi/s
BM_format_to_n_string_begin<std::wstring>/65536                        29714 ns        29714 ns        23491 bytes_per_second=8.21633Gi/s
BM_format_to_n_string_begin<std::wstring>/131072                       59647 ns        59644 ns        11780 bytes_per_second=8.18662Gi/s
BM_format_to_n_string_begin<std::wstring>/262144                      119454 ns       119456 ns         5863 bytes_per_second=8.17507Gi/s
BM_format_to_n_string_begin<std::wstring>/524288                      286293 ns       286295 ns         2442 bytes_per_second=6.82206Gi/s
BM_format_to_n_string_begin<std::wstring>/1048576                     911579 ns       911595 ns          766 bytes_per_second=4.28507Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/1                     51.3 ns         51.3 ns     13635395 bytes_per_second=74.3867Mi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/2                     51.0 ns         51.0 ns     13736606 bytes_per_second=149.493Mi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/4                     51.3 ns         51.3 ns     13656750 bytes_per_second=297.64Mi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/8                     51.1 ns         51.1 ns     12622517 bytes_per_second=597.171Mi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/16                    51.5 ns         51.5 ns     13233009 bytes_per_second=1.15659Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/32                    55.9 ns         55.9 ns     12520247 bytes_per_second=2.13093Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/64                    68.3 ns         68.3 ns     10250969 bytes_per_second=3.49104Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/128                   94.1 ns         94.1 ns      7450735 bytes_per_second=5.06522Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/256                    135 ns          135 ns      5189630 bytes_per_second=7.07126Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/512                    236 ns          236 ns      2969116 bytes_per_second=8.08995Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/1024                   440 ns          440 ns      1591408 bytes_per_second=8.678Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/2048                   853 ns          853 ns       814193 bytes_per_second=8.94736Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/4096                  1634 ns         1634 ns       427050 bytes_per_second=9.33682Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/8192                  3209 ns         3209 ns       217702 bytes_per_second=9.50934Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/16384                 7058 ns         7058 ns        99366 bytes_per_second=8.64797Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/32768                15116 ns        15115 ns        46380 bytes_per_second=8.07629Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/65536                30376 ns        30377 ns        23028 bytes_per_second=8.03712Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/131072               60970 ns        60971 ns        11499 bytes_per_second=8.00836Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/262144              122493 ns       122497 ns         5720 bytes_per_second=7.97217Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/524288              290542 ns       290527 ns         2408 bytes_per_second=6.72271Gi/s
BM_format_to_n_string_begin<std::vector<wchar_t>>/1048576             910702 ns       910584 ns          768 bytes_per_second=4.28983Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/1                       47.6 ns         47.6 ns     14679442 bytes_per_second=80.1266Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/2                       47.9 ns         47.9 ns     14631935 bytes_per_second=159.286Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/4                       51.3 ns         51.3 ns     13651671 bytes_per_second=297.535Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/8                       62.1 ns         62.1 ns     11280271 bytes_per_second=491.363Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/16                      83.3 ns         83.3 ns      8403480 bytes_per_second=732.6Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/32                       132 ns          132 ns      5270514 bytes_per_second=923.772Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/64                       225 ns          225 ns      3115251 bytes_per_second=1.0616Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/128                      411 ns          411 ns      1701267 bytes_per_second=1.15947Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/256                      769 ns          769 ns       908949 bytes_per_second=1.24006Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/512                     1491 ns         1491 ns       468414 bytes_per_second=1.27953Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/1024                    2957 ns         2957 ns       236899 bytes_per_second=1.28999Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/2048                    5843 ns         5843 ns       120170 bytes_per_second=1.30569Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/4096                   11544 ns        11544 ns        60622 bytes_per_second=1.32184Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/8192                   23435 ns        23435 ns        29848 bytes_per_second=1.3022Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/16384                  47005 ns        47006 ns        14899 bytes_per_second=1.29844Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/32768                  93735 ns        93735 ns         7461 bytes_per_second=1.30229Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/65536                 187187 ns       187181 ns         3741 bytes_per_second=1.3043Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/131072                387031 ns       387029 ns         1799 bytes_per_second=1.26161Gi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/262144               1002722 ns      1002684 ns          695 bytes_per_second=997.323Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/524288               2354693 ns      2354599 ns          297 bytes_per_second=849.402Mi/s
BM_format_to_n_string_begin<std::list<wchar_t>>/1048576              4864712 ns      4864581 ns          144 bytes_per_second=822.27Mi/s
BM_format_to_n_string_span<wchar_t>/1                                   50.6 ns         50.6 ns     13863954 bytes_per_second=75.4097Mi/s
BM_format_to_n_string_span<wchar_t>/2                                   50.7 ns         50.7 ns     13793656 bytes_per_second=150.425Mi/s
BM_format_to_n_string_span<wchar_t>/4                                   51.4 ns         51.4 ns     13645021 bytes_per_second=296.823Mi/s
BM_format_to_n_string_span<wchar_t>/8                                   51.2 ns         51.2 ns     13623522 bytes_per_second=595.898Mi/s
BM_format_to_n_string_span<wchar_t>/16                                  51.7 ns         51.7 ns     13610614 bytes_per_second=1.15303Gi/s
BM_format_to_n_string_span<wchar_t>/32                                  56.0 ns         56.0 ns     12451328 bytes_per_second=2.12771Gi/s
BM_format_to_n_string_span<wchar_t>/64                                  66.3 ns         66.3 ns     10524699 bytes_per_second=3.59561Gi/s
BM_format_to_n_string_span<wchar_t>/128                                 88.1 ns         88.1 ns      7938215 bytes_per_second=5.40999Gi/s
BM_format_to_n_string_span<wchar_t>/256                                  128 ns          128 ns      5456422 bytes_per_second=7.43012Gi/s
BM_format_to_n_string_span<wchar_t>/512                                  223 ns          223 ns      3142735 bytes_per_second=8.55933Gi/s
BM_format_to_n_string_span<wchar_t>/1024                                 428 ns          428 ns      1638744 bytes_per_second=8.92023Gi/s
BM_format_to_n_string_span<wchar_t>/2048                                 829 ns          829 ns       850093 bytes_per_second=9.20356Gi/s
BM_format_to_n_string_span<wchar_t>/4096                                1613 ns         1613 ns       432184 bytes_per_second=9.46179Gi/s
BM_format_to_n_string_span<wchar_t>/8192                                3151 ns         3151 ns       222389 bytes_per_second=9.68385Gi/s
BM_format_to_n_string_span<wchar_t>/16384                               6999 ns         7000 ns        99528 bytes_per_second=8.71988Gi/s
BM_format_to_n_string_span<wchar_t>/32768                              14819 ns        14818 ns        47207 bytes_per_second=8.23778Gi/s
BM_format_to_n_string_span<wchar_t>/65536                              29640 ns        29641 ns        23619 bytes_per_second=8.23659Gi/s
BM_format_to_n_string_span<wchar_t>/131072                             59443 ns        59440 ns        11783 bytes_per_second=8.21464Gi/s
BM_format_to_n_string_span<wchar_t>/262144                            118942 ns       118944 ns         5868 bytes_per_second=8.2103Gi/s
BM_format_to_n_string_span<wchar_t>/524288                            288199 ns       288173 ns         2431 bytes_per_second=6.77761Gi/s
BM_format_to_n_string_span<wchar_t>/1048576                           912877 ns       912855 ns          766 bytes_per_second=4.27916Gi/s
BM_format_to_n_string_pointer<wchar_t>/1                                50.7 ns         50.7 ns     13760222 bytes_per_second=75.2909Mi/s
BM_format_to_n_string_pointer<wchar_t>/2                                50.9 ns         50.9 ns     13753058 bytes_per_second=149.952Mi/s
BM_format_to_n_string_pointer<wchar_t>/4                                51.5 ns         51.5 ns     13580976 bytes_per_second=296.297Mi/s
BM_format_to_n_string_pointer<wchar_t>/8                                51.3 ns         51.3 ns     13646126 bytes_per_second=594.92Mi/s
BM_format_to_n_string_pointer<wchar_t>/16                               51.6 ns         51.6 ns     13583615 bytes_per_second=1.156Gi/s
BM_format_to_n_string_pointer<wchar_t>/32                               56.2 ns         56.2 ns     12474119 bytes_per_second=2.12153Gi/s
BM_format_to_n_string_pointer<wchar_t>/64                               66.4 ns         66.4 ns     10534648 bytes_per_second=3.58917Gi/s
BM_format_to_n_string_pointer<wchar_t>/128                              88.1 ns         88.1 ns      7950562 bytes_per_second=5.40973Gi/s
BM_format_to_n_string_pointer<wchar_t>/256                               129 ns          129 ns      5437624 bytes_per_second=7.39644Gi/s
BM_format_to_n_string_pointer<wchar_t>/512                               224 ns          224 ns      3120869 bytes_per_second=8.50226Gi/s
BM_format_to_n_string_pointer<wchar_t>/1024                              429 ns          429 ns      1631703 bytes_per_second=8.89102Gi/s
BM_format_to_n_string_pointer<wchar_t>/2048                              822 ns          822 ns       846043 bytes_per_second=9.28063Gi/s
BM_format_to_n_string_pointer<wchar_t>/4096                             1616 ns         1616 ns       431533 bytes_per_second=9.44167Gi/s
BM_format_to_n_string_pointer<wchar_t>/8192                             3151 ns         3151 ns       221539 bytes_per_second=9.68612Gi/s
BM_format_to_n_string_pointer<wchar_t>/16384                            6967 ns         6967 ns       100616 bytes_per_second=8.76067Gi/s
BM_format_to_n_string_pointer<wchar_t>/32768                           14734 ns        14734 ns        47573 bytes_per_second=8.285Gi/s
BM_format_to_n_string_pointer<wchar_t>/65536                           29502 ns        29502 ns        23727 bytes_per_second=8.27539Gi/s
BM_format_to_n_string_pointer<wchar_t>/131072                          59189 ns        59187 ns        11868 bytes_per_second=8.24977Gi/s
BM_format_to_n_string_pointer<wchar_t>/262144                         118521 ns       118524 ns         5903 bytes_per_second=8.2394Gi/s
BM_format_to_n_string_pointer<wchar_t>/524288                         288848 ns       288823 ns         2432 bytes_per_second=6.76236Gi/s
BM_format_to_n_string_pointer<wchar_t>/1048576                        912304 ns       912281 ns          765 bytes_per_second=4.28185Gi/s

After
----------------------------------------------------------------------------------------------------------------------------
Benchmark                                                                  Time             CPU   Iterations UserCounters...
----------------------------------------------------------------------------------------------------------------------------
BM_format_to_n_string_back_inserter<std::string>/1                      58.3 ns         58.3 ns     11894752 bytes_per_second=16.3678Mi/s
BM_format_to_n_string_back_inserter<std::string>/2                      58.6 ns         58.6 ns     11930741 bytes_per_second=32.5454Mi/s
BM_format_to_n_string_back_inserter<std::string>/4                      58.7 ns         58.7 ns     11939708 bytes_per_second=65.0315Mi/s
BM_format_to_n_string_back_inserter<std::string>/8                      58.5 ns         58.5 ns     11961911 bytes_per_second=130.361Mi/s
BM_format_to_n_string_back_inserter<std::string>/16                     58.5 ns         58.5 ns     12024579 bytes_per_second=260.963Mi/s
BM_format_to_n_string_back_inserter<std::string>/32                     76.7 ns         76.7 ns      9105849 bytes_per_second=397.672Mi/s
BM_format_to_n_string_back_inserter<std::string>/64                     76.8 ns         76.8 ns      9132067 bytes_per_second=795.158Mi/s
BM_format_to_n_string_back_inserter<std::string>/128                    77.4 ns         77.4 ns      9036342 bytes_per_second=1.53966Gi/s
BM_format_to_n_string_back_inserter<std::string>/256                    90.0 ns         90.0 ns      7772798 bytes_per_second=2.64943Gi/s
BM_format_to_n_string_back_inserter<std::string>/512                     136 ns          136 ns      5146311 bytes_per_second=3.51286Gi/s
BM_format_to_n_string_back_inserter<std::string>/1024                    257 ns          257 ns      2721554 bytes_per_second=3.70954Gi/s
BM_format_to_n_string_back_inserter<std::string>/2048                    413 ns          413 ns      1694544 bytes_per_second=4.61394Gi/s
BM_format_to_n_string_back_inserter<std::string>/4096                    668 ns          668 ns      1048318 bytes_per_second=5.71409Gi/s
BM_format_to_n_string_back_inserter<std::string>/8192                   1116 ns         1116 ns       625793 bytes_per_second=6.83872Gi/s
BM_format_to_n_string_back_inserter<std::string>/16384                  2357 ns         2357 ns       297204 bytes_per_second=6.47413Gi/s
BM_format_to_n_string_back_inserter<std::string>/32768                  4467 ns         4467 ns       156599 bytes_per_second=6.83149Gi/s
BM_format_to_n_string_back_inserter<std::string>/65536                  9366 ns         9366 ns        74666 bytes_per_second=6.51672Gi/s
BM_format_to_n_string_back_inserter<std::string>/131072                19923 ns        19923 ns        35254 bytes_per_second=6.12721Gi/s
BM_format_to_n_string_back_inserter<std::string>/262144                42798 ns        42798 ns        16329 bytes_per_second=5.70446Gi/s
BM_format_to_n_string_back_inserter<std::string>/524288                87261 ns        87257 ns         7998 bytes_per_second=5.59592Gi/s
BM_format_to_n_string_back_inserter<std::string>/1048576              181427 ns       181426 ns         3849 bytes_per_second=5.3827Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/1                72.0 ns         72.0 ns      9698638 bytes_per_second=13.2527Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/2                73.3 ns         73.3 ns      9565537 bytes_per_second=26.0322Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/4                73.9 ns         73.9 ns      9483910 bytes_per_second=51.6234Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/8                75.7 ns         75.7 ns      9205102 bytes_per_second=100.761Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/16               79.2 ns         79.2 ns      8841952 bytes_per_second=192.631Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/32               90.1 ns         90.1 ns      7809568 bytes_per_second=338.856Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/64               89.9 ns         89.9 ns      7783634 bytes_per_second=679.293Mi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/128              91.2 ns         91.2 ns      7677201 bytes_per_second=1.30693Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/256               108 ns          108 ns      6493267 bytes_per_second=2.21248Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/512               165 ns          165 ns      4241778 bytes_per_second=2.88381Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/1024              250 ns          250 ns      2797074 bytes_per_second=3.80765Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/2048              404 ns          404 ns      1731642 bytes_per_second=4.72376Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/4096              629 ns          629 ns      1115298 bytes_per_second=6.0654Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/8192             1053 ns         1053 ns       661168 bytes_per_second=7.24586Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/16384            2062 ns         2062 ns       338457 bytes_per_second=7.40132Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/32768            3805 ns         3805 ns       183818 bytes_per_second=8.02137Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/65536            7558 ns         7558 ns        92613 bytes_per_second=8.07602Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/131072          16973 ns        16973 ns        41293 bytes_per_second=7.19215Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/262144          37110 ns        37111 ns        18845 bytes_per_second=6.57874Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/524288          73110 ns        73108 ns         9592 bytes_per_second=6.67894Gi/s
BM_format_to_n_string_back_inserter<std::vector<char>>/1048576        149194 ns       149197 ns         4635 bytes_per_second=6.54548Gi/s
BM_format_to_n_string_back_inserter<std::list<char>>/1                  65.8 ns         65.8 ns     10641306 bytes_per_second=14.493Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/2                  79.4 ns         79.4 ns      8823359 bytes_per_second=24.0097Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/4                   107 ns          107 ns      6538116 bytes_per_second=35.6288Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/8                   180 ns          180 ns      3883077 bytes_per_second=42.4124Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/16                  334 ns          334 ns      2097317 bytes_per_second=45.6725Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/32                  662 ns          662 ns      1043514 bytes_per_second=46.1005Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/64                 1267 ns         1267 ns       553510 bytes_per_second=48.1803Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/128                2480 ns         2480 ns       283417 bytes_per_second=49.2188Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/256                4923 ns         4924 ns       142727 bytes_per_second=49.5863Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/512                9812 ns         9811 ns        71351 bytes_per_second=49.7668Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/1024              19590 ns        19591 ns        35686 bytes_per_second=49.8475Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/2048              39161 ns        39159 ns        17860 bytes_per_second=49.8767Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/4096              78316 ns        78315 ns         8920 bytes_per_second=49.8788Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/8192             156709 ns       156699 ns         4462 bytes_per_second=49.8566Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/16384            312842 ns       312842 ns         2239 bytes_per_second=49.9454Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/32768            629744 ns       629751 ns         1106 bytes_per_second=49.6228Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/65536           1257851 ns      1257872 ns          553 bytes_per_second=49.6871Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/131072          2531022 ns      2530835 ns          275 bytes_per_second=49.3908Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/262144          5182786 ns      5182661 ns          124 bytes_per_second=48.2378Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/524288         10566644 ns     10566709 ns           62 bytes_per_second=47.3184Mi/s
BM_format_to_n_string_back_inserter<std::list<char>>/1048576        21319849 ns     21318080 ns           31 bytes_per_second=46.9085Mi/s
BM_format_to_n_string_begin<std::string>/1                              48.7 ns         48.7 ns     14301196 bytes_per_second=19.5919Mi/s
BM_format_to_n_string_begin<std::string>/2                              48.5 ns         48.5 ns     14418491 bytes_per_second=39.3467Mi/s
BM_format_to_n_string_begin<std::string>/4                              48.5 ns         48.5 ns     14435510 bytes_per_second=78.6366Mi/s
BM_format_to_n_string_begin<std::string>/8                              48.5 ns         48.5 ns     14434663 bytes_per_second=157.36Mi/s
BM_format_to_n_string_begin<std::string>/16                             48.5 ns         48.5 ns     14447251 bytes_per_second=314.86Mi/s
BM_format_to_n_string_begin<std::string>/32                             47.9 ns         47.9 ns     14603136 bytes_per_second=636.898Mi/s
BM_format_to_n_string_begin<std::string>/64                             48.3 ns         48.3 ns     14492719 bytes_per_second=1.23435Gi/s
BM_format_to_n_string_begin<std::string>/128                            48.2 ns         48.2 ns     14539008 bytes_per_second=2.47366Gi/s
BM_format_to_n_string_begin<std::string>/256                            50.0 ns         50.0 ns     14021955 bytes_per_second=4.7704Gi/s
BM_format_to_n_string_begin<std::string>/512                            52.6 ns         52.6 ns     13310671 bytes_per_second=9.06757Gi/s
BM_format_to_n_string_begin<std::string>/1024                           56.2 ns         56.2 ns     12459389 bytes_per_second=16.9652Gi/s
BM_format_to_n_string_begin<std::string>/2048                           67.2 ns         67.2 ns     10432897 bytes_per_second=28.3795Gi/s
BM_format_to_n_string_begin<std::string>/4096                            101 ns          101 ns      6911640 bytes_per_second=37.6209Gi/s
BM_format_to_n_string_begin<std::string>/8192                            150 ns          150 ns      4664235 bytes_per_second=50.8575Gi/s
BM_format_to_n_string_begin<std::string>/16384                           308 ns          308 ns      2225795 bytes_per_second=49.5371Gi/s
BM_format_to_n_string_begin<std::string>/32768                          1339 ns         1339 ns       521726 bytes_per_second=22.7997Gi/s
BM_format_to_n_string_begin<std::string>/65536                          3293 ns         3293 ns       212565 bytes_per_second=18.5337Gi/s
BM_format_to_n_string_begin<std::string>/131072                         6596 ns         6596 ns       106272 bytes_per_second=18.5063Gi/s
BM_format_to_n_string_begin<std::string>/262144                        14064 ns        14065 ns        49774 bytes_per_second=17.3584Gi/s
BM_format_to_n_string_begin<std::string>/524288                        29428 ns        29428 ns        23775 bytes_per_second=16.5921Gi/s
BM_format_to_n_string_begin<std::string>/1048576                       58666 ns        58666 ns        11893 bytes_per_second=16.6463Gi/s
BM_format_to_n_string_begin<std::vector<char>>/1                        48.0 ns         48.0 ns     14564573 bytes_per_second=19.8636Mi/s
BM_format_to_n_string_begin<std::vector<char>>/2                        48.4 ns         48.4 ns     14445531 bytes_per_second=39.372Mi/s
BM_format_to_n_string_begin<std::vector<char>>/4                        48.1 ns         48.1 ns     14579370 bytes_per_second=79.3003Mi/s
BM_format_to_n_string_begin<std::vector<char>>/8                        48.3 ns         48.3 ns     14510269 bytes_per_second=158.113Mi/s
BM_format_to_n_string_begin<std::vector<char>>/16                       48.4 ns         48.4 ns     14452809 bytes_per_second=314.976Mi/s
BM_format_to_n_string_begin<std::vector<char>>/32                       48.1 ns         48.1 ns     14578127 bytes_per_second=634.858Mi/s
BM_format_to_n_string_begin<std::vector<char>>/64                       48.4 ns         48.4 ns     14454174 bytes_per_second=1.2304Gi/s
BM_format_to_n_string_begin<std::vector<char>>/128                      48.4 ns         48.4 ns     14454299 bytes_per_second=2.46269Gi/s
BM_format_to_n_string_begin<std::vector<char>>/256                      49.1 ns         49.1 ns     14271076 bytes_per_second=4.85671Gi/s
BM_format_to_n_string_begin<std::vector<char>>/512                      52.6 ns         52.6 ns     13331231 bytes_per_second=9.06458Gi/s
BM_format_to_n_string_begin<std::vector<char>>/1024                     55.6 ns         55.6 ns     12610443 bytes_per_second=17.1486Gi/s
BM_format_to_n_string_begin<std::vector<char>>/2048                     67.0 ns         67.0 ns     10439580 bytes_per_second=28.476Gi/s
BM_format_to_n_string_begin<std::vector<char>>/4096                     97.6 ns         97.6 ns      7184733 bytes_per_second=39.1032Gi/s
BM_format_to_n_string_begin<std::vector<char>>/8192                      151 ns          151 ns      4633388 bytes_per_second=50.5215Gi/s
BM_format_to_n_string_begin<std::vector<char>>/16384                     315 ns          315 ns      2185686 bytes_per_second=48.4704Gi/s
BM_format_to_n_string_begin<std::vector<char>>/32768                    1345 ns         1345 ns       519043 bytes_per_second=22.6814Gi/s
BM_format_to_n_string_begin<std::vector<char>>/65536                    3295 ns         3295 ns       212381 bytes_per_second=18.5221Gi/s
BM_format_to_n_string_begin<std::vector<char>>/131072                   6591 ns         6590 ns       105414 bytes_per_second=18.5223Gi/s
BM_format_to_n_string_begin<std::vector<char>>/262144                  14084 ns        14084 ns        49765 bytes_per_second=17.3344Gi/s
BM_format_to_n_string_begin<std::vector<char>>/524288                  30239 ns        30238 ns        23144 bytes_per_second=16.1477Gi/s
BM_format_to_n_string_begin<std::vector<char>>/1048576                 60270 ns        60271 ns        11619 bytes_per_second=16.2028Gi/s
BM_format_to_n_string_begin<std::list<char>>/1                          50.9 ns         50.9 ns     13783105 bytes_per_second=18.7485Mi/s
BM_format_to_n_string_begin<std::list<char>>/2                          51.1 ns         51.1 ns     13641522 bytes_per_second=37.3058Mi/s
BM_format_to_n_string_begin<std::list<char>>/4                          52.9 ns         52.9 ns     13255629 bytes_per_second=72.1149Mi/s
BM_format_to_n_string_begin<std::list<char>>/8                          61.5 ns         61.5 ns     11386841 bytes_per_second=123.981Mi/s
BM_format_to_n_string_begin<std::list<char>>/16                         82.8 ns         82.9 ns      8448851 bytes_per_second=184.17Mi/s
BM_format_to_n_string_begin<std::list<char>>/32                          126 ns          126 ns      5558591 bytes_per_second=242.13Mi/s
BM_format_to_n_string_begin<std::list<char>>/64                          212 ns          212 ns      3298201 bytes_per_second=287.444Mi/s
BM_format_to_n_string_begin<std::list<char>>/128                         385 ns          385 ns      1820237 bytes_per_second=317.326Mi/s
BM_format_to_n_string_begin<std::list<char>>/256                         746 ns          746 ns       934390 bytes_per_second=327.096Mi/s
BM_format_to_n_string_begin<std::list<char>>/512                        1439 ns         1439 ns       487631 bytes_per_second=339.402Mi/s
BM_format_to_n_string_begin<std::list<char>>/1024                       2883 ns         2882 ns       242058 bytes_per_second=338.795Mi/s
BM_format_to_n_string_begin<std::list<char>>/2048                       5735 ns         5735 ns       121554 bytes_per_second=340.565Mi/s
BM_format_to_n_string_begin<std::list<char>>/4096                      11360 ns        11360 ns        61656 bytes_per_second=343.875Mi/s
BM_format_to_n_string_begin<std::list<char>>/8192                      23030 ns        23030 ns        30381 bytes_per_second=339.224Mi/s
BM_format_to_n_string_begin<std::list<char>>/16384                     45959 ns        45958 ns        15229 bytes_per_second=339.985Mi/s
BM_format_to_n_string_begin<std::list<char>>/32768                     91864 ns        91864 ns         7639 bytes_per_second=340.178Mi/s
BM_format_to_n_string_begin<std::list<char>>/65536                    183305 ns       183298 ns         3821 bytes_per_second=340.976Mi/s
BM_format_to_n_string_begin<std::list<char>>/131072                   375274 ns       375279 ns         1868 bytes_per_second=333.086Mi/s
BM_format_to_n_string_begin<std::list<char>>/262144                   863452 ns       863366 ns          811 bytes_per_second=289.564Mi/s
BM_format_to_n_string_begin<std::list<char>>/524288                  2044442 ns      2044356 ns          342 bytes_per_second=244.576Mi/s
BM_format_to_n_string_begin<std::list<char>>/1048576                 4349820 ns      4349352 ns          161 bytes_per_second=229.919Mi/s
BM_format_to_n_string_span<char>/1                                      48.1 ns         48.1 ns     14575723 bytes_per_second=19.8447Mi/s
BM_format_to_n_string_span<char>/2                                      48.5 ns         48.5 ns     14428140 bytes_per_second=39.3396Mi/s
BM_format_to_n_string_span<char>/4                                      48.0 ns         48.0 ns     14559308 bytes_per_second=79.4032Mi/s
BM_format_to_n_string_span<char>/8                                      48.3 ns         48.3 ns     14497844 bytes_per_second=157.973Mi/s
BM_format_to_n_string_span<char>/16                                     48.5 ns         48.5 ns     14423850 bytes_per_second=314.497Mi/s
BM_format_to_n_string_span<char>/32                                     48.5 ns         48.5 ns     14436875 bytes_per_second=629.449Mi/s
BM_format_to_n_string_span<char>/64                                     48.5 ns         48.5 n…



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list