Runtime performance

Environments
Label Library type Compiler OS

VS/ho

header-only

Visual Studio 2019

Windows 10

VS/s

static

GCC/ho

header-only

GCC 11.1.0

Ubuntu 20.04.1

GCC/s

static

Clang/ho

header-only

Clang 12.0.0

Clang/s

static

The benchmarks programs were all run in the same computer and compiled in C++20. The {fmt} version is 8.0.1

You can replicate them in your environment by executing the following commands:

git clone https://github.com/robhz786/strf-benchmarks
cd strf-benchmarks
git submodule update --init
mkdir build
cd build

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20 ..
# ( CMAKE_CXX_STANDARD must be 17 or higher )

cmake --build . --target to_char_ptr-static-lib
cmake --build . --target to_char_ptr-header-only
cmake --build . --target to_string-static-lib
cmake --build . --target to_string-header-only
# ( and/or build other targets )

./to_char_ptr-static-lib
./to_char_ptr-header-only
./to_string-static-lib
./to_string-header-only
# ( and/or run other benchmarks )

Writing to char*

Sample 1

Print a string

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1.strf::to(…​)(…​)

13 ns

13 ns

11.3 ns

10.6 ns

3.54 ns

3.56 ns

2.strf::to(…​).tr(…​)

22.2 ns

26.9 ns

20.3 ns

19 ns

17.6 ns

16.8 ns

3.fmt::format_to(…​,FMT_COMPILE(…​),…​)

6.1 ns

6.1 ns

12.4 ns

12.4 ns

11.9 ns

12.1 ns

4.fmt::format_to_n(…​,FMT_COMPILE(…​),…​)

205 ns

204 ns

80 ns

80.1 ns

74.3 ns

73.5 ns

5.fmt::format_to(…​, "…​", …​)

38.7 ns

36.2 ns

29.5 ns

26.3 ns

27.6 ns

26.3 ns

6.fmt::format_to_n(…​, "…​", …​)

61.3 ns

62.9 ns

35.8 ns

30.1 ns

33.6 ns

31.2 ns

7.std::sprintf

77 ns

62.7 ns

62.4 ns

  1. strf::to(dest, dest_size)("Blah ", str, "!\n")

  2. strf::to(dest, dest_size).tr("Blah {}!\n", str)

  3. fmt::format_to(dest, FMT_COMPILE("Blah {}!\n"), str)

  4. fmt::format_to_n(dest, dest_size, FMT_COMPILE("Blah {}!\n"), str)

  5. fmt::format_to(dest, "Blah {}!\n", str)

  6. fmt::format_to_n(dest, dest_size, "Blah {}!\n", str)

  7. std::sprintf(dest, "Blah %s!\n", str.c_str())

using
    constexpr std::size_t dest_size = 110;
    char dest[dest_size];
    std::string str = "blah blah blah blah blah ";

Sample 2

Print a string with alignment formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1.strf::to(…​)(…​)

75.2 ns

79.8 ns

38.4 ns

39.5 ns

62.2 ns

73.3 ns

2.strf::to(…​).tr(…​)

84.8 ns

96.2 ns

54 ns

51.4 ns

68.8 ns

77.9 ns

3.fmt::format_to(…​,FMT_COMPILE(…​),…​)

269 ns

271 ns

160 ns

160 ns

151 ns

152 ns

4.fmt::format_to_n(…​,FMT_COMPILE(…​),…​)

574 ns

560 ns

244 ns

241 ns

215 ns

215 ns

5.fmt::format_to(…​, "…​", …​)

331 ns

328 ns

219 ns

204 ns

200 ns

199 ns

6.fmt::format_to_n(…​, "…​", …​)

360 ns

358 ns

227 ns

209 ns

210 ns

210 ns

7.std::sprintf

174 ns

86.2 ns

86.5 ns

  1. strf::to(dest, dest_size)("Blah ", strf::right(str, 40, '.'), "!\n")

  2. strf::to(dest, dest_size).tr("Blah {}!\n", strf::right(str, 40, '.'))

  3. fmt::format_to(dest, FMT_COMPILE("Blah {:.>40}!\n"), str)

  4. fmt::format_to_n(dest, dest_size, FMT_COMPILE("Blah {:.>40}!\n"), str)

  5. fmt::format_to(dest, "Blah {:.>40}!\n", str)

  6. fmt::format_to_n(dest, dest_size, "Blah {:.>40}!\n", str)

  7. std::sprintf(dest, "Blah %40s!\n", str.c_str())

using
    constexpr std::size_t dest_size = 110;
    char dest[dest_size];
    std::string str = "blah blah blah blah blah ";

Sample 3

Print integer without formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1.strf::to(…​)(…​)

24.9 ns

25.1 ns

14 ns

19.6 ns

23.7 ns

26.6 ns

2.strf::to(…​).tr(…​)

42.6 ns

49.8 ns

33.8 ns

34.4 ns

33.5 ns

31.4 ns

3.fmt::format_to(…​,FMT_COMPILE(…​),…​)

11.1 ns

11.4 ns

13.3 ns

13.5 ns

11.7 ns

12.2 ns

4.fmt::format_to_n(…​,FMT_COMPILE(…​),…​)

203 ns

203 ns

128 ns

127 ns

160 ns

160 ns

5.fmt::format_to(…​, "…​", …​)

73.8 ns

78.7 ns

45 ns

44.9 ns

46.2 ns

43.1 ns

6.fmt::format_to_n(…​, "…​", …​)

94.8 ns

96.3 ns

56.2 ns

52.7 ns

61.6 ns

57.9 ns

7.std::sprintf

159 ns

114 ns

114 ns

  1. strf::to(dest)("blah ", 123456, " blah ", 0x123456, " blah")

  2. strf::to(dest).tr("blah {} blah {} blah", 123456, 0x123456)

  3. fmt::format_to(dest, FMT_COMPILE("blah {} blah {} blah"), 123456, 0x123456)

  4. fmt::format_to_n(dest, dest_size, FMT_COMPILE("blah {} blah {} blah"), 123456, 0x123456)

  5. fmt::format_to(dest, "blah {} blah {} blah", 123456, 0x123456)

  6. fmt::format_to_n(dest, dest_size, "blah {} blah {} blah", 123456, 0x123456)

  7. std::sprintf(dest, "blah %d blah %d blah", 123456, 0x123456)

using
    constexpr std::size_t dest_size = 110;
    char dest[dest_size];

Sample 4

Print some formatted integers

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1.strf::to(…​)(…​)

42.3 ns

39.9 ns

16.3 ns

16.3 ns

24.1 ns

23.6 ns

2.strf::to(…​).tr(…​)

69.1 ns

66.8 ns

32.6 ns

33.2 ns

35.8 ns

34.7 ns

3.fmt::format_to(…​,FMT_COMPILE(…​),…​)

70.4 ns

69.9 ns

36.7 ns

37.1 ns

27.4 ns

28.9 ns

4.fmt::format_to_n(…​,FMT_COMPILE(…​),…​)

277 ns

279 ns

191 ns

192 ns

184 ns

183 ns

5.fmt::format_to(…​, "…​", …​)

134 ns

131 ns

93.8 ns

82.3 ns

104 ns

105 ns

6.fmt::format_to_n(…​, "…​", …​)

151 ns

150 ns

113 ns

87.2 ns

120 ns

113 ns

7.std::sprintf

164 ns

118 ns

118 ns

  1. strf::to(dest)("blah ", +strf::dec(123456), " blah ", *strf::hex(0x123456), " blah")

  2. strf::to(dest).tr("blah {} blah {} blah", +strf::dec(123456), *strf::hex(0x123456))

  3. fmt::format_to(dest, FMT_COMPILE("blah {:+} blah {:#x} blah"), 123456, 0x123456)

  4. fmt::format_to_n(dest, dest_size, FMT_COMPILE("blah {:+} blah {:#x} blah"), 123456, 0x123456)

  5. fmt::format_to(dest, "blah {:+} blah {:#x} blah", 123456, 0x123456)

  6. fmt::format_to_n(dest, dest_size, "blah {:+} blah {:#x} blah", 123456, 0x123456)

  7. std::sprintf(dest, "blah %+d blah %#x blah", 123456, 0x123456)

using
    constexpr std::size_t dest_size = 110;
    char dest[dest_size];

Sample 5

Print some formatted integers with alignment

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1.strf::to(…​)(…​)

68.7 ns

72.5 ns

22 ns

36.9 ns

46 ns

47.6 ns

2.strf::to(…​).tr(…​)

96.9 ns

111 ns

44.5 ns

59.4 ns

51.9 ns

52.7 ns

3.fmt::format_to(…​,FMT_COMPILE(…​),…​)

81.1 ns

80.8 ns

54.1 ns

53.7 ns

45.8 ns

56 ns

4.fmt::format_to_n(…​,FMT_COMPILE(…​),…​)

438 ns

438 ns

267 ns

268 ns

208 ns

208 ns

5.fmt::format_to(…​, "…​", …​)

204 ns

184 ns

137 ns

142 ns

156 ns

157 ns

6.fmt::format_to_n(…​, "…​", …​)

239 ns

219 ns

151 ns

150 ns

173 ns

172 ns

7.std::sprintf

322 ns

165 ns

160 ns

  1. strf::to(dest)("blah ", +strf::right(123456, 20, '_'), " blah ", *strf::hex(0x123456)<20, " blah")

  2. strf::to(dest).tr("blah {} blah {} blah", +strf::right(123456, 20, '_'), *strf::hex(0x123456)<20)

  3. fmt::format_to(dest, FMT_COMPILE("blah {:_>+20} blah {:<#20x} blah"), 123456, 0x123456)

  4. fmt::format_to_n(dest, dest_size, FMT_COMPILE("blah {:_>+20} blah {:<#20x} blah"), 123456, 0x123456)

  5. fmt::format_to(dest, "blah {:_>+20} blah {:<#20x} blah", 123456, 0x123456)

  6. fmt::format_to_n(dest, dest_size, "blah {:_>+20} blah {:<#20x} blah", 123456, 0x123456)

  7. std::sprintf(dest, "blah %+20d blah %#-20x blah", 123456, 0x123456)

using
    constexpr std::size_t dest_size = 110;
    char dest[dest_size];

Sample 6

Print floating-point values without any formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1.strf::to(…​)(…​)

148 ns

104 ns

62.6 ns

71.9 ns

84.5 ns

79.3 ns

2.strf::to(…​).tr(…​)

149 ns

121 ns

102 ns

86.4 ns

96.9 ns

90.4 ns

3.fmt::format_to(…​,FMT_COMPILE(…​),…​)

226 ns

228 ns

92.9 ns

92.2 ns

96.6 ns

96.6 ns

4.fmt::format_to_n(…​,FMT_COMPILE(…​),…​)

428 ns

433 ns

266 ns

264 ns

216 ns

219 ns

5.fmt::format_to(…​, "…​", …​)

319 ns

323 ns

171 ns

172 ns

155 ns

157 ns

6.fmt::format_to_n(…​, "…​", …​)

349 ns

346 ns

195 ns

177 ns

160 ns

173 ns

7.std::sprintf

894 ns

735 ns

740 ns

  1. strf::to(dest, dest_size)(1.123e+5, ' ', pi, ' ', 1.11e-222)

  2. strf::to(dest, dest_size).tr("{} {} {}", 1.123e+5, pi, 1.11e-222)

  3. fmt::format_to(dest, FMT_COMPILE("{} {} {}"), 1.123e+5, pi, 1.11e-222)

  4. fmt::format_to_n(dest, dest_size, FMT_COMPILE("{} {} {}"), 1.123e+5, pi, 1.11e-222)

  5. fmt::format_to(dest, "{} {} {}", 1.123e+5, pi, 1.11e-222)

  6. fmt::format_to_n(dest, dest_size, "{} {} {}", 1.123e+5, pi, 1.11e-222)

  7. std::sprintf(dest, "%g %g %g", 1.123e+5, pi, 1.11e-222)

Sample 7

Print floating-point values with some formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1.strf::to(…​)(…​)

160 ns

147 ns

125 ns

126 ns

133 ns

114 ns

2.strf::to(…​).tr(…​)

225 ns

228 ns

158 ns

151 ns

169 ns

135 ns

3.fmt::format_to(…​,FMT_COMPILE(…​),…​)

460 ns

469 ns

299 ns

314 ns

332 ns

333 ns

4.fmt::format_to_n(…​,FMT_COMPILE(…​),…​)

837 ns

827 ns

539 ns

530 ns

476 ns

483 ns

5.fmt::format_to(…​, "…​", …​)

626 ns

611 ns

509 ns

443 ns

456 ns

481 ns

6.fmt::format_to_n(…​, "…​", …​)

657 ns

645 ns

514 ns

449 ns

486 ns

501 ns

7.std::sprintf

1020 ns

861 ns

859 ns

  1. strf::to(dest, dest_size)(*fixed(1.123e+5), ' ', +fixed(pi, 8), ' ', sci(1.11e-222)>30)

  2. strf::to_string.tr("{} {} {}", *fixed(1.123e+5), +fixed(pi, 8), sci(1.11e-222)>30)

  3. fmt::format_to(dest, FMT_COMPILE("{:#f} {:+.8f} {:>30e}"), 1.123e+5, pi, 1.11e-222)

  4. fmt::format_to_n(dest, dest_size, FMT_COMPILE("{:#f} {:+.8f} {:>30e}"), 1.123e+5, pi, 1.11e-222)

  5. fmt::format_to(dest, "{:#f} {:+.8f} {:>30e}", 1.123e+5, pi, 1.11e-222)

  6. fmt::format_to_n(dest, dest_size, "{:#f} {:+.8f} {:>30e}", 1.123e+5, pi, 1.11e-222)

  7. std::sprintf(dest, "%#f %+.8f %30e", 1.123e+5, pi, 1.11e-222)

Writing to std::string

std::to_string versus strf::to_string versus fmt::format

Sample 1

Print an integer and nothing more.

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

19.6 ns

19.4 ns

2.87 ns

13.5 ns

12.9 ns

12.9 ns

2. strf::to_string.tr(…​)

31.8 ns

31.8 ns

16.8 ns

17.5 ns

18.4 ns

19.2 ns

3. fmt::format(FMT_COMPILE(…​), …​)

18.1 ns

18.2 ns

2.15 ns

2.15 ns

2.11 ns

2.11 ns

4. fmt::format("…​", …​)

29.3 ns

39.5 ns

21.3 ns

21 ns

11.6 ns

13.5 ns

5. std::to_string

15 ns

1.32 ns

9.91 ns

  1. strf::to_string (123456)

  2. strf::to_string .tr("{}", 123456)

  3. fmt::format(FMT_COMPILE("{}"), 123456)

  4. fmt::format("{}", 123456)

  5. std::to_string(123456)

Sample 2

Print a floting point value and nothing more.

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

52.8 ns

52.2 ns

24.2 ns

26.8 ns

29.2 ns

29.2 ns

2. strf::to_string.tr(…​)

64.5 ns

62.8 ns

34.2 ns

33.2 ns

35.6 ns

40.1 ns

3. fmt::format(FMT_COMPILE(…​), …​)

80.3 ns

79.7 ns

34.6 ns

34 ns

37.6 ns

47.9 ns

4. fmt::format("…​", …​)

93.7 ns

113 ns

54.3 ns

55 ns

43.4 ns

44.7 ns

5. std::to_string

445 ns

204 ns

212 ns

  1. strf::to_string (0.123456)

  2. strf::to_string .tr("{}", 0.123456)

  3. fmt::format(FMT_COMPILE("{}"), 0.123456)

  4. fmt::format("{}", 0.123456)

  5. std::to_string(0.123456)

Sample 3

Print a string

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

78.2 ns

82.8 ns

18.8 ns

21.9 ns

27.4 ns

27.4 ns

2. strf::to_string.tr(…​)

103 ns

104 ns

42 ns

43.7 ns

42.2 ns

42.5 ns

3. fmt::format(FMT_COMPILE(…​), …​)

153 ns

145 ns

83.5 ns

87.6 ns

69.2 ns

69.4 ns

4. fmt::format("…​", …​)

103 ns

119 ns

59 ns

64.1 ns

53 ns

54.4 ns

  1. strf::to_string ("Blah ", str, "!\n")

  2. strf::to_string .tr("Blah {}!\n", str)

  3. fmt::format(FMT_COMPILE("Blah {}!\n"), str)

  4. fmt::format("Blah {}!\n", str)

using
    std::string str = "blah blah blah blah blah ";

Sample 4

Print a string with alignment formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

157 ns

173 ns

56.4 ns

58.6 ns

101 ns

103 ns

2. strf::to_string.tr(…​)

173 ns

180 ns

76.7 ns

76.4 ns

105 ns

106 ns

3. fmt::format(FMT_COMPILE(…​), …​)

360 ns

369 ns

245 ns

237 ns

215 ns

212 ns

4. fmt::format("…​", …​)

426 ns

432 ns

242 ns

296 ns

226 ns

231 ns

  1. strf::to_string ("Blah ", strf::right(str, 40, '.'), "!\n")

  2. strf::to_string .tr("Blah {}!\n", strf::right(str, 40, '.')

  3. fmt::format(FMT_COMPILE("Blah {:.>40}!\n"), str)

  4. fmt::format("Blah {:.>40}!\n", str)

Sample 5

Print integers without formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

105 ns

94.7 ns

19.4 ns

30.6 ns

55.8 ns

58.5 ns

2. strf::to_string.tr(…​)

117 ns

117 ns

54.7 ns

54.3 ns

62.6 ns

57.7 ns

3. fmt::format(FMT_COMPILE(…​), …​)

106 ns

121 ns

71.1 ns

73.4 ns

96.1 ns

95.5 ns

4. fmt::format("…​", …​)

137 ns

158 ns

79.9 ns

84.8 ns

70.9 ns

75.2 ns

  1. strf::to_string ("blah ", 123456, " blah ", 0x123456, " blah")

  2. strf::to_string .tr("blah {} blah {} blah", 123456, 0x123456)

  3. fmt::format(FMT_COMPILE("blah {} blah {} blah"), 123456, 0x123456)

  4. fmt::format("blah {} blah {} blah", 123456, 0x123456)

Sample 6

Print integers with some basic formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

111 ns

109 ns

19.3 ns

21.2 ns

54.4 ns

62.9 ns

2. strf::to_string.tr(…​)

130 ns

123 ns

55.6 ns

57.8 ns

62.5 ns

54.6 ns

3. fmt::format(FMT_COMPILE(…​), …​)

147 ns

154 ns

133 ns

136 ns

116 ns

119 ns

4. fmt::format("…​", …​)

221 ns

230 ns

129 ns

129 ns

129 ns

125 ns

  1. strf::to_string("blah ", +strf::dec(123456), " blah ", *strf::hex(0x123456), " blah")

  2. strf::to_string.tr("blah {} blah {} blah", +strf::dec(123456), *strf::hex(0x123456))

  3. fmt::format(FMT_COMPILE("blah {:+} blah {:#x} blah"), 123456, 0x123456)

  4. fmt::format("blah {:+} blah {:#x} blah", 123456, 0x123456)

Sample 7

Print some formatted integers with alignment

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

149 ns

150 ns

32 ns

57.1 ns

73.1 ns

83.6 ns

2. strf::to_string.tr(…​)

162 ns

168 ns

72.1 ns

78.8 ns

78.2 ns

77.3 ns

3. fmt::format(FMT_COMPILE(…​), …​)

249 ns

260 ns

155 ns

153 ns

172 ns

170 ns

4. fmt::format("…​", …​)

274 ns

287 ns

182 ns

175 ns

180 ns

184 ns

  1. strf::to_string("blah ", +strf::right(123456, 20, '_'), " blah ", *strf::hex(0x123456)<20, " blah")

  2. strf::to_string.tr("blah {} blah {} blah", +strf::right(123456, 20, '_'), *strf::hex(0x123456)<20)

  3. fmt::format(FMT_COMPILE("blah {:_>+20} blah {:<#20x} blah"), 123456, 0x123456)

  4. fmt::format("blah {:_>+20} blah {:<#20x} blah", 123456, 0x123456)

Sample 8

Print floating-point values without formatting

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

219 ns

217 ns

107 ns

102 ns

88.9 ns

98.4 ns

2. strf::to_string.tr(…​)

239 ns

239 ns

126 ns

113 ns

111 ns

112 ns

3. fmt::format(FMT_COMPILE(…​), …​)

393 ns

402 ns

174 ns

188 ns

168 ns

179 ns

4. fmt::format("…​", …​)

391 ns

408 ns

216 ns

212 ns

177 ns

168 ns

  1. strf::to_string(1.123e+5, ' ', M_PI, ' ', 1.11e-222)

  2. strf::to_string.tr("{} {} {}", 1.123e+5, M_PI, 1.11e-222)

  3. fmt::format(FMT_COMPILE("{} {} {}"), 1.123e+5, M_PI, 1.11e-222)

  4. fmt::format("{} {} {}", 1.123e+5, M_PI, 1.11e-222)

Sample 9

Print floating-point values with some formatting options

VS/ho VS/s GCC/ho GCC/s Clang/ho Clang/s

1. strf::to_string(…​)

248 ns

244 ns

121 ns

148 ns

155 ns

155 ns

2. strf::to_string.tr(…​)

295 ns

293 ns

162 ns

167 ns

180 ns

176 ns

3. fmt::format(FMT_COMPILE(…​), …​)

692 ns

686 ns

425 ns

416 ns

450 ns

450 ns

4. fmt::format("…​", …​)

719 ns

723 ns

502 ns

509 ns

473 ns

488 ns

  1. strf::to_string(*fixed(1.123e+5), ' ', +fixed(M_PI, 8), ' ', sci(1.11e-222)>30)

  2. strf::to_string.tr("{} {} {}", *fixed(1.123e+5), +fixed(M_PI, 8), sci(1.11e-222)>30)

  3. fmt::format(FMT_COMPILE("{:#f} {:+.8f} {:>30e}"), 1.123e+5, M_PI, 1.11e-222)

  4. fmt::format("{:#f} {:+.8f} {:>30e}", 1.123e+5, M_PI, 1.11e-222)

Compilation performance

You can run these benchmarks in your computer by executing the commands below ( it does not work on Windows ).

git clone https://github.com/robhz786/strf-benchmarks
cd strf-benchmarks
git submodule update --init
cd compilation-benchmarks
export CXX=gcc              # or some other compiler
export CXXFLAGS=--std=c++2a # or some other compile flag ( optional )
./run_benchmarks.py         # this script takes a long time to run

For each row in the tables below, the source file in the leftmost column is compiled 41 times. In each compilation, a certain macro ( SRC_ID ) is defined with a different value, resulting in 41 different object files. The script then links four programs: The first one containing only one of such object files, the second containing 21, the the third with 31, and the last program with all the 41 object files.

The rightmost column is the difference between the values in the columns "31 files" and "41 files".

The comlumn "Compilation times" shows the average times to create one object file.

The flag --std=c++2a was used.

Clang 12.0.0

Static libs, with -Os

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

0.80

0.77

0.02

308.7

434.3

447.2

456.1

8.8

to_charptr_strf_tr.cpp

0.81

0.78

0.02

308.3

441.1

450.0

462.9

12.9

to_charptr_fmtlib_n_c.cpp

1.74

1.71

0.02

205.3

1019.3

1052.7

1086.1

33.4

to_charptr_fmtlib_n.cpp

1.51

1.48

0.03

127.3

145.0

153.8

166.7

12.9

to_charptr_fmtlib_c.cpp

1.31

1.28

0.02

171.2

624.1

645.3

670.5

25.2

to_charptr_fmtlib.cpp

1.51

1.48

0.02

126.6

148.4

161.3

174.2

12.9

to_charptr_sprintf.cpp

0.02

0.02

0.00

16.6

22.0

26.7

31.4

4.7

to_string_strf.cpp

0.90

0.87

0.02

314.5

458.7

472.8

490.9

18.1

to_string_strf_tr.cpp

0.90

0.87

0.02

313.6

461.0

479.1

501.3

22.2

to_string_fmtlib_c.cpp

1.47

1.44

0.03

185.7

777.0

803.1

837.3

34.3

to_string_fmtlib.cpp

0.48

0.46

0.02

123.8

143.2

152.9

166.7

13.8

to_FILE_strf.cpp

0.79

0.76

0.02

308.9

431.6

444.6

453.5

8.9

to_FILE_strf_tr.cpp

0.80

0.77

0.02

308.4

438.4

447.3

460.3

13.0

to_FILE_fmtlib.cpp

0.47

0.44

0.02

123.4

133.1

137.9

142.7

4.8

to_FILE_fprintf.cpp

0.02

0.02

0.00

16.6

22.1

22.9

27.7

4.8

to_ostream_strf.cpp

0.95

0.92

0.03

309.4

435.9

449.3

458.6

9.3

to_ostream_strf_tr.cpp

0.96

0.93

0.03

308.8

442.5

451.8

465.1

13.4

to_ostream_fmtlib.cpp

1.57

1.54

0.03

126.8

145.3

154.6

168.0

13.4

Header-only libs, with -Os

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

1.12

1.09

0.03

83.8

205.3

218.3

227.1

8.8

to_charptr_strf_tr.cpp

1.13

1.09

0.03

83.4

212.1

221.0

238.0

17.0

to_charptr_fmtlib_n_c.cpp

2.27

2.23

0.03

128.0

954.5

992.0

1033.6

41.6

to_charptr_fmtlib_n.cpp

1.95

1.91

0.03

115.7

149.8

166.8

183.8

17.0

to_charptr_fmtlib_c.cpp

1.85

1.81

0.03

89.8

559.3

584.6

618.0

33.4

to_charptr_fmtlib.cpp

1.94

1.90

0.03

115.0

153.2

170.2

187.2

17.0

to_string_strf.cpp

1.21

1.18

0.03

85.5

225.7

243.8

261.9

18.1

to_string_strf_tr.cpp

1.22

1.19

0.03

84.6

236.1

254.2

272.3

18.1

to_string_fmtlib_c.cpp

2.01

1.97

0.03

104.3

708.1

742.4

780.7

38.4

to_string_fmtlib.cpp

1.97

1.93

0.03

115.0

183.5

213.7

248.0

34.3

to_FILE_strf.cpp

1.12

1.09

0.02

84.0

202.6

215.6

224.6

8.9

to_FILE_strf_tr.cpp

1.13

1.10

0.03

83.5

213.4

222.4

235.4

13.0

to_FILE_fmtlib.cpp

1.96

1.92

0.03

119.6

153.8

170.9

179.8

8.9

to_ostream_strf.cpp

1.28

1.24

0.03

84.5

206.9

220.3

229.6

9.3

to_ostream_strf_tr.cpp

1.29

1.25

0.03

83.9

217.6

226.9

240.2

13.4

to_ostream_fmtlib.cpp

1.95

1.92

0.03

115.2

150.1

163.5

176.9

13.4

Static libs, with -O3

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

0.86

0.83

0.02

420.2

603.3

616.2

629.1

12.9

to_charptr_strf_tr.cpp

0.85

0.82

0.02

420.0

595.7

608.6

621.6

12.9

to_charptr_fmtlib_n_c.cpp

2.07

2.04

0.02

234.6

1284.3

1321.8

1359.3

37.5

to_charptr_fmtlib_n.cpp

2.01

1.97

0.03

152.9

170.6

179.4

196.4

17.0

to_charptr_fmtlib_c.cpp

1.75

1.71

0.03

200.3

991.3

1016.5

1041.7

25.2

to_charptr_fmtlib.cpp

1.98

1.94

0.03

152.5

174.2

183.0

196.0

12.9

to_charptr_sprintf.cpp

0.02

0.02

0.00

16.6

22.0

26.7

31.4

4.7

to_string_strf.cpp

0.94

0.90

0.03

426.7

584.3

606.5

624.6

18.1

to_string_strf_tr.cpp

0.94

0.91

0.03

421.5

596.2

618.4

640.6

22.2

to_string_fmtlib_c.cpp

1.76

1.73

0.03

212.7

1042.1

1076.4

1110.7

34.3

to_string_fmtlib.cpp

0.49

0.46

0.02

141.5

165.0

170.6

180.3

9.7

to_FILE_strf.cpp

0.83

0.80

0.02

421.2

575.6

584.6

601.7

17.1

to_FILE_strf_tr.cpp

0.85

0.83

0.02

420.7

603.3

616.3

625.2

8.9

to_FILE_fmtlib.cpp

0.47

0.45

0.02

141.1

146.7

155.6

160.4

4.8

to_FILE_fprintf.cpp

0.02

0.02

0.00

16.6

22.1

22.9

27.7

4.8

to_ostream_strf.cpp

1.01

0.98

0.03

420.7

604.0

613.3

626.6

13.4

to_ostream_strf_tr.cpp

1.01

0.98

0.03

420.3

600.3

613.7

627.1

13.4

to_ostream_fmtlib.cpp

2.07

2.03

0.03

153.2

221.4

230.7

240.0

9.3

Header-only libs, with -O3

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

1.32

1.29

0.02

86.5

286.6

295.4

312.5

17.0

to_charptr_strf_tr.cpp

1.30

1.28

0.02

91.1

270.8

279.7

292.6

12.9

to_charptr_fmtlib_n_c.cpp

2.74

2.70

0.03

137.6

1207.9

1249.5

1295.2

45.7

to_charptr_fmtlib_n.cpp

2.61

2.58

0.03

135.9

169.9

182.8

199.9

17.0

to_charptr_fmtlib_c.cpp

2.42

2.38

0.03

107.4

914.9

944.2

977.6

33.4

to_charptr_fmtlib.cpp

2.58

2.55

0.03

131.3

169.5

186.5

203.5

17.0

to_string_strf.cpp

1.39

1.35

0.03

93.6

262.2

284.4

302.5

18.1

to_string_strf_tr.cpp

1.40

1.36

0.03

92.5

269.4

291.6

313.8

22.2

to_string_fmtlib_c.cpp

2.43

2.39

0.03

123.9

961.7

1000.0

1042.5

42.5

to_string_fmtlib.cpp

2.62

2.58

0.03

131.3

199.8

230.0

264.3

34.3

to_FILE_strf.cpp

1.29

1.25

0.03

92.3

248.5

257.4

274.5

17.1

to_FILE_strf_tr.cpp

1.31

1.28

0.03

91.8

278.4

287.3

300.4

13.0

to_FILE_fmtlib.cpp

2.60

2.56

0.03

135.9

170.1

183.1

200.2

17.1

to_ostream_strf.cpp

1.48

1.44

0.03

86.9

283.8

293.1

306.5

13.4

to_ostream_strf_tr.cpp

1.47

1.43

0.03

87.3

271.4

284.8

298.2

13.4

to_ostream_fmtlib.cpp

2.61

2.57

0.03

132.1

212.6

230.1

247.6

17.5

Static libs, with -g

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

0.72

0.69

0.03

1605.1

4885.4

6389.2

7889.0

1499.8

to_charptr_strf_tr.cpp

0.73

0.70

0.03

1631.8

5394.0

6969.9

8541.6

1571.7

to_charptr_fmtlib_n_c.cpp

0.91

0.87

0.03

1220.7

7862.4

9878.2

11878.1

1999.9

to_charptr_fmtlib_n.cpp

0.90

0.87

0.03

945.8

5084.6

7057.9

9035.4

1977.5

to_charptr_fmtlib_c.cpp

0.85

0.81

0.03

1099.1

6663.7

8545.9

10412.4

1866.6

to_charptr_fmtlib.cpp

0.90

0.87

0.03

943.2

5038.6

6989.8

8945.0

1955.3

to_charptr_sprintf.cpp

0.02

0.01

0.00

29.8

180.0

253.0

326.1

73.1

to_string_strf.cpp

0.80

0.76

0.03

1666.7

5215.8

6843.7

8479.9

1636.2

to_string_strf_tr.cpp

0.80

0.77

0.03

1687.6

5691.9

7380.7

9065.3

1684.6

to_string_fmtlib_c.cpp

0.87

0.84

0.03

1176.8

7152.2

9093.8

11023.8

1930.0

to_string_fmtlib.cpp

0.47

0.45

0.02

814.2

1941.5

2409.2

2880.9

471.7

to_FILE_strf.cpp

0.72

0.69

0.03

1605.4

4880.4

6374.5

7876.8

1502.3

to_FILE_strf_tr.cpp

0.73

0.70

0.03

1632.1

5392.6

6962.6

8532.5

1569.9

to_FILE_fmtlib.cpp

0.47

0.45

0.01

781.3

1661.8

2008.4

2359.1

350.7

to_FILE_fprintf.cpp

0.02

0.01

0.00

29.6

173.3

241.1

313.0

71.9

to_ostream_strf.cpp

0.88

0.85

0.03

1617.9

4921.4

6430.7

7940.1

1509.4

to_ostream_strf_tr.cpp

0.89

0.85

0.03

1644.9

5441.4

7022.5

8603.6

1581.1

to_ostream_fmtlib.cpp

0.98

0.94

0.03

952.4

5044.6

6995.0

8937.1

1942.2

Header-only libs, with -g

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

0.83

0.80

0.03

837.2

5112.6

7109.7

9111.3

2001.6

to_charptr_strf_tr.cpp

0.84

0.80

0.03

864.0

5618.1

7695.9

9765.7

2069.8

to_charptr_fmtlib_n_c.cpp

1.26

1.21

0.04

717.9

8263.7

10725.4

13175.4

2450.0

to_charptr_fmtlib_n.cpp

1.14

1.09

0.04

689.5

5727.3

8152.2

10577.1

2424.9

to_charptr_fmtlib_c.cpp

1.20

1.15

0.04

600.5

7062.3

9395.0

11708.1

2313.1

to_charptr_fmtlib.cpp

1.13

1.09

0.04

682.8

5681.3

8084.0

10486.7

2402.7

to_string_strf.cpp

0.91

0.87

0.04

903.0

5444.5

7574.6

9705.1

2130.5

to_string_strf_tr.cpp

0.91

0.88

0.03

920.3

5936.2

8120.2

10312.6

2192.4

to_string_fmtlib_c.cpp

1.22

1.18

0.04

683.1

7543.2

9931.2

12307.7

2376.5

to_string_fmtlib.cpp

1.14

1.09

0.04

709.8

5727.5

8142.3

10557.2

2414.8

to_FILE_strf.cpp

0.83

0.80

0.03

833.4

5108.1

7103.9

9096.0

1992.1

to_FILE_strf_tr.cpp

0.84

0.80

0.03

864.4

5617.3

7685.4

9757.8

2072.4

to_FILE_fmtlib.cpp

1.14

1.10

0.04

694.4

5747.9

8181.0

10614.1

2433.1

to_ostream_strf.cpp

0.99

0.96

0.03

845.9

5149.1

7156.1

9163.5

2007.4

to_ostream_strf_tr.cpp

1.00

0.96

0.03

877.0

5666.3

7745.5

9829.1

2083.6

to_ostream_fmtlib.cpp

1.14

1.10

0.03

691.6

5683.2

8072.9

10462.6

2389.8

GCC 11.1.0

Static libs, with -Os

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

0.94

0.89

0.05

300.5

446.1

476.4

502.7

26.3

to_charptr_strf_tr.cpp

0.94

0.89

0.05

299.5

393.2

435.8

478.5

42.7

to_charptr_fmtlib_n_c.cpp

1.64

1.57

0.06

190.5

1002.6

1045.7

1092.9

47.2

to_charptr_fmtlib_n.cpp

1.58

1.52

0.05

122.6

167.9

188.5

209.1

20.6

to_charptr_fmtlib_c.cpp

1.38

1.32

0.06

152.1

559.4

622.8

731.5

108.7

to_charptr_fmtlib.cpp

1.57

1.51

0.06

122.2

163.4

184.0

208.8

24.7

to_charptr_sprintf.cpp

0.03

0.02

0.00

16.6

21.9

26.7

31.4

4.7

to_string_strf.cpp

0.98

0.92

0.05

300.4

412.3

464.1

511.9

47.8

to_string_strf_tr.cpp

0.99

0.93

0.06

300.5

399.8

447.5

499.4

51.9

to_string_fmtlib_c.cpp

1.49

1.43

0.05

165.4

659.4

690.7

726.1

35.4

to_string_fmtlib.cpp

0.38

0.35

0.02

116.1

135.3

144.8

154.4

9.6

to_FILE_strf.cpp

0.94

0.89

0.05

300.3

436.1

462.4

488.7

26.4

to_FILE_strf_tr.cpp

0.95

0.89

0.05

299.2

384.4

427.2

465.9

38.7

to_FILE_fmtlib.cpp

0.36

0.32

0.03

115.9

125.5

130.4

135.2

4.8

to_FILE_fprintf.cpp

0.02

0.02

0.00

16.6

22.1

26.9

27.7

0.7

to_ostream_strf.cpp

0.97

0.91

0.05

300.7

448.4

474.6

500.9

26.3

to_ostream_strf_tr.cpp

0.97

0.91

0.05

295.6

384.8

427.4

466.1

38.6

to_ostream_fmtlib.cpp

1.54

1.49

0.05

122.4

163.2

183.6

204.0

20.4

Header-only libs, with -Os

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

1.35

1.29

0.06

79.8

283.9

337.2

390.6

53.4

to_charptr_strf_tr.cpp

1.35

1.29

0.06

74.6

226.8

300.8

370.7

69.9

to_charptr_fmtlib_n_c.cpp

2.28

2.20

0.07

116.9

950.3

1006.1

1062.0

55.9

to_charptr_fmtlib_n.cpp

2.21

2.13

0.07

109.0

197.6

244.0

290.4

46.4

to_charptr_fmtlib_c.cpp

2.02

1.95

0.07

82.6

511.2

587.4

704.8

117.4

to_charptr_fmtlib.cpp

2.20

2.13

0.07

108.6

197.3

239.6

281.9

42.3

to_string_strf.cpp

1.39

1.33

0.05

79.6

246.0

325.0

404.1

79.1

to_string_strf_tr.cpp

1.40

1.33

0.06

79.7

237.5

312.5

391.6

79.1

to_string_fmtlib_c.cpp

2.13

2.05

0.07

96.1

615.4

659.5

707.7

48.2

to_string_fmtlib.cpp

2.22

2.14

0.07

112.7

211.1

262.3

309.5

47.2

to_FILE_strf.cpp

1.35

1.29

0.06

79.5

273.9

327.3

380.8

53.5

to_FILE_strf_tr.cpp

1.35

1.29

0.05

74.4

218.1

288.0

358.1

70.0

to_FILE_fmtlib.cpp

2.25

2.17

0.08

114.0

202.8

245.2

291.7

46.5

to_ostream_strf.cpp

1.38

1.32

0.06

79.9

286.2

339.5

392.9

53.4

to_ostream_strf_tr.cpp

1.39

1.32

0.06

74.8

218.4

288.3

358.2

69.9

to_ostream_fmtlib.cpp

2.18

2.11

0.07

108.7

197.5

239.8

286.2

46.4

Static libs, with -O3

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

1.04

0.98

0.05

401.5

561.8

632.3

690.5

58.2

to_charptr_strf_tr.cpp

1.04

0.98

0.05

406.7

556.3

631.2

706.0

74.8

to_charptr_fmtlib_n_c.cpp

2.35

2.29

0.06

238.5

1414.3

1518.5

1622.5

104.0

to_charptr_fmtlib_n.cpp

2.23

2.16

0.06

153.4

167.9

181.3

186.6

5.2

to_charptr_fmtlib_c.cpp

2.08

2.01

0.06

206.8

1054.1

1158.0

1364.6

206.6

to_charptr_fmtlib.cpp

2.21

2.15

0.06

148.9

171.6

180.9

194.3

13.4

to_charptr_sprintf.cpp

0.03

0.02

0.00

16.6

21.9

26.7

31.4

4.7

to_string_strf.cpp

1.12

1.06

0.05

406.3

607.6

708.2

808.9

100.7

to_string_strf_tr.cpp

1.10

1.03

0.06

407.7

581.3

662.0

750.9

88.9

to_string_fmtlib_c.cpp

2.13

2.07

0.05

217.0

1180.5

1236.1

1287.6

51.5

to_string_fmtlib.cpp

0.40

0.37

0.03

147.3

188.4

207.0

229.6

22.6

to_FILE_strf.cpp

1.06

1.00

0.05

405.6

579.0

653.7

712.0

58.3

to_FILE_strf_tr.cpp

1.05

0.99

0.05

406.7

552.5

627.4

698.2

70.8

to_FILE_fmtlib.cpp

0.36

0.33

0.03

143.0

152.7

157.5

162.3

4.8

to_FILE_fprintf.cpp

0.03

0.02

0.00

16.6

22.1

26.9

27.7

0.7

to_ostream_strf.cpp

1.09

1.03

0.06

406.0

579.0

653.6

711.8

58.2

to_ostream_strf_tr.cpp

1.09

1.03

0.05

407.1

560.9

639.9

718.8

79.0

to_ostream_fmtlib.cpp

2.18

2.11

0.06

153.5

168.0

177.3

186.7

9.3

Header-only libs, with -O3

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

1.96

1.89

0.06

104.4

572.1

761.9

943.4

181.5

to_charptr_strf_tr.cpp

1.80

1.73

0.06

97.1

394.7

547.6

692.3

144.7

to_charptr_fmtlib_n_c.cpp

3.20

3.11

0.08

142.4

1351.3

1468.1

1580.7

112.7

to_charptr_fmtlib_n.cpp

3.01

2.93

0.08

132.1

180.3

206.5

228.6

22.1

to_charptr_fmtlib_c.cpp

2.66

2.58

0.08

107.9

881.0

1006.3

1214.2

207.9

to_charptr_fmtlib.cpp

2.97

2.89

0.08

131.8

180.1

206.3

232.4

26.2

to_string_strf.cpp

1.96

1.89

0.06

109.9

602.0

818.2

1075.6

257.4

to_string_strf_tr.cpp

1.80

1.73

0.06

98.2

419.7

574.3

737.2

162.8

to_string_fmtlib_c.cpp

2.87

2.79

0.07

117.6

1073.1

1141.5

1205.8

64.3

to_string_fmtlib.cpp

3.01

2.92

0.08

131.4

203.5

239.6

279.8

40.2

to_FILE_strf.cpp

1.99

1.92

0.06

108.5

569.0

758.9

932.3

173.4

to_FILE_strf_tr.cpp

1.84

1.77

0.06

101.2

394.9

543.8

688.6

144.8

to_FILE_fmtlib.cpp

3.05

2.96

0.08

136.6

211.1

250.4

289.8

39.3

to_ostream_strf.cpp

2.03

1.96

0.06

104.8

539.5

717.0

882.2

165.2

to_ostream_strf_tr.cpp

1.90

1.82

0.07

101.6

403.4

560.4

709.2

148.8

to_ostream_fmtlib.cpp

2.96

2.87

0.07

135.9

180.1

202.2

228.4

26.2

Static libs, with -g

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

1.05

0.98

0.06

1723.1

5973.4

7969.7

9970.2

2000.6

to_charptr_strf_tr.cpp

1.06

0.98

0.06

1749.7

6475.8

8559.0

10642.3

2083.3

to_charptr_fmtlib_n_c.cpp

1.17

1.10

0.07

1314.6

7952.8

10208.0

12453.3

2245.3

to_charptr_fmtlib_n.cpp

1.22

1.15

0.06

1072.3

5720.3

7965.3

10210.4

2245.1

to_charptr_fmtlib_c.cpp

1.10

1.03

0.06

1220.0

7159.4

9290.3

11403.2

2112.9

to_charptr_fmtlib.cpp

1.21

1.15

0.06

1069.9

5690.4

7923.2

10156.1

2232.9

to_charptr_sprintf.cpp

0.03

0.02

0.00

31.5

196.1

274.3

352.6

78.2

to_string_strf.cpp

1.09

1.02

0.06

1841.1

6725.8

9044.6

11363.5

2319.0

to_string_strf_tr.cpp

1.10

1.03

0.06

1865.1

7180.1

9554.9

11925.6

2370.8

to_string_fmtlib_c.cpp

1.13

1.06

0.06

1315.6

7599.0

9788.0

11967.7

2179.6

to_string_fmtlib.cpp

0.43

0.39

0.03

933.8

2303.5

2909.7

3511.8

602.2

to_FILE_strf.cpp

1.05

0.98

0.06

1723.2

5967.1

7955.1

9947.4

1992.3

to_FILE_strf_tr.cpp

1.06

0.99

0.06

1749.9

6469.3

8544.1

10623.2

2079.0

to_FILE_fmtlib.cpp

0.41

0.37

0.03

878.1

1802.0

2187.3

2568.5

381.2

to_FILE_fprintf.cpp

0.03

0.03

0.00

31.4

188.7

265.4

346.1

80.7

to_ostream_strf.cpp

1.07

1.01

0.06

1736.5

5992.0

7991.6

9987.2

1995.7

to_ostream_strf_tr.cpp

1.08

1.01

0.06

1763.4

6504.4

8586.4

10668.6

2082.2

to_ostream_fmtlib.cpp

1.18

1.12

0.05

1084.4

5755.5

7991.9

10224.3

2232.4

Header-only libs, with -g

Source file

Compilation times (s)

Programs size (kB)

Wall

User

Sys

1 file

21 files

31 files

41 files

Difference

to_charptr_strf.cpp

1.22

1.15

0.06

878.2

6281.6

8858.6

11431.6

2573.0

to_charptr_strf_tr.cpp

1.23

1.15

0.07

908.8

6787.9

9443.6

12103.4

2659.8

to_charptr_fmtlib_n_c.cpp

1.65

1.56

0.08

757.7

8541.6

11369.7

14183.8

2814.1

to_charptr_fmtlib_n.cpp

1.63

1.55

0.08

755.8

6518.1

9316.2

12122.5

2806.3

to_charptr_fmtlib_c.cpp

1.58

1.49

0.08

667.1

7748.4

10448.2

13138.2

2690.0

to_charptr_fmtlib.cpp

1.63

1.54

0.08

753.4

6487.9

9273.7

12063.6

2789.9

to_string_strf.cpp

1.27

1.19

0.07

1003.2

7041.7

9933.3

12825.1

2891.8

to_string_strf_tr.cpp

1.28

1.20

0.07

1023.0

7495.6

10439.0

13386.6

2947.6

to_string_fmtlib_c.cpp

1.61

1.52

0.08

768.5

8182.0

10938.1

13680.7

2742.6

to_string_fmtlib.cpp

1.64

1.55

0.08

790.2

6581.1

9393.8

12214.8

2821.0

to_FILE_strf.cpp

1.22

1.15

0.07

878.3

6276.3

8841.4

11410.7

2569.4

to_FILE_strf_tr.cpp

1.23

1.16

0.07

905.0

6778.3

9434.3

12082.1

2647.8

to_FILE_fmtlib.cpp

1.66

1.57

0.08

780.8

6714.7

9600.9

12487.2

2886.2

to_ostream_strf.cpp

1.26

1.18

0.07

891.7

6302.4

8875.5

11452.8

2577.4

to_ostream_strf_tr.cpp

1.27

1.19

0.07

918.5

6814.5

9474.1

12133.8

2659.7

to_ostream_fmtlib.cpp

1.61

1.52

0.08

764.6

6532.0

9310.4

12088.9

2778.5