Runtime performance

Environments
Label Library type Compiler OS

VS ho

header-only

Visual Studio 2019 (16.5.4)

Windows 10

VS static

static

GCC ho

header-only

GCC 10.2.0

Ubuntu 18.04.4

GCC static

static

Clang ho

header-only

Clang 10.0.0

Clang static

static

If you want to run the benchmarks in your own environment, the CMake option STRF_BUILD_BENCHMARKS enables the build of the the programs that generated the output presented in the tables that follow. It is also necessary run git submodule update --init to fetch the necessary externals repository

All the benchmarks below were run in the same computer and compiled in C++20.

The {fmt} version is 7.0.3

git clone https://github.com/robhz786/strf
cd strf
git submodule update --init
mkdir build
cd build
cmake -DSTRF_BUILD_BENCHMARKS=ON  -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --target bench-to_char_ptr-static-lib
cmake --build . --target bench-to_char_ptr-header-only
cmake --build . --target bench-to_string-static-lib
cmake --build . --target bench-to_string-header-only

Writing to char*

Sample 1

Print a string

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf

15.0 ns

17.6 ns

11.1 ns

19.8 ns

15.6 ns

19.8 ns

2. strf ( tr-string )

26.7 ns

24.0 ns

20.7 ns

21.7 ns

19.5 ns

19.8 ns

3. {fmt} (FMT_COMPILE)

6.56 ns

7.67 ns

11.6 ns

11.6 ns

4.22 ns

3.43 ns

4. {fmt}

36.9 ns

35.3 ns

27.3 ns

25.4 ns

21.3 ns

19.3 ns

5. sprintf

141 ns

57.3 ns

53.2 ns

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

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

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

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

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

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

Sample 2

Print integer without formatting

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf

34.5 ns

32.8 ns

14.1 ns

29.4 ns

25.2 ns

32.4 ns

2. strf ( tr-string )

50.0 ns

46.0 ns

36.2 ns

34.8 ns

36.3 ns

38.4 ns

3. {fmt} (FMT_COMPILE)

12.8 ns

13.1 ns

12.1 ns

12.2 ns

15.2 ns

15.1 ns

4. {fmt}

54.4 ns

54.7 ns

46.6 ns

42.0 ns

37.3 ns

49.9 ns

5. sprintf

300 ns

109 ns

102 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(dest, "blah {} blah {} blah", 123456, 0x123456)

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

using
    char dest[110];

Sample 3

Print some formatted integers

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf

47.5 ns

47.1 ns

18.1 ns

30.1 ns

35.1 ns

40.2 ns

2. strf ( tr-string )

62.8 ns

67.0 ns

38.0 ns

36.9 ns

43.9 ns

45.7 ns

3. {fmt} (FMT_COMPILE)

98.4 ns

92.1 ns

52.4 ns

51.1 ns

51.1 ns

54.4 ns

4. {fmt}

150 ns

143 ns

106 ns

105 ns

113 ns

115 ns

5. sprintf

307 ns

106 ns

102 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(dest, "blah {:+} blah {:#x} blah", 123456, 0x123456)

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

using
    char dest[110];

Sample 4

Print some formatted integers with alignment

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf

98.4 ns

83.7 ns

32.5 ns

44.3 ns

51.3 ns

59.1 ns

2. strf ( tr-string )

105 ns

105 ns

54.1 ns

58.1 ns

65.2 ns

69.5 ns

3. {fmt} (FMT_COMPILE)

100 ns

92.1 ns

57.9 ns

61.0 ns

58.3 ns

59.7 ns

4. {fmt}

169 ns

165 ns

128 ns

121 ns

137 ns

131 ns

5. sprintf

455 ns

138 ns

134 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(dest, "blah {:_>+20} blah {:<#20x} blah", 123456, 0x123456)

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

using
    char dest[110];

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 static GCC ho GCC static Clang ho Clang static

1. strf (reserve_calc)

33.8 ns

34.5 ns

12.1 ns

15.0 ns

19.3 ns

19.4 ns

2. strf (no_reserve)

19.9 ns

19.9 ns

16.4 ns

19.3 ns

16.6 ns

18.5 ns

3. strf (reserve_calc, tr)

43.9 ns

43.0 ns

25.9 ns

29.4 ns

33.6 ns

34.1 ns

4. strf (no_reserve, tr)

33.7 ns

30.7 ns

23.2 ns

24.4 ns

27.9 ns

25.9 ns

5. {fmt} (FMT_COMPILE)

14.0 ns

13.5 ns

8.70 ns

8.72 ns

1.58 ns

7.38 ns

6. {fmt}

35.3 ns

36.1 ns

21.7 ns

21.7 ns

11.2 ns

11.6 ns

7. std::to_string

14.8 ns

5.02 ns

7.94 ns

  1. to_string .reserve_calc() (123456)

  2. to_string .no_reserve() (123456)

  3. to_string .reserve_calc() .tr("{}", 123456)

  4. to_string .no_reserve() .tr("{}", 123456)

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

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

  7. std::to_string(123456)

Sample 2

Print a floting point value and nothing more.

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf (reserve_calc)

103 ns

80.2 ns

45.2 ns

53.3 ns

55.3 ns

73.5 ns

2. strf (no_reserve)

68.4 ns

65.6 ns

58.1 ns

51.5 ns

50.8 ns

60.4 ns

3. strf (reserve_calc, tr)

114 ns

98.4 ns

63.1 ns

66.6 ns

75.4 ns

94.7 ns

4. strf (no_reserve, tr)

73.2 ns

73.2 ns

57.4 ns

63.0 ns

60.4 ns

64.6 ns

5. {fmt} (FMT_COMPILE)

94.2 ns

87.9 ns

54.1 ns

49.2 ns

50.9 ns

57.4 ns

6. {fmt}

109 ns

105 ns

62.2 ns

56.5 ns

55.6 ns

62.3 ns

7. std::to_string

445 ns

200 ns

197 ns

  1. to_string .reserve_calc() (0.123456)

  2. to_string .no_reserve() (0.123456)

  3. to_string .reserve_calc() .tr("{}", 0.123456)

  4. to_string .no_reserve() .tr("{}", 0.123456)

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

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

  7. std::to_string(0.123456)

Sample 3

Print a string

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf (reserve_calc)

90.0 ns

87.9 ns

25.7 ns

32.4 ns

35.8 ns

41.0 ns

2. strf (no_reserve)

92.1 ns

94.2 ns

32.0 ns

45.0 ns

49.9 ns

52.7 ns

3. strf (reserve_calc, tr)

123 ns

123 ns

52.4 ns

52.2 ns

55.9 ns

58.1 ns

4. strf (no_reserve, tr)

105 ns

107 ns

55.1 ns

54.3 ns

59.7 ns

62.5 ns

5. {fmt} (FMT_COMPILE)

90.0 ns

87.9 ns

36.5 ns

23.6 ns

15.6 ns

15.5 ns

6. {fmt}

117 ns

112 ns

57.5 ns

58.7 ns

48.8 ns

57.5 ns

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

  2. to_string .no_reserve() ("Blah ", str, "!\n")

  3. to_string .reserve_calc() .tr("Blah {}!\n", str)

  4. to_string .no_reserve() .tr("Blah {}!\n", str)

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

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

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

Sample 4

Print integers without formatting

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf (reserve_calc)

105 ns

115 ns

27.6 ns

42.8 ns

63.9 ns

60.2 ns

2. strf (no_reserve)

112 ns

120 ns

28.5 ns

51.9 ns

73.3 ns

72.9 ns

3. strf (reserve_calc, tr)

150 ns

154 ns

75.5 ns

67.0 ns

82.3 ns

85.9 ns

4. strf (no_reserve, tr)

128 ns

128 ns

67.7 ns

62.6 ns

88.3 ns

86.2 ns

5. {fmt} (FMT_COMPILE)

96.3 ns

103 ns

46.4 ns

28.4 ns

33.5 ns

32.5 ns

6. {fmt}

141 ns

138 ns

77.2 ns

77.6 ns

60.5 ns

66.8 ns

  1. to_string .reserve_calc() ("blah ", 123456, " blah ", 0x123456, " blah")

  2. to_string .no_reserve() ("blah ", 123456, " blah ", 0x123456, " blah")

  3. to_string .reserve_calc() .tr("blah {} blah {} blah", 123456, 0x123456)

  4. to_string .no_reserve() .tr("blah {} blah {} blah", 123456, 0x123456)

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

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

Sample 5

Print integers with some basic formatting

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf (reserve_calc)

128 ns

132 ns

39.3 ns

51.7 ns

76.3 ns

72.4 ns

2. strf (no_reserve)

132 ns

120 ns

41.7 ns

57.2 ns

85.1 ns

79.2 ns

3. strf (reserve_calc, tr)

167 ns

157 ns

76.1 ns

75.8 ns

81.4 ns

96.0 ns

4. strf (no_reserve, tr)

138 ns

151 ns

68.2 ns

73.1 ns

98.1 ns

89.5 ns

5. {fmt} (FMT_COMPILE)

184 ns

188 ns

88.5 ns

90.9 ns

83.1 ns

79.9 ns

6. {fmt}

235 ns

240 ns

133 ns

133 ns

142 ns

140 ns

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

  2. to_string_nr("blah ", +strf::dec(123456), " blah ", *strf::hex(0x123456), " blah")

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

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

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

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

using
    constexpr auto to_string_rc = strf::to_string.reserve_calc();
    constexpr auto to_string_nr = strf::to_string.no_reserve();

Sample 6

Print some formatted integers with alignment

VS ho VS static GCC ho GCC static Clang ho Clang static

1. strf (reserve_calc)

176 ns

188 ns

54.4 ns

80.9 ns

96.3 ns

102 ns

2. strf (no_reserve)

169 ns

165 ns

64.9 ns

79.6 ns

109 ns

110 ns

3. strf (reserve_calc, tr)

215 ns

210 ns

95.9 ns

104 ns

112 ns

137 ns

4. strf (no_reserve, tr)

180 ns

195 ns

91.3 ns

94.4 ns

119 ns

119 ns

5. {fmt} (FMT_COMPILE)

193 ns

188 ns

96.4 ns

98.7 ns

86.3 ns

84.4 ns

6. {fmt}

279 ns

270 ns

157 ns

157 ns

170 ns

169 ns

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

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

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

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

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

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

using
    constexpr auto to_string_rc = strf::to_string.reserve_calc();
    constexpr auto to_string_nr = strf::to_string.no_reserve();

Compilation performance

The tables below are the output of the script benchmarks/compilation/run_benchmarks.py. This script does not work on MS-Windows. It is affected by the CXX and CXXFLAGS environment variables. The flag --std=c++2a was used.

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.

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

0.69

0.01

523.3

687.2

703.2

719.3

16.0

to_charptr_strf_tr.cpp

0.72

0.71

0.01

522.8

685.0

699.8

714.7

14.8

to_charptr_fmtlib_c.cpp

1.00

0.98

0.01

320.4

466.7

488.8

510.8

22.1

to_charptr_fmtlib.cpp

1.15

1.12

0.02

342.1

371.0

383.5

400.0

16.5

to_charptr_sprintf.cpp

0.02

0.01

0.00

8.3

17.8

22.5

27.3

4.7

to_string_strf.cpp

0.80

0.78

0.02

531.8

697.0

719.5

746.0

26.5

to_string_strf_tr.cpp

0.84

0.81

0.02

531.3

706.7

727.9

753.3

25.3

to_string_fmtlib_c.cpp

1.11

1.09

0.02

317.3

584.8

624.2

667.7

43.5

to_string_fmtlib.cpp

0.38

0.37

0.01

306.7

326.0

335.7

349.5

13.8

to_FILE_strf.cpp

0.71

0.68

0.02

523.3

683.6

699.7

715.8

16.1

to_FILE_strf_tr.cpp

0.73

0.71

0.02

522.9

685.4

696.3

711.2

14.9

to_FILE_fmtlib.cpp

0.37

0.35

0.01

306.3

315.9

320.8

325.6

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

8.3

18.0

18.7

23.5

4.8

to_ostream_strf.cpp

0.93

0.90

0.02

523.7

687.7

704.2

720.8

16.5

to_ostream_strf_tr.cpp

0.95

0.93

0.02

519.0

689.2

700.4

715.7

15.3

to_ostream_fmtlib.cpp

0.59

0.57

0.02

306.8

317.6

323.0

328.5

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

0.93

0.91

0.01

70.3

231.2

247.4

263.7

16.3

to_charptr_strf_tr.cpp

0.94

0.92

0.02

69.8

233.1

248.1

263.2

15.1

to_charptr_fmtlib_c.cpp

1.54

1.51

0.02

54.3

207.5

234.9

258.2

23.3

to_charptr_fmtlib.cpp

1.70

1.67

0.02

80.9

116.3

134.0

151.8

17.7

to_string_strf.cpp

1.03

1.01

0.02

78.7

244.7

267.1

293.6

26.5

to_string_strf_tr.cpp

1.07

1.04

0.02

78.1

254.3

279.7

300.9

21.2

to_string_fmtlib_c.cpp

1.58

1.55

0.03

67.2

341.7

382.2

426.9

44.7

to_string_fmtlib.cpp

1.84

1.81

0.03

100.6

152.9

181.1

205.3

24.1

to_FILE_strf.cpp

0.93

0.91

0.02

70.4

227.6

243.9

260.3

16.4

to_FILE_strf_tr.cpp

0.95

0.93

0.02

69.9

229.4

244.6

259.8

15.2

to_FILE_fmtlib.cpp

1.86

1.83

0.02

106.8

152.3

177.1

197.8

20.7

to_ostream_strf.cpp

1.15

1.13

0.02

70.7

231.7

248.5

265.2

16.8

to_ostream_strf_tr.cpp

1.18

1.15

0.02

70.1

233.2

248.7

264.2

15.6

to_ostream_fmtlib.cpp

1.71

1.68

0.02

90.2

127.0

145.4

163.8

18.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.75

0.74

0.01

519.4

726.5

742.1

761.8

19.7

to_charptr_strf_tr.cpp

0.79

0.77

0.02

518.7

736.7

755.4

770.0

14.6

to_charptr_fmtlib_c.cpp

1.13

1.10

0.02

321.9

407.3

437.6

463.8

26.2

to_charptr_fmtlib.cpp

1.36

1.34

0.02

351.5

381.0

397.7

414.5

16.8

to_charptr_sprintf.cpp

0.02

0.02

0.00

8.3

17.8

22.5

27.3

4.7

to_string_strf.cpp

0.87

0.85

0.02

526.7

728.4

754.6

780.7

26.1

to_string_strf_tr.cpp

0.91

0.89

0.01

526.0

743.6

768.6

793.6

25.0

to_string_fmtlib_c.cpp

1.24

1.22

0.02

317.2

488.1

535.6

579.0

43.4

to_string_fmtlib.cpp

0.39

0.37

0.01

306.7

326.0

335.7

349.5

13.8

to_FILE_strf.cpp

0.76

0.74

0.01

519.4

719.0

739.0

754.9

15.9

to_FILE_strf_tr.cpp

0.80

0.78

0.02

518.7

737.2

751.9

766.6

14.7

to_FILE_fmtlib.cpp

0.37

0.35

0.01

306.3

315.9

320.8

325.6

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

8.3

18.0

18.7

23.5

4.8

to_ostream_strf.cpp

0.99

0.96

0.02

518.7

737.0

752.3

767.6

15.3

to_ostream_strf_tr.cpp

1.02

1.00

0.02

518.8

740.6

755.7

770.8

15.1

to_ostream_fmtlib.cpp

0.61

0.59

0.02

307.4

368.2

378.9

385.5

6.6

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

1.03

0.02

71.2

281.7

301.6

317.4

15.8

to_charptr_strf_tr.cpp

1.07

1.05

0.01

70.4

283.1

302.0

316.9

14.8

to_charptr_fmtlib_c.cpp

1.79

1.76

0.03

58.4

145.9

177.1

208.4

31.2

to_charptr_fmtlib.cpp

2.05

2.01

0.03

88.6

128.1

145.9

163.6

17.7

to_string_strf.cpp

1.17

1.14

0.02

77.0

294.1

315.3

340.7

25.4

to_string_strf_tr.cpp

1.20

1.18

0.02

76.3

308.1

332.4

356.6

24.2

to_string_fmtlib_c.cpp

1.84

1.81

0.03

64.5

237.6

286.0

334.5

48.5

to_string_fmtlib.cpp

2.21

2.18

0.03

106.2

158.5

186.7

215.0

28.2

to_FILE_strf.cpp

1.05

1.03

0.02

71.2

269.3

289.6

305.7

16.1

to_FILE_strf_tr.cpp

1.08

1.05

0.01

70.4

283.2

298.2

313.1

14.9

to_FILE_fmtlib.cpp

2.24

2.21

0.03

111.9

156.4

180.7

205.0

24.3

to_ostream_strf.cpp

1.35

1.32

0.02

69.5

328.8

344.4

364.0

19.6

to_ostream_strf_tr.cpp

1.31

1.28

0.02

70.6

285.7

301.0

316.3

15.3

to_ostream_fmtlib.cpp

2.04

2.01

0.03

96.9

183.7

207.4

227.1

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

0.60

0.58

0.02

1033.2

3995.0

5332.9

6670.8

1337.9

to_charptr_strf_tr.cpp

0.61

0.58

0.02

1064.6

4558.6

5983.0

7407.5

1424.4

to_charptr_fmtlib_c.cpp

0.71

0.68

0.02

675.8

4766.7

6386.1

8004.4

1618.2

to_charptr_fmtlib.cpp

0.68

0.65

0.02

679.6

3934.0

5480.9

7027.9

1547.0

to_charptr_sprintf.cpp

0.01

0.01

0.00

25.4

175.4

248.3

321.3

73.0

to_string_strf.cpp

0.67

0.64

0.02

1074.4

4250.1

5688.2

7130.4

1442.2

to_string_strf_tr.cpp

0.68

0.66

0.02

1107.2

4858.4

6391.7

7929.0

1537.3

to_string_fmtlib_c.cpp

0.75

0.72

0.02

658.6

5054.8

6767.6

8486.9

1719.3

to_string_fmtlib.cpp

0.37

0.35

0.01

403.4

1325.9

1689.3

2048.7

359.4

to_FILE_strf.cpp

0.60

0.58

0.02

1036.0

4041.2

5405.3

6764.0

1358.8

to_FILE_strf_tr.cpp

0.61

0.59

0.02

1067.5

4606.2

6057.0

7502.6

1445.6

to_FILE_fmtlib.cpp

0.36

0.34

0.01

381.5

1203.9

1500.2

1800.5

300.4

to_FILE_fprintf.cpp

0.01

0.01

0.00

25.2

164.7

236.5

308.3

71.8

to_ostream_strf.cpp

0.83

0.80

0.02

1048.3

4088.2

5466.6

6839.6

1373.0

to_ostream_strf_tr.cpp

0.84

0.81

0.02

1079.9

4661.1

6126.6

7590.9

1464.3

to_ostream_fmtlib.cpp

0.58

0.56

0.02

408.2

1448.5

1870.9

2293.3

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

0.64

0.61

0.02

644.8

4219.6

5863.6

7507.6

1644.0

to_charptr_strf_tr.cpp

0.65

0.62

0.02

675.4

4772.4

6497.8

8223.2

1725.3

to_charptr_fmtlib_c.cpp

1.07

1.03

0.03

545.8

5452.4

7473.1

9500.8

2027.7

to_charptr_fmtlib.cpp

1.03

1.00

0.03

551.1

4606.2

6555.6

8500.9

1945.3

to_string_strf.cpp

0.71

0.68

0.02

687.2

4496.2

6250.3

8008.6

1758.3

to_string_strf_tr.cpp

0.72

0.69

0.02

723.1

5090.9

6938.0

8780.8

1842.9

to_string_fmtlib_c.cpp

1.05

1.01

0.03

603.8

5764.9

7855.1

9952.6

2097.4

to_string_fmtlib.cpp

1.01

0.98

0.03

669.2

5207.1

7376.2

9545.3

2169.1

to_FILE_strf.cpp

0.64

0.62

0.02

647.9

4272.7

5945.6

7614.2

1668.6

to_FILE_strf_tr.cpp

0.65

0.63

0.02

678.6

4827.4

6582.2

8332.6

1750.4

to_FILE_fmtlib.cpp

1.03

1.00

0.03

687.9

5375.1

7605.7

9840.5

2234.7

to_ostream_strf.cpp

0.87

0.84

0.03

660.3

4322.0

6010.4

7694.4

1684.0

to_ostream_strf_tr.cpp

0.88

0.85

0.03

691.1

4884.3

6654.8

8424.9

1770.1

to_ostream_fmtlib.cpp

1.00

0.97

0.03

605.9

4729.9

6696.2

8658.3

1962.2

GCC 9.3.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.76

0.72

0.04

540.7

736.4

754.0

771.8

17.8

to_charptr_strf_tr.cpp

0.77

0.73

0.04

541.2

725.0

746.6

768.5

21.9

to_charptr_fmtlib_c.cpp

0.95

0.90

0.05

309.9

380.3

413.2

438.0

24.7

to_charptr_fmtlib.cpp

1.19

1.14

0.05

325.2

367.2

386.1

405.0

18.9

to_charptr_sprintf.cpp

0.02

0.02

0.00

8.4

17.8

22.6

27.3

4.7

to_string_strf.cpp

0.81

0.77

0.04

546.6

759.4

778.0

800.9

22.9

to_string_strf_tr.cpp

0.84

0.79

0.04

547.2

753.1

779.9

806.9

27.0

to_string_fmtlib_c.cpp

1.02

0.97

0.04

300.7

410.3

448.1

481.8

33.7

to_string_fmtlib.cpp

0.44

0.40

0.03

297.2

311.8

321.1

326.4

5.3

to_FILE_strf.cpp

0.76

0.71

0.04

540.5

732.4

745.9

759.8

13.8

to_FILE_strf_tr.cpp

0.77

0.73

0.04

540.9

720.9

738.6

760.6

22.0

to_FILE_fmtlib.cpp

0.42

0.39

0.03

297.0

306.7

311.5

316.3

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

8.4

18.0

18.7

23.6

4.8

to_ostream_strf.cpp

0.80

0.76

0.04

540.8

739.9

757.5

775.3

17.8

to_ostream_strf_tr.cpp

0.82

0.77

0.04

541.3

722.9

740.5

762.5

21.9

to_ostream_fmtlib.cpp

0.53

0.49

0.03

297.7

307.2

311.9

316.7

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

0.99

0.95

0.04

64.0

259.1

276.9

295.0

18.1

to_charptr_strf_tr.cpp

1.01

0.96

0.04

64.4

255.4

273.3

295.4

22.2

to_charptr_fmtlib_c.cpp

1.31

1.25

0.05

52.4

132.0

165.4

198.8

33.4

to_charptr_fmtlib.cpp

1.60

1.55

0.05

82.5

124.9

144.1

167.3

23.3

to_string_strf.cpp

1.06

1.01

0.04

70.2

286.4

309.3

332.4

23.2

to_string_strf_tr.cpp

1.08

1.03

0.04

71.1

287.2

310.1

337.4

27.2

to_string_fmtlib_c.cpp

1.33

1.28

0.05

59.1

174.3

216.6

254.9

38.2

to_string_fmtlib.cpp

1.69

1.63

0.05

91.7

147.9

172.0

200.1

28.1

to_FILE_strf.cpp

0.99

0.94

0.04

63.7

251.0

268.9

287.1

18.1

to_FILE_strf_tr.cpp

1.00

0.96

0.04

64.1

247.3

269.3

287.5

18.1

to_FILE_fmtlib.cpp

1.71

1.66

0.05

97.8

145.0

168.6

196.3

27.7

to_ostream_strf.cpp

1.04

0.99

0.04

64.0

264.0

281.9

299.9

18.1

to_ostream_strf_tr.cpp

1.05

1.01

0.04

64.6

249.4

271.4

289.4

18.1

to_ostream_fmtlib.cpp

1.59

1.54

0.05

86.2

128.7

147.9

171.2

23.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.82

0.78

0.03

543.0

697.1

735.5

773.8

38.3

to_charptr_strf_tr.cpp

0.85

0.81

0.03

543.6

678.8

721.3

759.6

38.3

to_charptr_fmtlib_c.cpp

1.15

1.10

0.04

320.7

600.0

735.5

875.2

139.6

to_charptr_fmtlib.cpp

1.64

1.59

0.05

357.2

388.1

405.6

423.1

17.5

to_charptr_sprintf.cpp

0.02

0.02

0.00

8.4

17.8

22.6

27.3

4.7

to_string_strf.cpp

0.94

0.90

0.04

552.6

819.2

871.2

931.4

60.2

to_string_strf_tr.cpp

1.01

0.97

0.04

556.8

816.0

892.6

969.2

76.6

to_string_fmtlib_c.cpp

1.35

1.29

0.05

328.0

658.4

819.6

984.8

165.2

to_string_fmtlib.cpp

0.45

0.42

0.02

297.3

338.4

356.9

375.5

18.5

to_FILE_strf.cpp

0.83

0.79

0.03

543.0

706.1

744.7

783.2

38.5

to_FILE_strf_tr.cpp

0.86

0.82

0.04

547.7

686.7

729.4

767.9

38.5

to_FILE_fmtlib.cpp

0.42

0.39

0.02

297.0

306.7

311.5

316.3

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

8.4

18.0

22.8

23.6

0.7

to_ostream_strf.cpp

0.87

0.83

0.04

543.3

702.3

740.7

779.1

38.4

to_ostream_strf_tr.cpp

0.90

0.86

0.04

548.0

683.1

725.6

764.0

38.4

to_ostream_fmtlib.cpp

0.53

0.50

0.03

297.7

307.2

311.9

316.7

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

1.42

1.37

0.04

79.6

378.0

424.9

467.7

42.8

to_charptr_strf_tr.cpp

1.31

1.26

0.04

77.0

233.9

280.8

323.6

42.8

to_charptr_fmtlib_c.cpp

1.70

1.65

0.05

68.0

351.8

491.7

631.6

139.9

to_charptr_fmtlib.cpp

2.34

2.27

0.06

109.2

144.1

161.6

179.1

17.5

to_string_strf.cpp

1.65

1.60

0.05

97.8

586.5

643.3

712.4

69.1

to_string_strf_tr.cpp

1.59

1.55

0.04

94.4

419.3

492.5

569.8

77.3

to_string_fmtlib_c.cpp

1.80

1.74

0.05

73.5

392.4

553.8

711.0

157.3

to_string_fmtlib.cpp

2.36

2.30

0.06

118.2

221.6

273.4

325.1

51.7

to_FILE_strf.cpp

1.46

1.40

0.05

83.8

398.6

437.4

476.2

38.8

to_FILE_strf_tr.cpp

1.34

1.29

0.04

81.1

242.3

289.3

336.3

47.0

to_FILE_fmtlib.cpp

2.39

2.33

0.06

119.3

200.6

243.3

281.9

38.6

to_ostream_strf.cpp

1.50

1.45

0.05

79.9

382.1

420.9

459.6

38.8

to_ostream_strf_tr.cpp

1.39

1.34

0.04

81.4

238.7

285.6

332.5

46.9

to_ostream_fmtlib.cpp

2.26

2.20

0.05

111.8

146.8

164.3

181.8

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

0.78

0.05

1277.7

6221.6

8568.4

10911.0

2342.6

to_charptr_strf_tr.cpp

0.84

0.79

0.04

1303.7

6693.9

9113.5

11528.9

2415.4

to_charptr_fmtlib_c.cpp

0.99

0.94

0.05

863.3

6502.7

8914.2

11330.3

2416.2

to_charptr_fmtlib.cpp

0.98

0.94

0.04

879.7

5879.9

8274.4

10668.9

2394.5

to_charptr_sprintf.cpp

0.02

0.02

0.00

28.6

204.0

293.7

383.5

89.7

to_string_strf.cpp

0.87

0.82

0.04

1412.0

6830.7

9410.2

11989.7

2579.5

to_string_strf_tr.cpp

0.88

0.83

0.04

1439.1

7333.9

9993.5

12648.9

2655.4

to_string_fmtlib_c.cpp

1.06

1.01

0.05

922.7

7119.4

9764.2

12418.7

2654.5

to_string_fmtlib.cpp

0.49

0.46

0.03

642.8

3151.3

4266.5

5385.8

1119.3

to_FILE_strf.cpp

0.83

0.78

0.05

1279.6

6234.7

8584.9

10935.0

2350.1

to_FILE_strf_tr.cpp

0.84

0.80

0.04

1305.6

6707.9

9130.8

11549.6

2418.8

to_FILE_fmtlib.cpp

0.48

0.44

0.03

551.4

2749.1

3701.4

4649.7

948.2

to_FILE_fprintf.cpp

0.02

0.02

0.00

28.5

201.4

285.9

374.5

88.5

to_ostream_strf.cpp

0.88

0.83

0.04

1322.3

6249.2

8584.9

10920.4

2335.6

to_ostream_strf_tr.cpp

0.89

0.84

0.04

1348.5

6728.5

9136.8

11541.0

2404.2

to_ostream_fmtlib.cpp

0.59

0.55

0.03

631.5

3126.9

4247.7

5364.4

1116.7

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

0.86

0.05

877.3

6505.6

9194.6

11883.5

2688.9

to_charptr_strf_tr.cpp

0.92

0.87

0.05

898.2

6963.1

9718.0

12468.8

2750.7

to_charptr_fmtlib_c.cpp

1.24

1.18

0.05

775.6

7455.7

10389.9

13324.1

2934.2

to_charptr_fmtlib.cpp

1.24

1.17

0.06

793.1

6816.1

9724.0

12631.9

2907.9

to_string_strf.cpp

0.96

0.91

0.05

1012.7

7133.5

10064.1

12994.6

2930.5

to_string_strf_tr.cpp

0.97

0.92

0.05

1038.9

7621.8

10625.5

13629.0

3003.6

to_string_fmtlib_c.cpp

1.27

1.21

0.06

900.2

7979.8

11068.1

14160.8

3092.7

to_string_fmtlib.cpp

1.27

1.21

0.06

951.3

7495.0

10628.1

13765.3

3137.2

to_FILE_strf.cpp

0.92

0.87

0.05

879.4

6522.2

9216.2

11910.0

2693.9

to_FILE_strf_tr.cpp

0.93

0.88

0.05

900.3

6980.5

9740.4

12496.1

2755.7

to_FILE_fmtlib.cpp

1.29

1.22

0.07

930.9

7677.9

10907.2

14132.5

3225.3

to_ostream_strf.cpp

0.97

0.91

0.05

922.1

6537.1

9216.8

11896.4

2679.6

to_ostream_strf_tr.cpp

0.98

0.92

0.05

943.2

7001.7

9747.2

12488.6

2741.4

to_ostream_fmtlib.cpp

1.20

1.14

0.06

862.7

6822.3

9675.6

12524.7

2849.2

GCC 10.2.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

1.03

0.98

0.05

541.2

750.0

793.5

837.1

43.6

to_charptr_strf_tr.cpp

1.04

0.98

0.05

540.4

685.1

749.1

817.4

68.3

to_charptr_fmtlib_c.cpp

1.21

1.15

0.06

310.5

374.5

404.0

429.5

25.5

to_charptr_fmtlib.cpp

1.48

1.42

0.05

335.6

383.4

409.3

431.1

21.8

to_charptr_sprintf.cpp

0.02

0.02

0.00

8.4

17.8

22.6

27.3

4.7

to_string_strf.cpp

1.08

1.03

0.05

545.9

713.1

794.6

872.0

77.5

to_string_strf_tr.cpp

1.11

1.05

0.05

546.3

717.7

795.0

876.6

81.6

to_string_fmtlib_c.cpp

1.29

1.22

0.05

306.0

411.9

446.3

476.6

30.3

to_string_fmtlib.cpp

0.68

0.63

0.04

303.6

322.8

332.4

342.0

9.6

to_FILE_strf.cpp

1.03

0.99

0.04

541.0

745.0

788.6

828.2

39.6

to_FILE_strf_tr.cpp

1.04

0.98

0.05

540.2

681.0

749.2

813.5

64.3

to_FILE_fmtlib.cpp

0.65

0.62

0.03

303.4

313.1

317.9

322.7

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

8.4

18.0

18.7

23.6

4.8

to_ostream_strf.cpp

1.06

1.01

0.05

541.3

756.0

799.5

843.1

43.7

to_ostream_strf_tr.cpp

1.06

1.01

0.05

540.6

685.3

749.4

813.6

64.2

to_ostream_fmtlib.cpp

0.80

0.75

0.04

304.1

313.6

318.3

323.1

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

1.22

0.06

58.6

298.1

354.8

411.7

56.9

to_charptr_strf_tr.cpp

1.27

1.22

0.05

57.8

229.0

310.4

391.9

81.5

to_charptr_fmtlib_c.cpp

1.59

1.52

0.06

50.5

124.0

158.3

192.7

34.4

to_charptr_fmtlib.cpp

1.90

1.83

0.07

81.8

152.9

192.5

228.1

35.6

to_string_strf.cpp

1.32

1.27

0.05

63.7

266.0

360.7

455.5

94.8

to_string_strf_tr.cpp

1.35

1.29

0.05

64.1

266.4

365.2

460.0

94.8

to_string_fmtlib_c.cpp

1.62

1.55

0.06

58.0

178.0

213.1

252.4

39.2

to_string_fmtlib.cpp

1.98

1.91

0.06

90.8

156.0

190.6

221.1

30.5

to_FILE_strf.cpp

1.27

1.22

0.05

58.4

291.3

348.1

405.1

57.0

to_FILE_strf_tr.cpp

1.27

1.22

0.05

57.7

229.0

310.5

388.0

77.5

to_FILE_fmtlib.cpp

2.00

1.94

0.06

96.9

152.6

182.4

212.3

29.9

to_ostream_strf.cpp

1.30

1.24

0.05

58.8

304.0

360.7

417.7

56.9

to_ostream_strf_tr.cpp

1.29

1.24

0.05

58.0

229.2

310.6

388.1

77.4

to_ostream_fmtlib.cpp

1.89

1.82

0.06

85.3

136.7

166.5

192.2

25.7

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

1.05

0.05

543.9

757.4

828.9

896.5

67.6

to_charptr_strf_tr.cpp

1.11

1.06

0.05

543.8

732.8

825.2

917.6

92.4

to_charptr_fmtlib_c.cpp

1.42

1.36

0.05

325.6

598.2

734.5

866.6

132.2

to_charptr_fmtlib.cpp

1.92

1.86

0.05

357.7

367.1

371.8

376.6

4.7

to_charptr_sprintf.cpp

0.02

0.02

0.00

8.4

17.8

22.6

27.3

4.7

to_string_strf.cpp

1.20

1.15

0.05

552.3

804.3

930.3

1056.2

126.0

to_string_strf_tr.cpp

1.26

1.21

0.04

553.0

834.6

977.5

1116.2

138.7

to_string_fmtlib_c.cpp

1.57

1.52

0.05

328.9

575.6

704.9

822.0

117.1

to_string_fmtlib.cpp

0.69

0.65

0.03

303.7

344.8

367.4

385.9

18.5

to_FILE_strf.cpp

1.11

1.05

0.05

548.0

761.8

833.6

905.4

71.8

to_FILE_strf_tr.cpp

1.12

1.07

0.04

548.0

749.6

850.4

951.1

100.8

to_FILE_fmtlib.cpp

0.65

0.62

0.03

303.4

313.1

317.9

322.7

4.8

to_FILE_fprintf.cpp

0.02

0.01

0.00

8.4

18.0

22.8

23.6

0.7

to_ostream_strf.cpp

1.13

1.08

0.04

548.2

758.2

829.8

901.5

71.7

to_ostream_strf_tr.cpp

1.15

1.09

0.05

548.2

745.4

846.0

946.7

100.6

to_ostream_fmtlib.cpp

0.80

0.75

0.04

304.1

313.6

318.3

323.1

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

1.71

1.66

0.05

79.0

446.3

542.2

625.8

83.6

to_charptr_strf_tr.cpp

1.57

1.51

0.05

71.0

250.8

342.8

430.6

87.9

to_charptr_fmtlib_c.cpp

1.97

1.91

0.06

62.3

352.3

497.2

638.1

140.8

to_charptr_fmtlib.cpp

2.57

2.49

0.07

103.2

134.1

151.6

169.1

17.5

to_string_strf.cpp

1.94

1.88

0.06

99.0

659.9

910.3

1164.8

254.5

to_string_strf_tr.cpp

1.85

1.79

0.05

89.2

424.0

587.6

751.1

163.6

to_string_fmtlib_c.cpp

2.08

2.02

0.06

72.1

402.1

560.6

723.2

162.6

to_string_fmtlib.cpp

2.70

2.63

0.06

116.5

203.6

243.1

286.7

43.6

to_FILE_strf.cpp

1.75

1.70

0.05

79.0

463.0

563.0

646.7

83.7

to_FILE_strf_tr.cpp

1.61

1.55

0.05

75.2

271.5

371.7

467.9

96.1

to_FILE_fmtlib.cpp

2.72

2.65

0.06

117.7

203.6

246.5

289.5

43.0

to_ostream_strf.cpp

1.78

1.71

0.06

79.3

442.2

534.0

617.6

83.6

to_ostream_strf_tr.cpp

1.63

1.58

0.05

71.3

267.5

363.6

459.6

96.1

to_ostream_fmtlib.cpp

2.54

2.47

0.06

106.1

141.1

158.6

172.1

13.4

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

1.08

0.06

1185.6

5418.9

7410.2

9401.9

1991.7

to_charptr_strf_tr.cpp

1.15

1.09

0.05

1214.5

5954.5

8046.9

10135.3

2088.4

to_charptr_fmtlib_c.cpp

1.29

1.23

0.06

786.0

5840.6

7959.7

10083.7

2124.0

to_charptr_fmtlib.cpp

1.29

1.22

0.06

802.1

5213.2

7316.5

9419.8

2103.3

to_charptr_sprintf.cpp

0.02

0.02

0.00

28.1

199.7

287.5

371.3

83.7

to_string_strf.cpp

1.18

1.13

0.05

1315.9

6210.1

8529.1

10844.5

2315.4

to_string_strf_tr.cpp

1.21

1.14

0.06

1339.1

6715.8

9112.0

11512.6

2400.6

to_string_fmtlib_c.cpp

1.38

1.31

0.06

821.7

6477.0

8851.6

11235.2

2383.5

to_string_fmtlib.cpp

0.74

0.70

0.04

538.6

2416.9

3224.4

4036.0

811.6

to_FILE_strf.cpp

1.14

1.08

0.05

1184.7

5400.6

7381.0

9361.7

1980.7

to_FILE_strf_tr.cpp

1.15

1.09

0.05

1213.6

5937.1

8018.4

10099.9

2081.5

to_FILE_fmtlib.cpp

0.72

0.68

0.04

463.0

1923.3

2512.4

3097.4

585.0

to_FILE_fprintf.cpp

0.02

0.02

0.00

28.0

196.8

279.2

365.7

86.5

to_ostream_strf.cpp

1.16

1.11

0.05

1195.5

5409.0

7387.7

9366.8

1979.1

to_ostream_strf_tr.cpp

1.18

1.12

0.06

1224.6

5951.7

8031.4

10107.2

2075.8

to_ostream_fmtlib.cpp

0.87

0.82

0.04

517.4

2347.7

3141.5

3931.1

789.6

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

1.16

0.06

784.8

5713.5

8052.5

10395.9

2343.5

to_charptr_strf_tr.cpp

1.24

1.18

0.06

812.7

6234.2

8667.2

11100.4

2433.2

to_charptr_fmtlib_c.cpp

1.57

1.49

0.07

694.3

6799.8

9442.8

12093.7

2651.0

to_charptr_fmtlib.cpp

1.55

1.48

0.06

711.6

6157.5

8776.2

11398.9

2622.8

to_string_strf.cpp

1.28

1.22

0.06

912.0

6519.4

9189.0

11863.1

2674.1

to_string_strf_tr.cpp

1.30

1.24

0.06

938.3

7010.0

9753.8

12501.9

2748.1

to_string_fmtlib_c.cpp

1.60

1.52

0.07

791.9

7345.1

10168.1

12999.6

2831.6

to_string_fmtlib.cpp

1.59

1.51

0.07

847.9

6863.0

9743.0

12618.9

2875.9

to_FILE_strf.cpp

1.24

1.17

0.06

784.1

5698.7

8028.3

10362.4

2334.1

to_FILE_strf_tr.cpp

1.24

1.18

0.06

812.1

6220.1

8643.7

11067.4

2423.8

to_FILE_fmtlib.cpp

1.61

1.53

0.07

851.9

7091.1

10069.7

13044.1

2974.5

to_ostream_strf.cpp

1.26

1.19

0.06

795.0

5707.5

8035.8

10368.5

2332.7

to_ostream_strf_tr.cpp

1.27

1.20

0.06

823.1

6239.3

8657.4

11079.9

2422.4

to_ostream_fmtlib.cpp

1.52

1.45

0.07

744.4

6135.3

8703.2

11275.2

2572.0