summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tdlib/td/benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/tdlib/td/benchmark')
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/CMakeLists.txt4
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_actor.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_crypto.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_db.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_empty.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_handshake.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_http.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_http_reader.cpp5
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_http_server.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_http_server_cheat.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_http_server_fast.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_log.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_misc.cpp160
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_queue.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/bench_tddb.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/check_proxy.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/check_tls.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/hashmap_build.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/hashset_memory.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/rmdir.cpp2
-rw-r--r--protocols/Telegram/tdlib/td/benchmark/wget.cpp2
21 files changed, 170 insertions, 35 deletions
diff --git a/protocols/Telegram/tdlib/td/benchmark/CMakeLists.txt b/protocols/Telegram/tdlib/td/benchmark/CMakeLists.txt
index 53fbdede52..cdf359e956 100644
--- a/protocols/Telegram/tdlib/td/benchmark/CMakeLists.txt
+++ b/protocols/Telegram/tdlib/td/benchmark/CMakeLists.txt
@@ -7,7 +7,7 @@ if (NOT OPENSSL_FOUND)
find_package(ZLIB REQUIRED)
endif()
-#TODO: all benchmarks in one file
+# TODO: all benchmarks in one file
add_executable(bench_crypto bench_crypto.cpp)
target_link_libraries(bench_crypto PRIVATE tdutils ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES})
if (WIN32)
@@ -38,7 +38,7 @@ add_executable(bench_http_reader bench_http_reader.cpp)
target_link_libraries(bench_http_reader PRIVATE tdnet tdutils)
add_executable(bench_handshake bench_handshake.cpp)
-target_link_libraries(bench_handshake PRIVATE tdcore tdutils)
+target_link_libraries(bench_handshake PRIVATE tdmtproto tdutils)
add_executable(bench_db bench_db.cpp)
target_link_libraries(bench_db PRIVATE tdactor tddb tdutils)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_actor.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_actor.cpp
index 7045b80292..c336547b13 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_actor.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_actor.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_crypto.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_crypto.cpp
index 98db8cf1e7..307254c92b 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_crypto.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_crypto.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_db.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_db.cpp
index b47fa98bb1..e4a1d617d0 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_db.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_db.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_empty.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_empty.cpp
index bd51e9f464..1d2aeff92a 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_empty.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_empty.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_handshake.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_handshake.cpp
index 853da05e3e..cf7bcb0b9c 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_handshake.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_handshake.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_http.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_http.cpp
index a1ae4f6702..cf281eea68 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_http.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_http.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_http_reader.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_http_reader.cpp
index b4e865ba7a..fcf72390d3 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_http_reader.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_http_reader.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -47,6 +47,7 @@ class HttpReaderBench final : public td::Benchmark {
td::HttpReader http_reader_;
void start_up() final {
+ writer_ = {};
reader_ = writer_.extract_reader();
http_reader_.init(&reader_, 10000, 0);
}
@@ -74,6 +75,7 @@ class BufferBench final : public td::Benchmark {
td::HttpReader http_reader_;
void start_up() final {
+ writer_ = {};
reader_ = writer_.extract_reader();
}
};
@@ -104,6 +106,7 @@ class FindBoundaryBench final : public td::Benchmark {
td::HttpReader http_reader_;
void start_up() final {
+ writer_ = {};
reader_ = writer_.extract_reader();
}
};
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_http_server.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_http_server.cpp
index d41328e2ad..9eeecc956d 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_http_server.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_http_server.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_http_server_cheat.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_http_server_cheat.cpp
index 8fc5abe01f..327549bc70 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_http_server_cheat.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_http_server_cheat.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_http_server_fast.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_http_server_fast.cpp
index af23dfc9c5..1b9373b231 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_http_server_fast.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_http_server_fast.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_log.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_log.cpp
index 3082350bfb..d031bd6511 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_log.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_log.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_misc.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_misc.cpp
index 9089890fb9..bfde3ab7fa 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_misc.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_misc.cpp
@@ -1,12 +1,14 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
+#include "td/telegram/td_api.h"
#include "td/telegram/telegram_api.h"
#include "td/telegram/telegram_api.hpp"
+#include "td/utils/algorithm.h"
#include "td/utils/benchmark.h"
#include "td/utils/common.h"
#include "td/utils/logging.h"
@@ -17,9 +19,12 @@
#include "td/utils/port/RwMutex.h"
#include "td/utils/port/Stat.h"
#include "td/utils/port/thread.h"
+#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
@@ -46,11 +51,11 @@ class F {
template <class T>
void operator()(const T &x) const {
- sum += static_cast<td::uint32>(x.get_id());
+ sum += static_cast<td::uint32>(reinterpret_cast<std::uintptr_t>(&x));
}
};
-BENCH(Call, "TL Call") {
+BENCH(TlCall, "TL Call") {
td::tl_object_ptr<td::telegram_api::Function> x = td::make_tl_object<td::telegram_api::account_getWallPapers>(0);
td::uint32 res = 0;
F f(res);
@@ -60,6 +65,67 @@ BENCH(Call, "TL Call") {
td::do_not_optimize_away(res);
}
+static td::td_api::object_ptr<td::td_api::file> get_file_object() {
+ return td::td_api::make_object<td::td_api::file>(
+ 12345, 123456, 123456,
+ td::td_api::make_object<td::td_api::localFile>(
+ "/android/data/0/data/org.telegram.data/files/photos/12345678901234567890_123.jpg", true, true, false, true,
+ 0, 123456, 123456),
+ td::td_api::make_object<td::td_api::remoteFile>("abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacaba",
+ "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());
+
+ std::size_t res = 0;
+ for (int i = 0; i < n; i++) {
+ res += to_string(x).size();
+ }
+ td::do_not_optimize_away(res);
+}
+
+BENCH(TlToStringMessage, "TL to_string message") {
+ auto x = td::td_api::make_object<td::td_api::message>();
+ x->id_ = 123456000111;
+ x->sender_id_ = td::td_api::make_object<td::td_api::messageSenderUser>(123456000112);
+ x->chat_id_ = 123456000112;
+ x->sending_state_ = td::td_api::make_object<td::td_api::messageSendingStatePending>(0);
+ x->date_ = 1699999999;
+ auto photo = td::td_api::make_object<td::td_api::photo>();
+ for (int i = 0; i < 4; i++) {
+ photo->sizes_.push_back(td::td_api::make_object<td::td_api::photoSize>(
+ "a", get_file_object(), 160, 160,
+ td::vector<td::int32>{10000, 20000, 30000, 50000, 70000, 90000, 120000, 150000, 180000, 220000}));
+ }
+ x->content_ = td::td_api::make_object<td::td_api::messagePhoto>(
+ std::move(photo), td::td_api::make_object<td::td_api::formattedText>(), false, false, false);
+
+ std::size_t res = 0;
+ for (int i = 0; i < n; i++) {
+ res += to_string(x).size();
+ }
+ td::do_not_optimize_away(res);
+}
+
#if !TD_EVENTFD_UNSUPPORTED
BENCH(EventFd, "EventFd") {
td::EventFd fd;
@@ -416,7 +482,7 @@ class IdDuplicateCheckerOld {
static td::string get_description() {
return "Old";
}
- td::Status check(td::int64 message_id) {
+ td::Status check(td::uint64 message_id) {
if (saved_message_ids_.size() == MAX_SAVED_MESSAGE_IDS) {
auto oldest_message_id = *saved_message_ids_.begin();
if (message_id < oldest_message_id) {
@@ -437,7 +503,7 @@ class IdDuplicateCheckerOld {
private:
static constexpr size_t MAX_SAVED_MESSAGE_IDS = 1000;
- std::set<td::int64> saved_message_ids_;
+ std::set<td::uint64> saved_message_ids_;
};
template <size_t MAX_SAVED_MESSAGE_IDS>
@@ -446,7 +512,7 @@ class IdDuplicateCheckerNew {
static td::string get_description() {
return PSTRING() << "New" << MAX_SAVED_MESSAGE_IDS;
}
- td::Status check(td::int64 message_id) {
+ td::Status check(td::uint64 message_id) {
auto insert_result = saved_message_ids_.insert(message_id);
if (!insert_result.second) {
return td::Status::Error(1, PSLICE() << "Ignore already processed message " << message_id);
@@ -464,7 +530,7 @@ class IdDuplicateCheckerNew {
}
private:
- std::set<td::int64> saved_message_ids_;
+ std::set<td::uint64> saved_message_ids_;
};
class IdDuplicateCheckerNewOther {
@@ -472,7 +538,7 @@ class IdDuplicateCheckerNewOther {
static td::string get_description() {
return "NewOther";
}
- td::Status check(td::int64 message_id) {
+ td::Status check(td::uint64 message_id) {
if (!saved_message_ids_.insert(message_id).second) {
return td::Status::Error(1, PSLICE() << "Ignore already processed message " << message_id);
}
@@ -490,7 +556,7 @@ class IdDuplicateCheckerNewOther {
private:
static constexpr size_t MAX_SAVED_MESSAGE_IDS = 1000;
- std::set<td::int64> saved_message_ids_;
+ std::set<td::uint64> saved_message_ids_;
};
class IdDuplicateCheckerNewSimple {
@@ -498,7 +564,7 @@ class IdDuplicateCheckerNewSimple {
static td::string get_description() {
return "NewSimple";
}
- td::Status check(td::int64 message_id) {
+ td::Status check(td::uint64 message_id) {
auto insert_result = saved_message_ids_.insert(message_id);
if (!insert_result.second) {
return td::Status::Error(1, "Ignore already processed message");
@@ -516,7 +582,7 @@ class IdDuplicateCheckerNewSimple {
private:
static constexpr size_t MAX_SAVED_MESSAGE_IDS = 1000;
- std::set<td::int64> saved_message_ids_;
+ std::set<td::uint64> saved_message_ids_;
};
template <size_t max_size>
@@ -525,7 +591,7 @@ class IdDuplicateCheckerArray {
static td::string get_description() {
return PSTRING() << "Array" << max_size;
}
- td::Status check(td::int64 message_id) {
+ td::Status check(td::uint64 message_id) {
if (end_pos_ == 2 * max_size) {
std::copy_n(&saved_message_ids_[max_size], max_size, &saved_message_ids_[0]);
end_pos_ = max_size;
@@ -550,7 +616,7 @@ class IdDuplicateCheckerArray {
}
private:
- std::array<td::int64, 2 * max_size> saved_message_ids_;
+ std::array<td::uint64, 2 * max_size> saved_message_ids_;
std::size_t end_pos_ = 0;
};
@@ -632,9 +698,75 @@ class DuplicateCheckerBenchEvenOdd final : public td::Benchmark {
}
};
+BENCH(AddToTopStd, "add_to_top std") {
+ td::vector<int> v;
+ for (int i = 0; i < n; i++) {
+ for (size_t j = 0; j < 10; j++) {
+ auto value = td::Random::fast(0, 9);
+ auto it = std::find(v.begin(), v.end(), value);
+ if (it == v.end()) {
+ if (v.size() == 8) {
+ v.back() = value;
+ } else {
+ v.push_back(value);
+ }
+ it = v.end() - 1;
+ }
+ std::rotate(v.begin(), it, it + 1);
+ }
+ }
+}
+
+BENCH(AddToTopTd, "add_to_top td") {
+ td::vector<int> v;
+ for (int i = 0; i < n; i++) {
+ for (size_t j = 0; j < 10; j++) {
+ td::add_to_top(v, 8, td::Random::fast(0, 9));
+ }
+ }
+}
+
+BENCH(AnyOfStd, "any_of std") {
+ td::vector<int> v;
+ for (int i = 0; i < 100; i++) {
+ v.push_back(i);
+ }
+ int res = 0;
+ for (int i = 0; i < n; i++) {
+ int rem = td::Random::fast(0, 127);
+ res += static_cast<int>(std::any_of(v.begin(), v.end(), [rem](int x) { return (x & 127) == rem; }));
+ }
+ td::do_not_optimize_away(res);
+}
+
+BENCH(AnyOfTd, "any_of td") {
+ td::vector<int> v;
+ for (int i = 0; i < 100; i++) {
+ v.push_back(i);
+ }
+ int res = 0;
+ for (int i = 0; i < n; i++) {
+ int rem = td::Random::fast(0, 127);
+ res += static_cast<int>(td::any_of(v, [rem](int x) { return (x & 127) == rem; }));
+ }
+ td::do_not_optimize_away(res);
+}
+
int main() {
SET_VERBOSITY_LEVEL(VERBOSITY_NAME(DEBUG));
+ td::bench(AnyOfStdBench());
+ td::bench(AnyOfTdBench());
+
+ td::bench(ToStringIntSmallBench());
+ td::bench(ToStringIntBigBench());
+
+ td::bench(AddToTopStdBench());
+ td::bench(AddToTopTdBench());
+
+ td::bench(TlToStringUpdateFileBench());
+ td::bench(TlToStringMessageBench());
+
td::bench(DuplicateCheckerBenchEvenOdd<IdDuplicateCheckerNew<1000>>());
td::bench(DuplicateCheckerBenchEvenOdd<IdDuplicateCheckerNew<300>>());
td::bench(DuplicateCheckerBenchEvenOdd<IdDuplicateCheckerArray<1000>>());
@@ -691,7 +823,7 @@ int main() {
td::bench(CreateFileBench());
td::bench(PwriteBench());
- td::bench(CallBench());
+ td::bench(TlCallBench());
#if !TD_THREAD_UNSUPPORTED
td::bench(ThreadNewBench());
#endif
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_queue.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_queue.cpp
index c28554c757..30571fd69f 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_queue.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_queue.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/bench_tddb.cpp b/protocols/Telegram/tdlib/td/benchmark/bench_tddb.cpp
index a2c4a80d32..b59589572e 100644
--- a/protocols/Telegram/tdlib/td/benchmark/bench_tddb.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/bench_tddb.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/check_proxy.cpp b/protocols/Telegram/tdlib/td/benchmark/check_proxy.cpp
index dcf49b5976..72893c5063 100644
--- a/protocols/Telegram/tdlib/td/benchmark/check_proxy.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/check_proxy.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/check_tls.cpp b/protocols/Telegram/tdlib/td/benchmark/check_tls.cpp
index 7b779dfdd0..9586df076e 100644
--- a/protocols/Telegram/tdlib/td/benchmark/check_tls.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/check_tls.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/hashmap_build.cpp b/protocols/Telegram/tdlib/td/benchmark/hashmap_build.cpp
index c536ab6020..9953c3ce49 100644
--- a/protocols/Telegram/tdlib/td/benchmark/hashmap_build.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/hashmap_build.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/hashset_memory.cpp b/protocols/Telegram/tdlib/td/benchmark/hashset_memory.cpp
index 18b9cd940c..fbd3a97290 100644
--- a/protocols/Telegram/tdlib/td/benchmark/hashset_memory.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/hashset_memory.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/rmdir.cpp b/protocols/Telegram/tdlib/td/benchmark/rmdir.cpp
index ffc51828f4..0ae93bfe87 100644
--- a/protocols/Telegram/tdlib/td/benchmark/rmdir.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/rmdir.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/protocols/Telegram/tdlib/td/benchmark/wget.cpp b/protocols/Telegram/tdlib/td/benchmark/wget.cpp
index f29e02c1e1..a5aae5fba5 100644
--- a/protocols/Telegram/tdlib/td/benchmark/wget.cpp
+++ b/protocols/Telegram/tdlib/td/benchmark/wget.cpp
@@ -1,5 +1,5 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)