Runtime performance

Environments
Label Library type Compiler OS

VS/ho

header-only

Visual Studio 17 2022

Windows 10

VS/s

static

GCC/ho

header-only

GCC 13.1.0

Ubuntu 20.04

GCC/s

static

Clang/ho

header-only

Clang 17.0.3

Clang/s

static

The benchmarks programs were all run in the same computer and compiled in C++20. The {fmt} version is 10.2.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(…​)(…​)

4.98 ns

4.5 ns

8.66 ns

8.93 ns

13.7 ns

13 ns

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

18.2 ns

18.1 ns

17.1 ns

18.1 ns

15.8 ns

15.1 ns

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

5.49 ns

5.19 ns

10.7 ns

10.9 ns

9.66 ns

9.16 ns

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

33 ns

32.7 ns

37.6 ns

38.5 ns

35.2 ns

34.6 ns

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

26.4 ns

33.1 ns

24.1 ns

23 ns

17.6 ns

17.5 ns

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

36.3 ns

32.6 ns

24.3 ns

24.5 ns

18.1 ns

17.9 ns

7.std::sprintf

56.9 ns

37.4 ns

36 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(…​)(…​)

65.5 ns

62.2 ns

37.6 ns

46.6 ns

56.5 ns

45.9 ns

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

77.1 ns

74.8 ns

51.4 ns

59.8 ns

64.4 ns

53.5 ns

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

193 ns

212 ns

119 ns

174 ns

191 ns

185 ns

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

280 ns

322 ns

184 ns

266 ns

229 ns

225 ns

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

256 ns

254 ns

160 ns

176 ns

218 ns

213 ns

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

266 ns

264 ns

160 ns

176 ns

217 ns

214 ns

7.std::sprintf

113 ns

49.7 ns

47.7 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(…​)(…​)

20.2 ns

12.4 ns

9.98 ns

14.2 ns

15.9 ns

23 ns

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

37.5 ns

36 ns

26.8 ns

29.4 ns

25.6 ns

26.6 ns

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

8.2 ns

8.42 ns

11.3 ns

11.2 ns

13.2 ns

12.9 ns

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

60 ns

68.9 ns

35.1 ns

35.7 ns

34.9 ns

34.5 ns

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

48.5 ns

57.1 ns

36.6 ns

36.7 ns

31.3 ns

30.7 ns

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

59.2 ns

54.5 ns

37.1 ns

37.5 ns

31.8 ns

31 ns

7.std::sprintf

117 ns

65.5 ns

64.1 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(…​)(…​)

40.1 ns

37.9 ns

9.06 ns

12.7 ns

22.7 ns

19.4 ns

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

67.5 ns

65.5 ns

26.7 ns

28.2 ns

26.1 ns

25.7 ns

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

58.4 ns

63.3 ns

25.9 ns

27.2 ns

22.7 ns

20.9 ns

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

104 ns

106 ns

55.5 ns

57.8 ns

41.8 ns

41.6 ns

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

84.3 ns

93.3 ns

63.3 ns

59.2 ns

60.9 ns

58.6 ns

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

95.6 ns

89.5 ns

63.2 ns

60.1 ns

60.5 ns

58.9 ns

7.std::sprintf

124 ns

73 ns

72.1 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(…​)(…​)

85.7 ns

87.1 ns

30.8 ns

39.9 ns

34.8 ns

34.3 ns

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

111 ns

113 ns

54.5 ns

55.3 ns

41.4 ns

44.8 ns

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

66.8 ns

69.8 ns

37.6 ns

38.1 ns

35.7 ns

37.3 ns

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

165 ns

164 ns

89 ns

106 ns

87.2 ns

86.2 ns

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

158 ns

166 ns

107 ns

107 ns

100 ns

99.6 ns

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

167 ns

162 ns

108 ns

112 ns

101 ns

99.9 ns

7.std::sprintf

230 ns

100 ns

98.9 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(…​)(…​)

88.2 ns

89.1 ns

49.7 ns

53.2 ns

54.6 ns

52.2 ns

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

94.4 ns

96.4 ns

56.4 ns

74.3 ns

62.8 ns

60.5 ns

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

128 ns

127 ns

62.7 ns

65.9 ns

71.1 ns

72.2 ns

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

181 ns

181 ns

111 ns

126 ns

126 ns

125 ns

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

195 ns

195 ns

123 ns

124 ns

114 ns

112 ns

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

199 ns

198 ns

125 ns

123 ns

116 ns

112 ns

7.std::sprintf

584 ns

439 ns

431 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(…​)(…​)

133 ns

132 ns

83.6 ns

110 ns

73.3 ns

71 ns

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

161 ns

154 ns

106 ns

140 ns

94.5 ns

92.5 ns

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

199 ns

212 ns

113 ns

142 ns

118 ns

116 ns

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

285 ns

298 ns

197 ns

224 ns

192 ns

188 ns

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

312 ns

329 ns

210 ns

216 ns

213 ns

206 ns

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

314 ns

331 ns

212 ns

216 ns

213 ns

206 ns

7.std::sprintf

671 ns

531 ns

517 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(…​)

12.4 ns

13.8 ns

4.6 ns

8.06 ns

6.69 ns

7.55 ns

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

30.7 ns

31.6 ns

13 ns

13.5 ns

11.6 ns

12.1 ns

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

14.6 ns

14.3 ns

2.27 ns

2.37 ns

0.678 ns

0.679 ns

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

34 ns

33.9 ns

18.6 ns

17.9 ns

7.52 ns

8.62 ns

5. std::to_string

11.7 ns

0.912 ns

6.75 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(…​)

34.1 ns

33.8 ns

16 ns

17.9 ns

19 ns

19.1 ns

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

42.2 ns

42.5 ns

21 ns

27.5 ns

26.2 ns

26.1 ns

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

46.2 ns

45.6 ns

26.5 ns

25.8 ns

31 ns

31.3 ns

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

59.2 ns

58.6 ns

40.3 ns

39.6 ns

29.2 ns

31.7 ns

5. std::to_string

310 ns

123 ns

134 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(…​)

40.5 ns

38.9 ns

15.5 ns

18.8 ns

25.3 ns

25.8 ns

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

56 ns

53.3 ns

30.6 ns

30.8 ns

28.8 ns

28.9 ns

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

77.7 ns

78.7 ns

38.4 ns

41 ns

33.4 ns

33.5 ns

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

69.7 ns

70.7 ns

36.6 ns

38.3 ns

28.9 ns

30.2 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(…​)

104 ns

110 ns

58.4 ns

61 ns

64.5 ns

64.7 ns

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

113 ns

121 ns

72.2 ns

73.3 ns

65.1 ns

67.4 ns

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

253 ns

246 ns

164 ns

222 ns

217 ns

226 ns

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

291 ns

294 ns

175 ns

190 ns

236 ns

245 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(…​)

84 ns

105 ns

22.4 ns

27.7 ns

32.6 ns

34.4 ns

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

103 ns

123 ns

40.9 ns

42.4 ns

38.9 ns

42.3 ns

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

91.8 ns

108 ns

26.4 ns

35.8 ns

58.9 ns

62.2 ns

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

119 ns

138 ns

49.2 ns

52.7 ns

42.3 ns

44.5 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(…​)

96.3 ns

118 ns

19.9 ns

21.3 ns

31.9 ns

32.5 ns

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

114 ns

134 ns

41.7 ns

40.6 ns

37.9 ns

41.7 ns

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

126 ns

137 ns

70.7 ns

77.5 ns

68.5 ns

63.7 ns

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

160 ns

181 ns

77.3 ns

82 ns

70.6 ns

69.9 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(…​)

211 ns

188 ns

40.8 ns

43.4 ns

45.5 ns

49.8 ns

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

239 ns

209 ns

60.4 ns

62 ns

52.4 ns

56.5 ns

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

278 ns

273 ns

84.6 ns

93 ns

85.8 ns

91 ns

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

318 ns

283 ns

120 ns

124 ns

112 ns

118 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(…​)

128 ns

129 ns

63.3 ns

69.4 ns

64.3 ns

65 ns

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

140 ns

141 ns

72.2 ns

86.7 ns

72.1 ns

71.7 ns

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

235 ns

259 ns

106 ns

106 ns

106 ns

107 ns

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

242 ns

238 ns

135 ns

139 ns

123 ns

127 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(…​)

287 ns

250 ns

94.4 ns

113 ns

87.2 ns

92.1 ns

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

309 ns

284 ns

124 ns

148 ns

108 ns

108 ns

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

433 ns

432 ns

182 ns

193 ns

171 ns

170 ns

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

491 ns

473 ns

242 ns

235 ns

220 ns

220 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 17.0.3

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

1.26

1.20

0.05

312.6

478.8

491.7

504.6

12.9

to_charptr_strf_tr.cpp

1.27

1.22

0.05

327.8

575.9

584.7

601.8

17.0

to_charptr_fmtlib_n_c.cpp

1.75

1.70

0.04

217.0

868.6

893.8

927.2

33.4

to_charptr_fmtlib_n.cpp

0.68

0.64

0.03

140.7

154.3

159.0

163.7

4.7

to_charptr_fmtlib_c.cpp

1.60

1.55

0.04

192.8

672.8

694.0

719.2

25.2

to_charptr_fmtlib.cpp

0.67

0.64

0.03

140.4

158.0

162.7

171.6

8.8

to_charptr_sprintf.cpp

0.02

0.01

0.00

16.8

22.2

26.9

31.6

4.7

to_string_strf.cpp

1.29

1.23

0.05

314.6

502.6

524.9

543.0

18.1

to_string_strf_tr.cpp

1.29

1.23

0.05

334.3

611.1

629.3

651.5

22.2

to_string_fmtlib_c.cpp

1.71

1.66

0.04

203.5

798.0

824.1

858.4

34.3

to_string_fmtlib.cpp

0.61

0.57

0.03

140.3

159.7

169.4

183.2

13.8

to_FILE_strf.cpp

1.27

1.21

0.05

314.0

486.1

499.1

512.1

13.0

to_FILE_strf_tr.cpp

1.27

1.22

0.05

329.5

596.1

609.1

622.1

13.0

to_FILE_fmtlib.cpp

0.59

0.55

0.03

140.0

145.5

154.4

159.2

4.8

to_FILE_fprintf.cpp

0.01

0.01

0.00

16.8

22.3

23.1

27.9

4.8

to_ostream_strf.cpp

1.26

1.20

0.05

313.4

481.9

491.2

504.6

13.4

to_ostream_strf_tr.cpp

1.27

1.22

0.05

328.6

575.5

593.0

602.3

9.3

to_ostream_fmtlib.cpp

0.88

0.83

0.04

140.5

146.8

156.1

161.2

5.2

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.71

1.65

0.05

102.5

268.7

281.6

294.6

12.9

to_charptr_strf_tr.cpp

1.71

1.65

0.05

122.0

370.1

378.9

391.8

12.9

to_charptr_fmtlib_n_c.cpp

2.08

2.03

0.04

129.3

780.9

810.2

839.5

29.3

to_charptr_fmtlib_n.cpp

2.07

2.02

0.04

138.7

152.2

161.0

165.8

4.7

to_charptr_fmtlib_c.cpp

1.94

1.89

0.04

109.1

581.0

610.3

627.3

17.0

to_charptr_fmtlib.cpp

2.06

2.01

0.04

138.2

155.9

164.7

173.6

8.8

to_string_strf.cpp

1.74

1.68

0.05

108.7

297.1

319.3

337.5

18.1

to_string_strf_tr.cpp

1.73

1.67

0.06

124.4

405.6

423.8

441.9

18.1

to_string_fmtlib_c.cpp

2.04

1.99

0.04

119.8

714.4

740.4

770.6

30.2

to_string_fmtlib.cpp

2.06

2.01

0.04

138.3

174.1

187.9

205.8

17.9

to_FILE_strf.cpp

1.71

1.66

0.05

108.0

280.6

289.5

302.5

13.0

to_FILE_strf_tr.cpp

1.74

1.67

0.05

123.7

386.5

399.5

412.6

13.0

to_FILE_fmtlib.cpp

2.07

2.02

0.05

138.8

152.5

157.3

162.2

4.8

to_ostream_strf.cpp

1.71

1.66

0.05

103.4

272.2

285.6

294.9

9.3

to_ostream_strf_tr.cpp

1.70

1.64

0.05

122.8

370.0

383.4

396.8

13.4

to_ostream_fmtlib.cpp

2.13

2.08

0.04

138.4

148.8

158.1

163.2

5.2

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.29

1.24

0.05

374.6

596.0

608.9

625.9

17.0

to_charptr_strf_tr.cpp

1.27

1.21

0.05

380.9

587.1

608.2

625.2

17.0

to_charptr_fmtlib_n_c.cpp

2.42

2.37

0.04

248.8

1293.7

1318.9

1352.3

33.4

to_charptr_fmtlib_n.cpp

0.67

0.64

0.03

161.1

187.0

199.9

212.8

12.9

to_charptr_fmtlib_c.cpp

2.12

2.08

0.04

226.1

999.9

1025.1

1046.2

21.1

to_charptr_fmtlib.cpp

0.67

0.63

0.03

161.0

178.6

183.3

192.2

8.8

to_charptr_sprintf.cpp

0.01

0.01

0.00

16.8

22.2

26.9

31.6

4.7

to_string_strf.cpp

1.36

1.30

0.05

377.0

690.9

709.0

731.3

22.2

to_string_strf_tr.cpp

1.35

1.30

0.05

389.1

701.1

723.4

745.6

22.2

to_string_fmtlib_c.cpp

2.22

2.17

0.04

236.9

1076.3

1106.4

1136.6

30.2

to_string_fmtlib.cpp

0.61

0.58

0.03

160.9

180.3

194.1

203.8

9.7

to_FILE_strf.cpp

1.31

1.25

0.05

376.9

665.5

682.6

695.6

13.0

to_FILE_strf_tr.cpp

1.31

1.25

0.05

389.3

688.2

701.3

714.3

13.0

to_FILE_fmtlib.cpp

0.58

0.54

0.03

156.5

170.2

175.0

179.8

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

16.8

22.3

27.2

27.9

0.7

to_ostream_strf.cpp

1.32

1.26

0.05

376.4

665.7

679.1

688.3

9.3

to_ostream_strf_tr.cpp

1.31

1.25

0.05

384.6

675.1

688.5

701.9

13.4

to_ostream_fmtlib.cpp

0.87

0.83

0.04

156.7

188.0

205.7

215.3

9.5

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.84

1.78

0.05

115.6

347.2

364.2

377.1

12.9

to_charptr_strf_tr.cpp

1.83

1.77

0.05

122.0

332.6

353.7

374.8

21.1

to_charptr_fmtlib_n_c.cpp

2.76

2.71

0.04

145.8

1186.5

1219.9

1245.2

25.2

to_charptr_fmtlib_n.cpp

2.52

2.47

0.04

152.3

178.1

195.1

208.0

12.9

to_charptr_fmtlib_c.cpp

2.44

2.39

0.04

123.1

892.7

922.1

943.2

21.1

to_charptr_fmtlib.cpp

2.51

2.46

0.04

147.9

169.7

178.5

187.3

8.8

to_string_strf.cpp

1.91

1.85

0.05

122.0

435.9

454.0

480.4

26.3

to_string_strf_tr.cpp

1.90

1.84

0.05

130.2

450.5

476.8

494.9

18.1

to_string_fmtlib_c.cpp

2.53

2.48

0.05

138.0

973.2

1003.4

1029.5

26.1

to_string_fmtlib.cpp

2.53

2.48

0.04

152.0

200.1

226.1

252.2

26.1

to_FILE_strf.cpp

1.86

1.80

0.05

117.8

413.9

427.0

440.0

13.0

to_FILE_strf_tr.cpp

1.88

1.82

0.05

130.4

437.6

450.6

471.8

21.2

to_FILE_fmtlib.cpp

2.55

2.50

0.04

152.5

162.1

171.0

175.8

4.8

to_ostream_strf.cpp

1.90

1.84

0.05

117.4

410.3

423.7

437.0

13.4

to_ostream_strf_tr.cpp

1.89

1.83

0.05

125.6

428.6

437.9

455.4

17.5

to_ostream_fmtlib.cpp

2.65

2.60

0.04

151.8

183.2

200.9

214.5

13.6

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.19

1.13

0.05

1738.6

6008.5

7596.1

9183.4

1587.3

to_charptr_strf_tr.cpp

1.19

1.14

0.05

1740.4

6007.4

7585.3

9163.1

1577.8

to_charptr_fmtlib_n_c.cpp

1.04

0.99

0.04

1307.1

8430.1

10882.4

13322.3

2439.9

to_charptr_fmtlib_n.cpp

0.67

0.63

0.03

856.9

1905.1

2339.0

2764.7

425.7

to_charptr_fmtlib_c.cpp

1.00

0.95

0.04

1218.2

7708.8

10027.7

12338.0

2310.3

to_charptr_fmtlib.cpp

0.67

0.64

0.03

854.2

1855.4

2261.1

2666.7

405.7

to_charptr_sprintf.cpp

0.01

0.01

0.00

30.1

169.5

237.1

304.8

67.7

to_string_strf.cpp

1.20

1.14

0.05

1813.9

6341.0

8041.7

9734.3

1692.5

to_string_strf_tr.cpp

1.21

1.15

0.05

1803.2

6328.0

8013.3

9698.8

1685.6

to_string_fmtlib_c.cpp

1.02

0.97

0.04

1325.5

8267.1

10648.3

13032.7

2384.4

to_string_fmtlib.cpp

0.59

0.55

0.03

886.9

2103.8

2611.8

3123.8

512.0

to_FILE_strf.cpp

1.20

1.15

0.05

1755.6

6037.5

7632.9

9223.9

1591.0

to_FILE_strf_tr.cpp

1.21

1.15

0.05

1744.9

6022.9

7606.2

9189.5

1583.3

to_FILE_fmtlib.cpp

0.59

0.55

0.03

850.3

1806.6

2186.5

2570.6

384.1

to_FILE_fprintf.cpp

0.01

0.01

0.00

29.9

163.4

226.1

292.8

66.7

to_ostream_strf.cpp

1.21

1.15

0.05

1754.5

6050.8

7641.5

9227.8

1586.2

to_ostream_strf_tr.cpp

1.22

1.16

0.05

1755.9

6043.9

7614.1

9192.5

1578.4

to_ostream_fmtlib.cpp

0.87

0.82

0.04

877.6

2074.6

2555.5

3040.6

485.0

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.31

1.25

0.05

929.0

6356.7

8529.3

10697.5

2168.2

to_charptr_strf_tr.cpp

1.32

1.26

0.05

922.4

6348.4

8509.7

10671.0

2161.2

to_charptr_fmtlib_n_c.cpp

1.33

1.28

0.05

757.0

8134.0

10711.3

13280.5

2569.1

to_charptr_fmtlib_n.cpp

1.24

1.19

0.05

748.6

6039.9

8589.1

11134.2

2545.1

to_charptr_fmtlib_c.cpp

1.29

1.24

0.05

659.6

7407.3

9865.0

12297.6

2432.5

to_charptr_fmtlib.cpp

1.24

1.19

0.04

742.1

5994.1

8527.2

11056.2

2529.0

to_string_strf.cpp

1.32

1.27

0.05

1001.7

6717.0

9001.6

11294.2

2292.6

to_string_strf_tr.cpp

1.32

1.26

0.05

995.1

6703.3

8976.1

11257.1

2281.0

to_string_fmtlib_c.cpp

1.30

1.25

0.04

768.6

7970.1

10479.1

12987.4

2508.3

to_string_fmtlib.cpp

1.24

1.19

0.05

770.2

6035.2

8565.0

11099.0

2534.0

to_FILE_strf.cpp

1.31

1.25

0.05

938.7

6402.5

8587.2

10770.6

2183.4

to_FILE_strf_tr.cpp

1.32

1.25

0.06

936.0

6385.5

8556.9

10727.4

2170.5

to_FILE_fmtlib.cpp

1.24

1.19

0.05

751.8

6043.5

8599.4

11147.1

2547.7

to_ostream_strf.cpp

1.32

1.26

0.05

945.6

6418.7

8594.0

10768.1

2174.1

to_ostream_strf_tr.cpp

1.33

1.27

0.05

938.8

6406.5

8568.8

10730.2

2161.4

to_ostream_fmtlib.cpp

1.34

1.29

0.05

756.9

6037.0

8555.4

11073.8

2518.4

GCC 13.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.74

0.68

0.05

251.6

347.9

382.1

416.3

34.2

to_charptr_strf_tr.cpp

0.78

0.72

0.05

263.5

395.1

453.9

512.6

58.7

to_charptr_fmtlib_n_c.cpp

1.47

1.40

0.06

180.5

609.4

641.1

676.9

35.8

to_charptr_fmtlib_n.cpp

0.46

0.42

0.04

129.8

139.3

148.1

152.9

4.7

to_charptr_fmtlib_c.cpp

1.41

1.35

0.06

171.3

545.8

597.1

697.7

100.6

to_charptr_fmtlib.cpp

0.45

0.42

0.03

129.5

134.9

143.7

148.5

4.7

to_charptr_sprintf.cpp

0.02

0.02

0.00

16.6

21.9

26.7

31.4

4.7

to_string_strf.cpp

0.78

0.72

0.05

252.7

372.0

415.6

455.1

39.6

to_string_strf_tr.cpp

0.82

0.76

0.05

268.6

419.1

487.3

555.4

68.1

to_string_fmtlib_c.cpp

1.48

1.42

0.06

179.5

649.2

697.8

746.5

48.7

to_string_fmtlib.cpp

0.38

0.35

0.03

129.2

148.3

162.0

167.5

5.5

to_FILE_strf.cpp

0.75

0.70

0.05

252.8

354.8

389.3

419.8

30.5

to_FILE_strf_tr.cpp

0.78

0.73

0.05

264.6

397.5

460.7

519.7

59.0

to_FILE_fmtlib.cpp

0.36

0.32

0.03

129.0

134.5

143.4

148.3

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

16.6

22.1

26.9

27.7

0.7

to_ostream_strf.cpp

0.81

0.75

0.05

251.8

353.2

387.4

425.7

38.3

to_ostream_strf_tr.cpp

0.84

0.78

0.06

263.6

392.4

451.3

514.1

62.8

to_ostream_fmtlib.cpp

0.50

0.45

0.04

129.4

134.8

143.7

148.4

4.8

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.29

1.23

0.06

81.2

270.9

353.7

432.5

78.8

to_charptr_strf_tr.cpp

1.32

1.25

0.06

96.7

308.7

411.9

519.0

107.1

to_charptr_fmtlib_n_c.cpp

1.73

1.65

0.07

95.8

525.9

562.1

594.3

32.1

to_charptr_fmtlib_n.cpp

1.85

1.78

0.07

119.3

268.1

336.3

412.7

76.4

to_charptr_fmtlib_c.cpp

1.66

1.58

0.07

86.5

457.5

513.2

614.2

101.0

to_charptr_fmtlib.cpp

1.85

1.77

0.07

119.0

263.6

335.9

408.2

72.3

to_string_strf.cpp

1.32

1.26

0.06

86.4

290.8

379.0

471.3

92.3

to_string_strf_tr.cpp

1.35

1.28

0.06

97.7

336.8

449.4

565.9

116.6

to_string_fmtlib_c.cpp

1.72

1.65

0.07

99.1

569.3

618.3

667.4

49.1

to_string_fmtlib.cpp

1.85

1.77

0.07

118.9

273.3

350.4

431.7

81.3

to_FILE_strf.cpp

1.29

1.23

0.06

82.4

277.7

356.8

435.9

79.1

to_FILE_strf_tr.cpp

1.33

1.26

0.06

97.9

315.2

418.7

522.0

103.4

to_FILE_fmtlib.cpp

1.87

1.79

0.07

124.2

269.1

341.5

418.0

76.5

to_ostream_strf.cpp

1.34

1.27

0.07

81.4

276.2

359.0

437.8

78.8

to_ostream_strf_tr.cpp

1.38

1.31

0.07

96.8

310.2

413.4

520.5

107.2

to_ostream_fmtlib.cpp

1.87

1.79

0.07

118.8

263.5

335.8

408.2

72.3

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.85

0.79

0.05

388.5

581.2

680.4

771.3

90.9

to_charptr_strf_tr.cpp

0.89

0.83

0.06

396.5

615.8

723.4

827.0

103.5

to_charptr_fmtlib_n_c.cpp

2.14

2.07

0.06

237.1

934.2

1031.2

1136.4

105.2

to_charptr_fmtlib_n.cpp

0.46

0.42

0.04

156.4

186.3

199.3

212.2

12.9

to_charptr_fmtlib_c.cpp

2.00

1.93

0.06

225.3

875.8

988.6

1171.2

182.7

to_charptr_fmtlib.cpp

0.45

0.41

0.04

156.2

169.8

178.6

187.4

8.8

to_charptr_sprintf.cpp

0.02

0.01

0.00

16.6

21.9

26.7

31.4

4.7

to_string_strf.cpp

1.07

1.00

0.06

397.7

713.3

871.8

1017.7

145.9

to_string_strf_tr.cpp

1.16

1.10

0.06

418.7

867.9

1088.1

1296.0

207.8

to_string_fmtlib_c.cpp

2.13

2.06

0.06

239.3

965.8

1058.5

1155.4

96.9

to_string_fmtlib.cpp

0.42

0.38

0.03

160.2

242.2

277.1

320.2

43.1

to_FILE_strf.cpp

0.87

0.81

0.05

389.8

612.8

725.1

829.1

104.1

to_FILE_strf_tr.cpp

0.91

0.85

0.05

406.0

647.5

764.1

880.8

116.7

to_FILE_fmtlib.cpp

0.36

0.32

0.03

155.8

161.4

170.3

175.1

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

16.6

22.1

26.9

27.7

0.7

to_ostream_strf.cpp

0.92

0.86

0.06

388.9

607.3

711.0

814.7

103.7

to_ostream_strf_tr.cpp

0.97

0.91

0.06

400.9

645.8

770.3

890.7

120.4

to_ostream_fmtlib.cpp

0.50

0.45

0.04

156.3

165.8

170.5

175.3

4.8

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

2.07

1.99

0.07

130.3

695.1

967.6

1240.0

272.3

to_charptr_strf_tr.cpp

1.93

1.86

0.07

132.2

507.6

693.3

883.0

189.8

to_charptr_fmtlib_n_c.cpp

2.47

2.38

0.08

120.5

813.4

910.8

1016.4

105.6

to_charptr_fmtlib_n.cpp

2.72

2.63

0.08

146.5

377.6

487.1

600.6

113.5

to_charptr_fmtlib_c.cpp

2.34

2.26

0.07

104.6

683.4

776.3

922.8

146.5

to_charptr_fmtlib.cpp

2.68

2.60

0.08

146.2

360.9

466.3

575.7

109.4

to_string_strf.cpp

2.04

1.97

0.06

131.1

617.9

851.3

1084.6

233.3

to_string_strf_tr.cpp

2.07

2.00

0.07

143.2

703.6

969.9

1240.4

270.4

to_string_fmtlib_c.cpp

2.46

2.38

0.07

123.1

788.2

869.1

954.1

85.0

to_string_fmtlib.cpp

2.74

2.66

0.07

150.9

421.9

561.5

697.0

135.5

to_FILE_strf.cpp

2.03

1.95

0.07

131.6

632.9

877.6

1114.0

236.4

to_FILE_strf_tr.cpp

2.00

1.92

0.07

133.4

543.3

746.2

953.3

207.0

to_FILE_fmtlib.cpp

2.76

2.68

0.08

151.4

400.1

526.6

653.1

126.5

to_ostream_strf.cpp

2.08

2.00

0.08

126.5

606.8

838.9

1062.6

223.8

to_ostream_strf_tr.cpp

2.05

1.97

0.07

132.5

545.7

752.4

954.9

202.6

to_ostream_fmtlib.cpp

2.78

2.69

0.08

146.2

352.8

458.2

567.6

109.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.83

0.76

0.06

1915.6

7765.7

10157.5

12545.0

2387.4

to_charptr_strf_tr.cpp

0.86

0.79

0.06

1908.0

7616.8

9942.4

12272.0

2329.6

to_charptr_fmtlib_n_c.cpp

1.13

1.06

0.07

1675.3

10268.7

13605.9

16932.0

3326.1

to_charptr_fmtlib_n.cpp

0.51

0.46

0.04

1114.7

2572.2

3210.0

3843.6

633.6

to_charptr_fmtlib_c.cpp

1.08

1.01

0.07

1572.7

9599.6

12790.3

15969.5

3179.2

to_charptr_fmtlib.cpp

0.50

0.45

0.04

1111.4

2522.7

3138.9

3750.9

612.0

to_charptr_sprintf.cpp

0.02

0.02

0.00

31.8

202.1

283.2

364.2

81.1

to_string_strf.cpp

0.88

0.81

0.07

2018.6

8252.3

10830.5

13408.4

2577.9

to_string_strf_tr.cpp

0.88

0.82

0.06

2006.8

8107.2

10618.9

13134.7

2515.8

to_string_fmtlib_c.cpp

1.09

1.02

0.07

1676.7

9994.1

13216.6

16435.3

3218.7

to_string_fmtlib.cpp

0.41

0.37

0.04

1138.9

2593.7

3226.3

3862.9

636.6

to_FILE_strf.cpp

0.85

0.79

0.06

1922.6

7809.6

10217.4

12629.2

2411.7

to_FILE_strf_tr.cpp

0.86

0.79

0.06

1914.9

7659.8

10005.1

12350.4

2345.3

to_FILE_fmtlib.cpp

0.40

0.36

0.03

1089.6

2115.0

2541.0

2962.7

421.7

to_FILE_fprintf.cpp

0.02

0.02

0.00

31.6

194.4

273.7

357.2

83.4

to_ostream_strf.cpp

0.91

0.84

0.06

1923.4

7607.5

9906.2

12204.7

2298.5

to_ostream_strf_tr.cpp

0.91

0.84

0.06

1911.6

7462.3

9694.5

11930.9

2236.4

to_ostream_fmtlib.cpp

0.54

0.50

0.04

1133.5

2763.2

3473.9

4180.3

706.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.01

0.93

0.07

1062.2

8206.0

11236.5

14274.8

3038.4

to_charptr_strf_tr.cpp

1.02

0.94

0.07

1050.4

8057.1

11025.3

13997.7

2972.4

to_charptr_fmtlib_n_c.cpp

1.34

1.25

0.08

918.3

9896.9

13428.8

16949.5

3520.7

to_charptr_fmtlib_n.cpp

1.40

1.31

0.08

957.6

8775.5

12591.5

16407.4

3815.9

to_charptr_fmtlib_c.cpp

1.31

1.22

0.08

819.6

9227.6

12608.8

15982.6

3373.8

to_charptr_fmtlib.cpp

1.40

1.31

0.08

954.7

8735.9

12535.0

16333.9

3799.0

to_string_strf.cpp

1.06

0.98

0.07

1149.3

8672.4

11893.1

15113.7

3220.5

to_string_strf_tr.cpp

1.06

0.99

0.07

1137.4

8527.3

11681.7

14840.1

3158.5

to_string_fmtlib_c.cpp

1.32

1.23

0.08

921.1

9626.8

13043.5

16448.1

3404.6

to_string_fmtlib.cpp

1.40

1.31

0.08

989.4

8815.3

12637.6

16459.7

3822.1

to_FILE_strf.cpp

1.03

0.96

0.06

1073.3

8245.7

11300.4

14350.8

3050.3

to_FILE_strf_tr.cpp

1.04

0.96

0.07

1065.6

8100.2

11088.2

14072.2

2984.0

to_FILE_fmtlib.cpp

1.41

1.33

0.07

981.1

8948.6

12847.6

16742.5

3894.8

to_ostream_strf.cpp

1.08

1.00

0.07

1050.4

8024.6

10966.4

13903.8

2937.4

to_ostream_strf_tr.cpp

1.08

1.01

0.07

1038.6

7875.4

10750.7

13630.1

2879.4

to_ostream_fmtlib.cpp

1.41

1.33

0.08

968.4

8799.6

12604.9

16418.2

3813.3