diff --git a/README.md b/README.md
index c225c3d3..93efed2c 100644
--- a/README.md
+++ b/README.md
@@ -37,10 +37,12 @@ Just copy the files to your build tree and use a C++11 compiler
Below are some [benchmarks](bench) comparing the time needed to log 1,000,000 lines to file under Ubuntu 64 bit, Intel i7-4770 CPU @ 3.40GHz:
-|threads|boost log|glog|g2log|spdlog|
+|threads|boost log|glog|g2log|spdlog|spdlogasync mode|
|-------|:-------:|:-----:|------:|------:|
-|1|4.223s|1.084s|3.104s|0.998s|
-|10|14.141s|4.204s|3.412s|0.987s|
+|1|4.430s|1.115s|3.227s|0.940s|1.574s
+|10|13.985s|2.027s|3.476s|3.822s|1.972
+
+
## Usage Example
diff --git a/bench/results.txt b/bench/results.txt
new file mode 100644
index 00000000..8f971e0f
--- /dev/null
+++ b/bench/results.txt
@@ -0,0 +1,80 @@
+Running benchmakrs (all with 1000,000 writes to the logs folder
+
+boost-bench (single thread)..
+
+real 0m4.430s
+user 0m4.359s
+sys 0m0.072s
+
+
+glog-bench (single thread)..
+
+real 0m1.115s
+user 0m0.997s
+sys 0m0.117s
+
+
+g2log-bench (single thread)..
+
+Exiting, log location: logs/g2log-bench.g2log.20141124-232519.log
+
+real 0m3.277s
+user 0m4.189s
+sys 0m1.021s
+
+
+spdlog-bench (single thread)
+
+real 0m0.940s
+user 0m0.892s
+sys 0m0.048s
+
+
+------------------------------------
+Multithreaded benchmarks..
+------------------------------------
+boost-bench-mt (10 threads, single logger)..
+
+real 0m13.985s
+user 0m35.045s
+sys 0m7.196s
+
+
+glog-bench-mt (10 threads, single logger)..
+
+real 0m2.027s
+user 0m5.552s
+sys 0m6.223s
+
+
+g2log-bench-mt (10 threads, single logger)..
+
+Exiting, log location: logs/g2log-bench-mt.g2log.20141124-232551.log
+
+real 0m3.476s
+user 0m7.649s
+sys 0m1.619s
+
+
+spdlog-bench-mt (10 threads, single logger)..
+
+real 0m3.822s
+user 0m14.233s
+sys 0m6.117s
+
+
+------------------------------------
+Async benchmarks..
+------------------------------------
+spdlog-bench-async (single thread)..
+
+real 0m1.574s
+user 0m2.613s
+sys 0m0.405s
+
+
+spdlog-bench-mt-async (10 threads, single logger)..
+
+real 0m1.972s
+user 0m3.965s
+sys 0m2.747s
diff --git a/bench/run_all.sh b/bench/run_all.sh
index 9f76d584..0f62cd33 100755
--- a/bench/run_all.sh
+++ b/bench/run_all.sh
@@ -24,7 +24,9 @@ time ./spdlog-bench
echo
echo
sleep 3
-
+echo "------------------------------------"
+echo "Multithreaded benchmarks.."
+echo "------------------------------------"
echo "boost-bench-mt (10 threads, single logger)"..
time ./boost-bench-mt
echo
@@ -49,6 +51,16 @@ echo
echo
sleep 3
+echo "------------------------------------"
+echo "Async benchmarks.."
+echo "------------------------------------"
+
+echo "spdlog-bench-async (single thread)"..
+time ./spdlog-bench-async
+echo
+echo
+sleep 3
+
echo "spdlog-bench-mt-async (10 threads, single logger)"..
time ./spdlog-bench-mt-async
diff --git a/bench/spdlog-bench-async.cpp b/bench/spdlog-bench-async.cpp
index a7c7e97c..9054cb6e 100644
--- a/bench/spdlog-bench-async.cpp
+++ b/bench/spdlog-bench-async.cpp
@@ -6,7 +6,7 @@ int main(int, char* [])
{
int howmany = 1000000;
namespace spd = spdlog;
- spd::set_async_mode(howmany, std::chrono::seconds(0));
+ spd::set_async_mode(2500, std::chrono::seconds(0));
///Create a file rotating logger with 5mb size max and 3 rotated files
auto logger = spd::rotating_logger_mt("file_logger", "logs/spd-sample", 10 *1024 * 1024 , 5);
diff --git a/bench/spdlog-bench-mt-async.cpp b/bench/spdlog-bench-mt-async.cpp
index 98ac371c..17c72a8c 100644
--- a/bench/spdlog-bench-mt-async.cpp
+++ b/bench/spdlog-bench-mt-async.cpp
@@ -17,7 +17,7 @@ int main(int argc, char* argv[])
int howmany = 1000000;
namespace spd = spdlog;
- spd::set_async_mode(howmany, std::chrono::seconds(0));
+ spd::set_async_mode(2500, std::chrono::seconds(0));
///Create a file rotating logger with 5mb size max and 3 rotated files
auto logger = spd::rotating_logger_mt("file_logger", "logs/spd-sample", 10 *1024 * 1024 , 5);
diff --git a/example/bench.cpp b/example/bench.cpp
index fc4a98bf..6810c717 100644
--- a/example/bench.cpp
+++ b/example/bench.cpp
@@ -52,7 +52,7 @@ int main(int argc, char* argv[])
int howmany = 1000000;
int threads = 10;
- int flush_interval = 1000;
+ int flush_interval = 0;
int file_size = 30 * 1024 * 1024;
int rotating_files = 5;
@@ -63,7 +63,7 @@ int main(int argc, char* argv[])
howmany = atoi(argv[1]);
if (argc > 2)
threads = atoi(argv[2]);
-
+ /*
cout << "*******************************************************************************\n";
cout << "Single thread, " << format(howmany) << " iterations, flush every " << flush_interval << " lines"<< endl;
cout << "*******************************************************************************\n";
@@ -88,14 +88,13 @@ int main(int argc, char* argv[])
cout << "\n*******************************************************************************\n";
cout << "async logging.. " << threads << " threads sharing same logger, " << format(howmany) << " iterations, flush every " << flush_interval << " lines" << endl;
- cout << "*******************************************************************************\n";
-
- spdlog::set_async_mode(howmany);
- auto rotating_st_async = spdlog::rotating_logger_st("rotating_async", "logs/rotating_async", file_size, rotating_files, flush_interval);
- bench(howmany, rotating_st_async);
+e cout << "*******************************************************************************\n";
+ */
+
+ spdlog::set_async_mode(2500);
auto daily_st_async = spdlog::daily_logger_st("daily_async", "logs/daily_async", flush_interval);
- bench(howmany, daily_st_async);
- bench(howmany, spdlog::create("null_async"));
+ bench_mt(howmany, daily_st_async, threads);
+
spdlog::stop();