@@ -13,9 +13,9 @@ All results below are the median of 1000001 iterations of creating a formatted s
13
13
14
14
| Formatter | Duration (ns) |
15
15
| :-- | --: |
16
- | libfly | 1.626 |
17
- | STL IO Streams | 1.877 |
18
- | {fmt} | 0.586 |
16
+ | libfly | 1.093 |
17
+ | {fmt} | 0.609 |
18
+ | STL IO Streams | 1.812 |
19
19
20
20
### Formatting without floats
21
21
@@ -33,21 +33,31 @@ All results below are the median of 1000001 iterations of creating a formatted s
33
33
Each sample counts as 0.01 seconds.
34
34
% cumulative self self total
35
35
time seconds seconds calls ms/call ms/call name
36
- 15.49 0.47 0.11 1000001 0.00 0.00 fly::detail::BasicStringFormatter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, int, double, char const (&) [4], decltype(nullptr), char>::format(fly::detail::BasicFormatString<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, int, double, char const (&) [4], decltype(nullptr), char>&&)
37
- 5.63 0.59 0.04 2000002 0.00 0.00 void fly::detail::BasicStringFormatter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, int, double, char const (&) [4], decltype(nullptr), char>::format_value<double, false>(fly::detail::BasicFormatSpecifier<char>&&, double const&)
38
- 5.63 0.63 0.04 1000001 0.00 0.00 void fly::detail::BasicStringFormatter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, int, double, char const (&) [4], decltype(nullptr), char>::format_value<unsigned long, false>(fly::detail::BasicFormatSpecifier<char>&&, unsigned long, bool)
39
- 4.23 0.66 0.03 2000004 0.00 0.00 fly::detail::BasicStreamModifiers<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::BasicStreamModifiers(std::ostream&)
40
- 2.82 0.68 0.02 1000001 0.00 0.00 void fly::detail::BasicStringFormatter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, int, double, char const (&) [4], decltype(nullptr), char>::format_value<unsigned int, false>(fly::detail::BasicFormatSpecifier<char>&&, unsigned int, bool)
41
- 1.41 0.70 0.01 1000013 0.00 0.00 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)
42
- 1.41 0.71 0.01 1000001 0.00 0.00 std::enable_if<std::__or_<std::__or_<std::is_same<std::remove_cv<unsigned int>::type, signed char>, std::is_same<std::remove_cv<unsigned int>::type, short>, std::is_same<std::remove_cv<unsigned int>::type, int>, std::is_same<std::remove_cv<unsigned int>::type, long>, std::is_same<std::remove_cv<unsigned int>::type, long long> >, std::__or_<std::is_same<std::remove_cv<unsigned int>::type, unsigned char>, std::is_same<std::remove_cv<unsigned int>::type, unsigned short>, std::is_same<std::remove_cv<unsigned int>::type, unsigned int>, std::is_same<std::remove_cv<unsigned int>::type, unsigned long>, std::is_same<std::remove_cv<unsigned int>::type, unsigned long long> >, std::is_same<char, std::remove_cv<unsigned int>::type> >::value, std::to_chars_result>::type std::__to_chars_i<unsigned int>(char*, char*, unsigned int, int)
43
- 0.00 0.71 0.00 2000004 0.00 0.00 fly::detail::BasicStreamModifiers<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~BasicStreamModifiers()
44
- 0.00 0.71 0.00 2000002 0.00 0.00 fly::benchmark::Table<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double>::~Table()
45
- 0.00 0.71 0.00 1000001 0.00 0.00 void fly::detail::BasicStringFormatter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, int, double, char const (&) [4], decltype(nullptr), char>::format_value<unsigned char, false>(fly::detail::BasicFormatSpecifier<char>&&, unsigned char, bool)
46
- 0.00 0.71 0.00 1000001 0.00 0.00 std::enable_if<std::__or_<std::__or_<std::is_same<std::remove_cv<unsigned long>::type, signed char>, std::is_same<std::remove_cv<unsigned long>::type, short>, std::is_same<std::remove_cv<unsigned long>::type, int>, std::is_same<std::remove_cv<unsigned long>::type, long>, std::is_same<std::remove_cv<unsigned long>::type, long long> >, std::__or_<std::is_same<std::remove_cv<unsigned long>::type, unsigned char>, std::is_same<std::remove_cv<unsigned long>::type, unsigned short>, std::is_same<std::remove_cv<unsigned long>::type, unsigned int>, std::is_same<std::remove_cv<unsigned long>::type, unsigned long>, std::is_same<std::remove_cv<unsigned long>::type, unsigned long long> >, std::is_same<char, std::remove_cv<unsigned long>::type> >::value, std::to_chars_result>::type std::__to_chars_i<unsigned long>(char*, char*, unsigned long, int)
47
- 0.00 0.71 0.00 1196 0.00 0.00 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
48
- 0.00 0.71 0.00 1172 0.00 0.00 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
49
- 0.00 0.71 0.00 1016 0.00 0.00 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
50
- ```
36
+ 17.33 0.50 0.13 1000001 0.00 0.00 void fly::BasicString<char>::format_to<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, double, int, double, char const (&) [4], decltype(nullptr), char>(std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, fly::detail::BasicFormatString<char, std::type_identity<double>::type, std::type_identity<int>::type, std::type_identity<double>::type, std::type_identity<char const (&) [4]>::type, std::type_identity<decltype(nullptr)>::type, std::type_identity<char>::type>&&, double&&, int&&, double&&, char const (&) [4], decltype(nullptr)&&, char&&)
37
+ 6.67 0.55 0.05 2000003 0.00 0.00 void fly::Formatter<double, char, bool>::format<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(double, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
38
+ 5.33 0.59 0.04 2000003 0.00 0.00 fly::Formatter<double, char, bool>::format<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(double, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)::{lambda()#3}::operator()() const
39
+ 4.00 0.66 0.03 1000018 0.00 0.00 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)
40
+ 4.00 0.69 0.03 1000007 0.00 0.00 void fly::detail::format_standard_value<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, char>(fly::detail::StandardValue<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&, fly::detail::BasicFormatSpecifier<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>::char_type>&&)
41
+ 1.33 0.70 0.01 1000016 0.00 0.00 (anonymous namespace)::Base64::encode(std::filesystem::__cxx11::path const&, std::filesystem::__cxx11::path const&)
42
+ 1.33 0.71 0.01 1000007 0.00 0.00 void fly::Formatter<char, char, bool>::format_as_character<unsigned char, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned char, bool, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
43
+ 1.33 0.72 0.01 1000006 0.00 0.00 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)
44
+ 1.33 0.73 0.01 1000001 0.00 0.00 void fly::Formatter<int, char, bool>::append_number<unsigned int, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned int, int, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
45
+ 1.33 0.74 0.01 1000001 0.00 0.00 void fly::Formatter<int, char, bool>::format<unsigned int, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned int, bool, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
46
+ 1.33 0.75 0.01 1000001 0.00 0.00 fly::Formatter<unsigned long, char, bool>::format<unsigned long, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned long, bool, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)::{lambda()#1}::operator()() const
47
+ 0.00 0.75 0.00 2000003 0.00 0.00 void fly::detail::format_standard_value<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, double>(fly::detail::StandardValue<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&, fly::detail::BasicFormatSpecifier<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>::char_type>&&)
48
+ 0.00 0.75 0.00 1000007 0.00 0.00 void fly::Formatter<char, char, bool>::format<unsigned char, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned char, bool, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
49
+ 0.00 0.75 0.00 1000006 0.00 0.00 void fly::detail::format_string_value<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, char>(void const*, unsigned long, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&, fly::detail::BasicFormatSpecifier<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>::char_type>&&)
50
+ 0.00 0.75 0.00 1000006 0.00 0.00 void fly::Formatter<std::basic_string_view<char, std::char_traits<char> >, char, bool>::format<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(std::basic_string_view<char, std::char_traits<char> > const&, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
51
+ 0.00 0.75 0.00 1000001 0.00 0.00 void fly::detail::format_standard_value<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, decltype(nullptr)>(fly::detail::StandardValue<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&, fly::detail::BasicFormatSpecifier<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>::char_type>&&)
52
+ 0.00 0.75 0.00 1000001 0.00 0.00 void fly::detail::format_standard_value<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, int>(fly::detail::StandardValue<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&, fly::detail::BasicFormatSpecifier<fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>::char_type>&&)
53
+ 0.00 0.75 0.00 1000001 0.00 0.00 void fly::Formatter<unsigned long, char, bool>::append_number<unsigned long, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned long, int, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
54
+ 0.00 0.75 0.00 1000001 0.00 0.00 void fly::Formatter<unsigned long, char, bool>::format<unsigned long, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned long, bool, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)
55
+ 0.00 0.75 0.00 1000001 0.00 0.00 fly::Formatter<int, char, bool>::format<unsigned int, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char> >(unsigned int, bool, fly::detail::BasicFormatContext<std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>&)::{lambda()#1}::operator()() const
56
+ 0.00 0.75 0.00 95 0.00 0.00 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&) [clone .constprop.0]
57
+ 0.00 0.75 0.00 51 0.00 0.00 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
58
+ 0.00 0.75 0.00 47 0.00 0.00 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
59
+ 0.00 0.75 0.00 34 0.00 0.00 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
60
+ ```
51
61
52
62
### Formatting without floats
53
63
0 commit comments