aboutsummaryrefslogtreecommitdiffhomepage
path: root/benchmark
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2023-10-03 02:24:09 +0300
committerlevlam <levlam@telegram.org>2023-10-03 02:24:09 +0300
commit83b3d5768455506cecc5199f51294a406e273a3b (patch)
tree258a554587382130e3fd1d6eb3ff948ea1a0dc5f /benchmark
parentc299889991b475437585a9cf24f7ea7425b20b32 (diff)
Add StringBuilder::print_int benchmarks.
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/bench_misc.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/benchmark/bench_misc.cpp b/benchmark/bench_misc.cpp
index 0d688e1b6..7d4c9aa73 100644
--- a/benchmark/bench_misc.cpp
+++ b/benchmark/bench_misc.cpp
@@ -22,7 +22,9 @@
#include "td/utils/Random.h"
#include "td/utils/Slice.h"
#include "td/utils/SliceBuilder.h"
+#include "td/utils/StackAllocator.h"
#include "td/utils/Status.h"
+#include "td/utils/StringBuilder.h"
#include "td/utils/ThreadSafeCounter.h"
#if !TD_WINDOWS
@@ -73,6 +75,24 @@ static td::td_api::object_ptr<td::td_api::file> get_file_object() {
"abacabadabacabaeabacabadabacaba", false, true, 123456));
}
+BENCH(ToStringIntSmall, "to_string<int> small") {
+ auto buf = td::StackAllocator::alloc(1000);
+ td::StringBuilder sb(buf.as_slice());
+ for (int i = 0; i < n; i++) {
+ sb << td::Random::fast(0, 100);
+ sb.clear();
+ }
+}
+
+BENCH(ToStringIntBig, "to_string<int> big") {
+ auto buf = td::StackAllocator::alloc(1000);
+ td::StringBuilder sb(buf.as_slice());
+ for (int i = 0; i < n; i++) {
+ sb << 1234567890;
+ sb.clear();
+ }
+}
+
BENCH(TlToStringUpdateFile, "TL to_string updateFile") {
auto x = td::td_api::make_object<td::td_api::updateFile>(get_file_object());
@@ -709,6 +729,9 @@ BENCH(AddToTopTd, "add_to_top td") {
int main() {
SET_VERBOSITY_LEVEL(VERBOSITY_NAME(DEBUG));
+ td::bench(ToStringIntSmallBench());
+ td::bench(ToStringIntBigBench());
+
td::bench(AddToTopStdBench());
td::bench(AddToTopTdBench());