diff --git a/bench/Makefile b/bench/Makefile
index 0dd4b19d..3a80fd77 100644
--- a/bench/Makefile
+++ b/bench/Makefile
@@ -3,91 +3,17 @@ CXXFLAGS = -march=native -Wall -Wextra -pedantic -std=c++11 -pthread -I../includ
CXX_RELEASE_FLAGS = -O3 -flto -DNDEBUG
-# g2log-async
-binaries=spdlog-bench spdlog-bench-mt spdlog-async spdlog-null-async \
- boost-bench boost-bench-mt \
- glog-bench glog-bench-mt \
- g3log-async \
- p7-bench p7-bench-mt \
- log4cpp-bench log4cpp-bench-mt \
- log4cplus-bench log4cplus-bench-mt \
- easylogging-bench easylogging-bench-mt easylogging-bench-async \
- plog-bench plog-bench-mt
+binaries=bench spdlog-null-async
all: $(binaries)
-spdlog-bench: spdlog-bench.cpp
- $(CXX) spdlog-bench.cpp -o spdlog-bench $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
+bench: bench.cpp
+ $(CXX) bench.cpp -o bench $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
-spdlog-bench-mt: spdlog-bench-mt.cpp
- $(CXX) spdlog-bench-mt.cpp -o spdlog-bench-mt $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
-
-spdlog-async: spdlog-async.cpp
- $(CXX) spdlog-async.cpp -o spdlog-async $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
-
spdlog-null-async: spdlog-null-async.cpp
$(CXX) spdlog-null-async.cpp -o spdlog-null-async $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
+
-BOOST_FLAGS = -DBOOST_LOG_DYN_LINK -I$(HOME)/include -I/usr/include -L$(HOME)/lib -lboost_log_setup -lboost_log -lboost_filesystem -lboost_system -lboost_thread -lboost_regex -lboost_date_time -lboost_chrono
-
-boost-bench: boost-bench.cpp
- $(CXX) boost-bench.cpp -o boost-bench $(CXXFLAGS) $(BOOST_FLAGS) $(CXX_RELEASE_FLAGS)
-
-boost-bench-mt: boost-bench-mt.cpp
- $(CXX) boost-bench-mt.cpp -o boost-bench-mt $(CXXFLAGS) $(BOOST_FLAGS) $(CXX_RELEASE_FLAGS)
-
-GLOG_FLAGS = -I$(HOME)/include -L$(HOME)/lib -lglog
-glog-bench: glog-bench.cpp
- $(CXX) glog-bench.cpp -o glog-bench $(CXXFLAGS) $(GLOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-glog-bench-mt: glog-bench-mt.cpp
- $(CXX) glog-bench-mt.cpp -o glog-bench-mt $(CXXFLAGS) $(GLOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-G2LOG_FLAGS = -I$(HOME)/include -L$(HOME)/lib -llib_g2logger
-g2log-async: g2log-async.cpp
- $(CXX) g2log-async.cpp -o g2log-async $(CXXFLAGS) $(G2LOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-G3LOG_FLAGS = -I$(HOME)/include -L$(HOME)/lib -lg3logger
-g3log-async: g3log-async.cpp
- $(CXX) g3log-async.cpp -o g3log-async $(CXXFLAGS) $(G3LOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-P7_FLAGS = -I$(HOME)/P7/Headers -I$(HOME)/include -L$(HOME)/lib -lP7
-p7-bench: p7-bench.cpp
- $(CXX) p7-bench.cpp -o p7-bench $(CXXFLAGS) $(P7_FLAGS) $(CXX_RELEASE_FLAGS)
-
-p7-bench-mt: p7-bench-mt.cpp
- $(CXX) p7-bench-mt.cpp -o p7-bench-mt $(CXXFLAGS) $(P7_FLAGS) $(CXX_RELEASE_FLAGS)
-
-LOG4CPP_FLAGS = -I$(HOME)/include -L$(HOME)/lib -llog4cpp
-log4cpp-bench: log4cpp-bench.cpp
- $(CXX) log4cpp-bench.cpp -o log4cpp-bench $(CXXFLAGS) $(LOG4CPP_FLAGS) $(CXX_RELEASE_FLAGS)
-
-log4cpp-bench-mt: log4cpp-bench-mt.cpp
- $(CXX) log4cpp-bench-mt.cpp -o log4cpp-bench-mt $(CXXFLAGS) $(LOG4CPP_FLAGS) $(CXX_RELEASE_FLAGS)
-
-LOG4CPLUS_FLAGS = -I$(HOME)/include -L$(HOME)/lib -llog4cplus
-log4cplus-bench: log4cplus-bench.cpp
- $(CXX) log4cplus-bench.cpp -o log4cplus-bench $(CXXFLAGS) $(LOG4CPLUS_FLAGS) $(CXX_RELEASE_FLAGS)
-
-log4cplus-bench-mt: log4cplus-bench-mt.cpp
- $(CXX) log4cplus-bench-mt.cpp -o log4cplus-bench-mt $(CXXFLAGS) $(LOG4CPLUS_FLAGS) $(CXX_RELEASE_FLAGS)
-
-EASYL_FLAGS = -I$(HOME)/easyloggingpp/src
-easylogging-bench: easylogging-bench.cpp
- $(CXX) easylogging-bench.cpp -o easylogging-bench $(CXXFLAGS) $(EASYL_FLAGS) $(CXX_RELEASE_FLAGS)
-
-easylogging-bench-mt: easylogging-bench-mt.cpp
- $(CXX) easylogging-bench-mt.cpp -o easylogging-bench-mt $(CXXFLAGS) $(EASYL_FLAGS) $(CXX_RELEASE_FLAGS)
-
-easylogging-bench-async: easylogging-bench-async.cpp
- $(CXX) easylogging-bench-async.cpp -o easylogging-bench-async $(CXXFLAGS) $(EASYL_FLAGS) $(CXX_RELEASE_FLAGS)
-
-PLOG_FLAGS = -I$(HOME)/include
-plog-bench: plog-bench.cpp
- $(CXX) plog-bench.cpp -o plog-bench $(CXXFLAGS) $(PLOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-plog-bench-mt: plog-bench-mt.cpp
- $(CXX) plog-bench-mt.cpp -o plog-bench-mt $(CXXFLAGS) $(PLOG_FLAGS) $(CXX_RELEASE_FLAGS)
.PHONY: clean
diff --git a/bench/Makefile.mingw b/bench/Makefile.mingw
deleted file mode 100644
index b4357be4..00000000
--- a/bench/Makefile.mingw
+++ /dev/null
@@ -1,57 +0,0 @@
-CXX ?= g++
-CXXFLAGS = -D_WIN32_WINNT=0x600 -march=native -Wall -Wextra -pedantic -std=c++11 -pthread -Wl,--no-as-needed -I../include
-CXX_RELEASE_FLAGS = -O3 -flto
-
-
-binaries=spdlog-bench spdlog-bench-mt spdlog-async boost-bench boost-bench-mt glog-bench glog-bench-mt g2log-async easylogging-bench easylogging-bench-mt
-
-all: $(binaries)
-
-spdlog-bench: spdlog-bench.cpp
- $(CXX) spdlog-bench.cpp -o spdlog-bench $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
-
-spdlog-bench-mt: spdlog-bench-mt.cpp
- $(CXX) spdlog-bench-mt.cpp -o spdlog-bench-mt $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
-
-spdlog-async: spdlog-async.cpp
- $(CXX) spdlog-async.cpp -o spdlog-async $(CXXFLAGS) $(CXX_RELEASE_FLAGS)
-
-
-BOOST_FLAGS = -DBOOST_LOG_DYN_LINK -I/home/gabi/devel/boost_1_56_0/ -L/home/gabi/devel/boost_1_56_0/stage/lib -lboost_log -lboost_log_setup -lboost_filesystem -lboost_system -lboost_thread -lboost_regex -lboost_date_time -lboost_chrono
-
-boost-bench: boost-bench.cpp
- $(CXX) boost-bench.cpp -o boost-bench $(CXXFLAGS) $(BOOST_FLAGS) $(CXX_RELEASE_FLAGS)
-
-boost-bench-mt: boost-bench-mt.cpp
- $(CXX) boost-bench-mt.cpp -o boost-bench-mt $(CXXFLAGS) $(BOOST_FLAGS) $(CXX_RELEASE_FLAGS)
-
-
-GLOG_FLAGS = -lglog
-glog-bench: glog-bench.cpp
- $(CXX) glog-bench.cpp -o glog-bench $(CXXFLAGS) $(GLOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-glog-bench-mt: glog-bench-mt.cpp
- $(CXX) glog-bench-mt.cpp -o glog-bench-mt $(CXXFLAGS) $(GLOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-
-G2LOG_FLAGS = -I/home/gabi/devel/g2log/g2log/src -L/home/gabi/devel/g2log/g2log -llib_g2logger
-g2log-async: g2log-async.cpp
- $(CXX) g2log-async.cpp -o g2log-async $(CXXFLAGS) $(G2LOG_FLAGS) $(CXX_RELEASE_FLAGS)
-
-
-EASYL_FLAGS = -I../../easylogging/src/
-easylogging-bench: easylogging-bench.cpp
- $(CXX) easylogging-bench.cpp -o easylogging-bench $(CXXFLAGS) $(EASYL_FLAGS) $(CXX_RELEASE_FLAGS)
-easylogging-bench-mt: easylogging-bench-mt.cpp
- $(CXX) easylogging-bench-mt.cpp -o easylogging-bench-mt $(CXXFLAGS) $(EASYL_FLAGS) $(CXX_RELEASE_FLAGS)
-
-.PHONY: clean
-
-clean:
- rm -f *.o logs/* $(binaries)
-
-
-rebuild: clean all
-
-
-
diff --git a/bench/README.md b/bench/README.md
deleted file mode 100644
index aed6ee9b..00000000
--- a/bench/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# loggers
-
-Name | License | Lang. | Year | Platform | Compiler | Dependence | URL
---- | --- | --- | --- | --- | --- | --- | ---
-Pantheios | BSD | C++ | 2017 | Windows, Linux, MacOSX | VC++, GCC(3.2+), Intel, Borland, Comeau, Digital Mars, Metrowerks | STLSoft | http://www.pantheios.org/
http://blog.pantheios.org/
https://github.com/synesissoftware/Pantheios
http://www.pantheios.org/performance.html
-Glog | 3-clause BSD| C++| 2017 | Windows, Linux, MacOSX | VC++, GCC, Clang, intel| Google gflags | https://github.com/google/glog
-G3log | Public Domain | C++11 | 2018 | Windows, Linux, MacOSX, iPhoneOS | VC++, GCC, Clang, MinGW | None | https://github.com/KjellKod/g3log
https://github.com/KjellKod/g3sinks
https://kjellkod.wordpress.com/2014/08/16/presenting-g3log-the-next-version-of-the-next-generation-of-loggers/
https://kjellkod.wordpress.com/2015/06/30/the-worlds-fastest-logger-vs-g3log/
-P7 | LGPL | C++, C, C#, Python | 2017 | Windows, Linux | VC++, GCC, Clang, MinGW | None | http://baical.net/p7.html
-log4cpp | LGPL | C++ | 2017 | Windows, Linux, MacOSX | VC++, GCC, Sun CC, OpenVMS | Boost | http://log4cpp.sourceforge.net/
-log4cplus | 2-clause BSD or Apache 2 | C++ | 2017 | Windows, Linux, MacOSX, Android | VC++, GCC, Clang | Boost | https://github.com/log4cplus/log4cplus
https://sourceforge.net/p/log4cplus/wiki/Home/
-Easylogging | MIT | C++11 | 2018 | Windows, Linux, MacOSX, iPhoneOS, Android | VC++, GCC, Clang, Intel, MinGW | None | https://github.com/muflihun/easyloggingpp
-Spdlog | MIT | C++11 | 2018 | Windows, Linux, MacOSX, iPhoneOS, Android(logcat) | VC++, GCC, Clang, MinGW | None, Headers only library | https://github.com/gabime/spdlog
https://github.com/fmtlib/fmt
-Boost.Log v2 | Boost | C++ | 2016 | Windows, Linux, MacOSX, iPhoneOS, Android | VC++, GCC, Clang | Boost | https://github.com/boostorg/log
http://www.boost.org/doc/libs/1_66_0/libs/log/doc/html/index.html
-plog | MPL 2.0 | C++ | 2017 | Windows, Linux, MacOSX, iPhoneOS, Android | gcc, clang, msvc, mingw, mingw-w64, icc, c++builder | None, Headers only library | https://github.com/SergiusTheBest/plog
diff --git a/example/bench.cpp b/bench/bench.cpp
similarity index 95%
rename from example/bench.cpp
rename to bench/bench.cpp
index a4f7ce5b..c06a1c03 100644
--- a/example/bench.cpp
+++ b/bench/bench.cpp
@@ -12,7 +12,6 @@
#include "spdlog/sinks/rotating_file_sink.h"
#include "spdlog/sinks/simple_file_sink.h"
#include "spdlog/spdlog.h"
-
#include "utils.h"
#include
#include // EXIT_FAILURE
@@ -73,7 +72,6 @@ int main(int argc, char *argv[])
cout << "\n*******************************************************************************\n";
cout << "async logging.. " << threads << " threads sharing same logger, " << format(howmany) << " iterations " << endl;
cout << "*******************************************************************************\n";
-
for (int i = 0; i < 3; ++i)
{
@@ -83,6 +81,9 @@ int main(int argc, char *argv[])
spdlog::drop("as");
}
+
+
+
}
catch (std::exception &ex)
{
@@ -104,7 +105,7 @@ void bench(int howmany, std::shared_ptr log)
auto delta = system_clock::now() - start;
auto delta_d = duration_cast>(delta).count();
- cout << format(int(howmany / delta_d)) << "/sec" << endl;
+ cout << "Elapsed: " << delta_d << "\t" << format(int(howmany / delta_d)) << "/sec" << endl;
}
void bench_mt(int howmany, std::shared_ptr log, int thread_count)
@@ -134,5 +135,5 @@ void bench_mt(int howmany, std::shared_ptr log, int thread_count
auto delta = system_clock::now() - start;
auto delta_d = duration_cast>(delta).count();
- cout << format(int(howmany / delta_d)) << "/sec" << endl;
+ cout << "Elapsed: " << delta_d << "\t" << format(int(howmany / delta_d)) << "/sec" << endl;
}
diff --git a/bench/boost-bench-mt.cpp b/bench/boost-bench-mt.cpp
deleted file mode 100644
index a076e6e4..00000000
--- a/bench/boost-bench-mt.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-namespace logging = boost::log;
-namespace src = boost::log::sources;
-namespace sinks = boost::log::sinks;
-namespace keywords = boost::log::keywords;
-
-void init()
-{
- logging::add_file_log(keywords::file_name = "logs/boost-bench-mt_%N.log", /*< file name pattern >*/
- keywords::auto_flush = false, keywords::format = "[%TimeStamp%]: %Message%");
-
- logging::core::get()->set_filter(logging::trivial::severity >= logging::trivial::info);
-}
-
-using namespace std;
-
-int main(int argc, char *argv[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
-
- int thread_count = 10;
- if (argc > 1)
- thread_count = atoi(argv[1]);
-
- int howmany = 1000000;
-
- init();
- logging::add_common_attributes();
-
- using namespace logging::trivial;
-
- src::severity_logger_mt lg;
-
- std::atomic msg_counter{0};
- vector threads;
-
- auto start = clock::now();
- for (int t = 0; t < thread_count; ++t)
- {
- threads.push_back(std::thread([&]() {
- while (true)
- {
- int counter = ++msg_counter;
- if (counter > howmany)
- break;
- BOOST_LOG_SEV(lg, info) << "boost message #" << counter << ": This is some text for your pleasure";
- }
- }));
- }
-
- for (auto &t : threads)
- {
- t.join();
- }
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- std::cout << "Total: " << howmany << std::endl;
- std::cout << "Threads: " << thread_count << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-
- return 0;
-}
diff --git a/bench/boost-bench.cpp b/bench/boost-bench.cpp
deleted file mode 100644
index 334fcb93..00000000
--- a/bench/boost-bench.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-namespace logging = boost::log;
-namespace src = boost::log::sources;
-namespace sinks = boost::log::sinks;
-namespace keywords = boost::log::keywords;
-
-void init()
-{
- logging::add_file_log(keywords::file_name = "logs/boost-bench_%N.log", /*< file name pattern >*/
- keywords::auto_flush = false, keywords::format = "[%TimeStamp%]: %Message%");
-
- logging::core::get()->set_filter(logging::trivial::severity >= logging::trivial::info);
-}
-
-int main(int, char *[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
-
- int howmany = 1000000;
- init();
- logging::add_common_attributes();
-
- using namespace logging::trivial;
- src::severity_logger_mt lg;
-
- auto start = clock::now();
- for (int i = 0; i < howmany; ++i)
- BOOST_LOG_SEV(lg, info) << "boost message #" << i << ": This is some text for your pleasure";
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- std::cout << "Total: " << howmany << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-
- return 0;
-}
diff --git a/bench/easyl-async.conf b/bench/easyl-async.conf
deleted file mode 100644
index a6c52050..00000000
--- a/bench/easyl-async.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-* GLOBAL:
- FORMAT = "[%datetime]: %levshort %thread %msg"
- FILENAME = ./logs/easylogging-async.log
- ENABLED = true
- TO_FILE = true
- TO_STANDARD_OUTPUT = false
- MILLISECONDS_WIDTH = 3
- PERFORMANCE_TRACKING = false
- MAX_LOG_FILE_SIZE = 10485760
- Log_Flush_Threshold = 10485760
diff --git a/bench/easyl-mt.conf b/bench/easyl-mt.conf
deleted file mode 100644
index ceff467c..00000000
--- a/bench/easyl-mt.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-* GLOBAL:
- FORMAT = "[%datetime]: %levshort %thread %msg"
- FILENAME = ./logs/easylogging-mt.log
- ENABLED = true
- TO_FILE = true
- TO_STANDARD_OUTPUT = false
- MILLISECONDS_WIDTH = 3
- PERFORMANCE_TRACKING = false
- MAX_LOG_FILE_SIZE = 10485760
- Log_Flush_Threshold = 10485760
diff --git a/bench/easyl.conf b/bench/easyl.conf
deleted file mode 100644
index c54f6c83..00000000
--- a/bench/easyl.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-* GLOBAL:
- FORMAT = "[%datetime]: %levshort %msg"
- FILENAME = ./logs/easylogging.log
- ENABLED = true
- TO_FILE = true
- TO_STANDARD_OUTPUT = false
- MILLISECONDS_WIDTH = 3
- PERFORMANCE_TRACKING = false
- MAX_LOG_FILE_SIZE = 10485760
- Log_Flush_Threshold = 10485760
diff --git a/bench/easylogging-bench-async.cpp b/bench/easylogging-bench-async.cpp
deleted file mode 100644
index e9b0dc84..00000000
--- a/bench/easylogging-bench-async.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-#include
-#include
-#include
-
-#define ELPP_THREAD_SAFE
-#define ELPP_EXPERIMENTAL_ASYNC
-#include "easylogging++.cc"
-#include "easylogging++.h"
-INITIALIZE_EASYLOGGINGPP
-
-using namespace std;
-
-int main(int argc, char *argv[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
-
- int thread_count = 10;
- if (argc > 1)
- thread_count = atoi(argv[1]);
-
- int howmany = 1000000;
-
- // Load configuration from file
- el::Configurations conf("easyl-async.conf");
- el::Loggers::reconfigureLogger("default", conf);
-
- std::atomic msg_counter{0};
- vector threads;
-
- auto start = clock::now();
- for (int t = 0; t < thread_count; ++t)
- {
- threads.push_back(std::thread([&]() {
- while (true)
- {
- int counter = ++msg_counter;
- if (counter > howmany)
- break;
- LOG(INFO) << "easylog message #" << counter << ": This is some text for your pleasure";
- }
- }));
- }
-
- for (auto &t : threads)
- {
- t.join();
- }
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- std::cout << "Total: " << howmany << std::endl;
- std::cout << "Threads: " << thread_count << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-
- return 0;
-}
diff --git a/bench/easylogging-bench-mt.cpp b/bench/easylogging-bench-mt.cpp
deleted file mode 100644
index 7601d3c0..00000000
--- a/bench/easylogging-bench-mt.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-#include
-#include
-#include
-
-#define ELPP_THREAD_SAFE
-#include "easylogging++.cc"
-#include "easylogging++.h"
-INITIALIZE_EASYLOGGINGPP
-
-using namespace std;
-
-int main(int argc, char *argv[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
-
- int thread_count = 10;
- if (argc > 1)
- thread_count = atoi(argv[1]);
-
- int howmany = 1000000;
-
- // Load configuration from file
- el::Configurations conf("easyl-mt.conf");
- el::Loggers::reconfigureLogger("default", conf);
-
- std::atomic msg_counter{0};
- vector threads;
-
- auto start = clock::now();
- for (int t = 0; t < thread_count; ++t)
- {
- threads.push_back(std::thread([&]() {
- while (true)
- {
- int counter = ++msg_counter;
- if (counter > howmany)
- break;
- LOG(INFO) << "easylog message #" << counter << ": This is some text for your pleasure";
- }
- }));
- }
-
- for (auto &t : threads)
- {
- t.join();
- }
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- std::cout << "Total: " << howmany << std::endl;
- std::cout << "Threads: " << thread_count << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-
- return 0;
-}
diff --git a/bench/easylogging-bench.cpp b/bench/easylogging-bench.cpp
deleted file mode 100644
index 15c093d8..00000000
--- a/bench/easylogging-bench.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-
-#include "easylogging++.cc"
-#include "easylogging++.h"
-INITIALIZE_EASYLOGGINGPP
-
-int main(int, char *[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
-
- int howmany = 1000000;
-
- // Load configuration from file
- el::Configurations conf("easyl.conf");
- el::Loggers::reconfigureLogger("default", conf);
-
- el::Logger *defaultLogger = el::Loggers::getLogger("default");
-
- auto start = clock::now();
- for (int i = 0; i < howmany; ++i)
- LOG(INFO) << "easylog message #" << i << ": This is some text for your pleasure";
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- std::cout << "Total: " << howmany << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-
- return 0;
-}
diff --git a/bench/g2log-async.cpp b/bench/g2log-async.cpp
deleted file mode 100644
index 3bbd50f6..00000000
--- a/bench/g2log-async.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-#include
-#include
-#include
-
-#include "g2log.h"
-#include "g2logworker.h"
-
-using namespace std;
-template
-std::string format(const T &value);
-
-int main(int argc, char *argv[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
- int thread_count = 10;
-
- if (argc > 1)
- thread_count = atoi(argv[1]);
- int howmany = 1000000;
-
- g2LogWorker g2log(argv[0], "logs");
- g2::initializeLogging(&g2log);
-
- std::atomic msg_counter{0};
- vector threads;
- auto start = clock::now();
- for (int t = 0; t < thread_count; ++t)
- {
- threads.push_back(std::thread([&]() {
- while (true)
- {
- int counter = ++msg_counter;
- if (counter > howmany)
- break;
- LOG(INFO) << "g2log message #" << counter << ": This is some text for your pleasure";
- }
- }));
- }
-
- for (auto &t : threads)
- {
- t.join();
- }
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- cout << "Total: " << howmany << std::endl;
- cout << "Threads: " << thread_count << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-}
diff --git a/bench/g3log-async.cpp b/bench/g3log-async.cpp
deleted file mode 100644
index 61ed72df..00000000
--- a/bench/g3log-async.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-#include
-#include
-#include
-
-#include "g3log/g3log.hpp"
-#include "g3log/logworker.hpp"
-
-using namespace std;
-template
-std::string format(const T &value);
-
-int main(int argc, char *argv[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
- int thread_count = 10;
-
- if (argc > 1)
- thread_count = atoi(argv[1]);
-
- int howmany = 1000000;
-
- auto worker = g3::LogWorker::createLogWorker();
- auto handle = worker->addDefaultLogger(argv[0], "logs");
- g3::initializeLogging(worker.get());
-
- std::atomic msg_counter{0};
- vector threads;
- auto start = clock::now();
- for (int t = 0; t < thread_count; ++t)
- {
- threads.push_back(std::thread([&]() {
- while (true)
- {
- int counter = ++msg_counter;
- if (counter > howmany)
- break;
- LOG(INFO) << "g3log message #" << counter << ": This is some text for your pleasure";
- }
- }));
- }
-
- for (auto &t : threads)
- {
- t.join();
- }
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- cout << "Total: " << howmany << std::endl;
- cout << "Threads: " << thread_count << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-}
diff --git a/bench/glog-bench-mt.cpp b/bench/glog-bench-mt.cpp
deleted file mode 100644
index 2f0aef19..00000000
--- a/bench/glog-bench-mt.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-#include
-#include
-#include
-
-#include "glog/logging.h"
-
-using namespace std;
-
-int main(int argc, char *argv[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
-
- int thread_count = 10;
- if (argc > 1)
- thread_count = atoi(argv[1]);
-
- int howmany = 1000000;
-
- FLAGS_logtostderr = 0;
- FLAGS_log_dir = "logs";
- google::InitGoogleLogging(argv[0]);
-
- std::atomic msg_counter{0};
- vector threads;
-
- auto start = clock::now();
- for (int t = 0; t < thread_count; ++t)
- {
- threads.push_back(std::thread([&]() {
- while (true)
- {
- int counter = ++msg_counter;
- if (counter > howmany)
- break;
- LOG(INFO) << "glog message #" << counter << ": This is some text for your pleasure";
- }
- }));
- }
-
- for (auto &t : threads)
- {
- t.join();
- }
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- std::cout << "Total: " << howmany << std::endl;
- std::cout << "Threads: " << thread_count << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-
- return 0;
-}
diff --git a/bench/glog-bench.cpp b/bench/glog-bench.cpp
deleted file mode 100644
index 7469896c..00000000
--- a/bench/glog-bench.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#include
-#include
-
-#include "glog/logging.h"
-
-int main(int, char *argv[])
-{
- using namespace std::chrono;
- using clock = steady_clock;
-
- int howmany = 1000000;
-
- FLAGS_logtostderr = 0;
- FLAGS_log_dir = "logs";
- google::InitGoogleLogging(argv[0]);
- auto start = clock::now();
- for (int i = 0; i < howmany; ++i)
- LOG(INFO) << "glog message #" << i << ": This is some text for your pleasure";
-
- duration delta = clock::now() - start;
- float deltaf = delta.count();
- auto rate = howmany / deltaf;
-
- std::cout << "Total: " << howmany << std::endl;
- std::cout << "Delta = " << deltaf << " seconds" << std::endl;
- std::cout << "Rate = " << rate << "/sec" << std::endl;
-
- return 0;
-}
diff --git a/bench/latency/Makefile b/bench/latency/Makefile
deleted file mode 100644
index 99b479a4..00000000
--- a/bench/latency/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-CXX ?= g++
-CXXFLAGS = -march=native -Wall -std=c++11 -pthread
-CXX_RELEASE_FLAGS = -O2 -DNDEBUG
-
-
-binaries=spdlog-latency g3log-latency g3log-crush
-
-all: $(binaries)
-
-spdlog-latency: spdlog-latency.cpp
- $(CXX) spdlog-latency.cpp -o spdlog-latency $(CXXFLAGS) $(CXX_RELEASE_FLAGS) -I../../include
-
-
-
-g3log-latency: g3log-latency.cpp
- $(CXX) g3log-latency.cpp -o g3log-latency $(CXXFLAGS) $(CXX_RELEASE_FLAGS) -I../../../g3log/src -L. -lg3logger
-
-
-g3log-crush: g3log-crush.cpp
- $(CXX) g3log-crush.cpp -o g3log-crush $(CXXFLAGS) $(CXX_RELEASE_FLAGS) -I../../../g3log/src -L. -lg3logger
-
-
-.PHONY: clean
-
-clean:
- rm -f *.o *.log $(binaries)
-
-
-rebuild: clean all
-
-
-
diff --git a/bench/latency/compare.sh b/bench/latency/compare.sh
deleted file mode 100755
index 0f0e4c97..00000000
--- a/bench/latency/compare.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-echo "running spdlog and g3log tests 10 time with ${1:-10} threads each (total 1,000,000 entries).."
-rm -f *.log
-for i in {1..10}
-
-do
- echo
- sleep 0.5
- ./spdlog-latency ${1:-10} 2>/dev/null || exit
- sleep 0.5
- ./g3log-latency ${1:-10} 2>/dev/null || exit
-
-done
diff --git a/bench/latency/g3log-crush.cpp b/bench/latency/g3log-crush.cpp
deleted file mode 100644
index 5ab85d7a..00000000
--- a/bench/latency/g3log-crush.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include
-
-#include
-#include
-
-void CrusherLoop()
-{
- size_t counter = 0;
- while (true)
- {
- LOGF(INFO, "Some text to crush you machine. thread:");
- if (++counter % 1000000 == 0)
- {
- std::cout << "Wrote " << counter << " entries" << std::endl;
- }
- }
-}
-
-int main(int argc, char **argv)
-{
- std::cout << "WARNING: This test will exaust all your machine memory and will crush it!" << std::endl;
- std::cout << "Are you sure you want to continue ? " << std::endl;
- char c;
- std::cin >> c;
- if (toupper(c) != 'Y')
- return 0;
-
- auto worker = g3::LogWorker::createLogWorker();
- auto handle = worker->addDefaultLogger(argv[0], "g3log.txt");
- g3::initializeLogging(worker.get());
- CrusherLoop();
-
- return 0;
-}
diff --git a/bench/latency/g3log-latency.cpp b/bench/latency/g3log-latency.cpp
deleted file mode 100644
index fe067f77..00000000
--- a/bench/latency/g3log-latency.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-#include "utils.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include