diff options
author | aunsane <aunsane@gmail.com> | 2018-04-27 21:33:17 +0300 |
---|---|---|
committer | aunsane <aunsane@gmail.com> | 2018-04-27 21:33:17 +0300 |
commit | e1ec72eab6d00b3ba38e5932bc88920f103b6e4a (patch) | |
tree | 999de2725a83e30fbbf6576200525d4ef0c5fe38 /libs/tdlib/td/benchmark/bench_log.cpp | |
parent | b9ce1d4d98525490ca1a38e2d9fd4f3369adb3e0 (diff) |
Telegram: initial commit
- tdlib moved to telegram dir
Diffstat (limited to 'libs/tdlib/td/benchmark/bench_log.cpp')
-rw-r--r-- | libs/tdlib/td/benchmark/bench_log.cpp | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/libs/tdlib/td/benchmark/bench_log.cpp b/libs/tdlib/td/benchmark/bench_log.cpp deleted file mode 100644 index a57b1b9b42..0000000000 --- a/libs/tdlib/td/benchmark/bench_log.cpp +++ /dev/null @@ -1,163 +0,0 @@ -// -// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018 -// -// 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/utils/benchmark.h" -#include "td/utils/logging.h" - -#include <cstdio> -#include <fstream> -#include <iostream> -#include <mutex> -#include <ostream> -#include <streambuf> -#include <string> - -#include <unistd.h> - -std::string create_tmp_file() { -#if TD_ANDROID - std::string name = "/data/local/tmp/large_file.txt"; - unlink(name.c_str()); - return name; -#else - char file_name[] = "largefileXXXXXX"; - int fd = mkstemp(file_name); - if (fd == -1) { - perror("Can't cretate temporary file"); - } - CHECK(fd != -1); - - close(fd); - return file_name; -#endif -} - -class IostreamWriteBench : public td::Benchmark { - protected: - std::string file_name_; - std::ofstream stream; - enum { buffer_size = 1 << 20 }; - char buffer[buffer_size]; - - public: - std::string get_description() const override { - return "ostream (to file, no buf, no flush)"; - } - - void start_up() override { - file_name_ = create_tmp_file(); - stream.open(file_name_.c_str()); - CHECK(stream.is_open()); - // stream.rdbuf()->pubsetbuf(buffer, buffer_size); - } - - void run(int n) override { - for (int i = 0; i < n; i++) { - stream << "This is just for test" << 987654321 << '\n'; - } - } - - void tear_down() override { - stream.close(); - unlink(file_name_.c_str()); - } -}; - -class FILEWriteBench : public td::Benchmark { - protected: - std::string file_name_; - FILE *file; - enum { buffer_size = 1 << 20 }; - char buffer[buffer_size]; - - public: - std::string get_description() const override { - return "std::fprintf (to file, no buf, no flush)"; - } - - void start_up() override { - file_name_ = create_tmp_file(); - file = fopen(file_name_.c_str(), "w"); - // setvbuf(file, buffer, _IOFBF, buffer_size); - } - - void run(int n) override { - for (int i = 0; i < n; i++) { - std::fprintf(file, "This is just for test%d\n", 987654321); - // std::fflush(file); - } - } - - void tear_down() override { - std::fclose(file); - unlink(file_name_.c_str()); - } -}; - -#if TD_ANDROID -#include <android/log.h> -#define ALOG(...) __android_log_print(ANDROID_LOG_VERBOSE, "XXX", __VA_ARGS__) -class ALogWriteBench : public td::Benchmark { - public: - std::string get_description() const override { - return "android_log"; - } - void start_up() override { - } - void run(int n) override { - for (int i = 0; i < n; i++) { - ALOG("This is just for test%d\n", 987654321); - } - } - void tear_down() override { - } -}; -#endif - -class LogWriteBench : public td::Benchmark { - protected: - std::string file_name_; - std::ofstream stream; - std::streambuf *old_buf; - enum { buffer_size = 1 << 20 }; - char buffer[buffer_size]; - - public: - std::string get_description() const override { - return "td_log (slow in debug mode)"; - } - - void start_up() override { - file_name_ = create_tmp_file(); - stream.open(file_name_.c_str()); - CHECK(stream.is_open()); - old_buf = std::cerr.rdbuf(stream.rdbuf()); - } - - void run(int n) override { - for (int i = 0; i < n; i++) { - LOG(DEBUG) << "This is just for test" << 987654321; - } - } - - void tear_down() override { - stream.close(); - unlink(file_name_.c_str()); - std::cerr.rdbuf(old_buf); - } -}; - -std::mutex mutex; - -int main() { - td::bench(LogWriteBench()); -#if TD_ANDROID - td::bench(ALogWriteBench()); -#endif - td::bench(IostreamWriteBench()); - td::bench(FILEWriteBench()); - return 0; -} |