bench
This commit is contained in:
		
							parent
							
								
									2d075bcfda
								
							
						
					
					
						commit
						bf303fad19
					
				| @ -22,8 +22,7 @@ using namespace utils; | |||||||
| 
 | 
 | ||||||
| void bench(int howmany, std::shared_ptr<spdlog::logger> log) | void bench(int howmany, std::shared_ptr<spdlog::logger> log) | ||||||
| { | { | ||||||
| 		cout << log->name() << ", " << format(howmany) << " iterations.." << endl; | 		cout << log->name() << "...\t\t" << flush;       | ||||||
|        |  | ||||||
|         auto start = system_clock::now(); |         auto start = system_clock::now(); | ||||||
|         for (auto i = 0; i < howmany; ++i) |         for (auto i = 0; i < howmany; ++i) | ||||||
|         { |         { | ||||||
| @ -32,15 +31,14 @@ void bench(int howmany, std::shared_ptr<spdlog::logger> log) | |||||||
| 
 | 
 | ||||||
|         auto delta = system_clock::now() - start; |         auto delta = system_clock::now() - start; | ||||||
|         auto delta_d = duration_cast<duration<double>> (delta).count();		 |         auto delta_d = duration_cast<duration<double>> (delta).count();		 | ||||||
|         cout << "Delta:" << format(delta_d) << " seconds" << endl; |         cout << format(int(howmany / delta_d)) << "/sec" << endl; | ||||||
|         cout << "Rate:" << format(howmany / delta_d) << "/sec" << endl << endl; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| void bench_mt(int howmany, std::shared_ptr<spdlog::logger> log, int thread_count) | void bench_mt(int howmany, std::shared_ptr<spdlog::logger> log, int thread_count) | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
|         cout << log->name() << ", " << format(howmany) << " iterations.." << endl; | 		cout << log->name() << "...\t\t" << flush;       | ||||||
|         std::atomic<int > msg_counter{0};    |         std::atomic<int > msg_counter{0};    | ||||||
|       	vector<thread> threads; |       	vector<thread> threads; | ||||||
| 		auto start = system_clock::now(); | 		auto start = system_clock::now(); | ||||||
| @ -60,8 +58,7 @@ void bench_mt(int howmany, std::shared_ptr<spdlog::logger> log, int thread_count | |||||||
| 
 | 
 | ||||||
|         auto delta = system_clock::now() - start; |         auto delta = system_clock::now() - start; | ||||||
|         auto delta_d = duration_cast<duration<double>> (delta).count();		 |         auto delta_d = duration_cast<duration<double>> (delta).count();		 | ||||||
|         cout << "Delta:" << format(delta_d) << " seconds" << endl; |         cout << format(int(howmany / delta_d)) << "/sec" << endl; | ||||||
|         cout << "Rate:" << format(howmany / delta_d) << "/sec" << endl << endl; |  | ||||||
|  } |  } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -71,13 +68,13 @@ int main(int argc, char* argv[]) | |||||||
| 
 | 
 | ||||||
|     try { |     try { | ||||||
|     	 |     	 | ||||||
| 		int howmany = argc <= 1 ? 100000 : atoi(argv[1]); | 		int howmany = argc <= 1 ? 250000 : atoi(argv[1]); | ||||||
| 		int threads = argc <= 2 ? 4 : atoi(argv[2]); | 		int threads = argc <= 2 ? 4 : atoi(argv[2]); | ||||||
| 		int flush_interval = 100; | 		int flush_interval = 100; | ||||||
| 
 | 
 | ||||||
| 		 | 		 | ||||||
| 		cout << "*******************************************************************************\n";	 | 		cout << "*******************************************************************************\n";	 | ||||||
| 		cout << "Single threaded benchmarks. flush_interval = " << flush_interval << endl;        		 | 		cout << "Single thread, " << format(howmany)  << " iterations, flush every " << flush_interval << " lines"<< endl;        		 | ||||||
| 		cout << "*******************************************************************************\n";	 | 		cout << "*******************************************************************************\n";	 | ||||||
| 	 | 	 | ||||||
| 		auto rotating_st = spdlog::rotating_logger_st("rotating_st", "logs/rotating_st", 1024 * 1024 * 5, 5, flush_interval); | 		auto rotating_st = spdlog::rotating_logger_st("rotating_st", "logs/rotating_st", 1024 * 1024 * 5, 5, flush_interval); | ||||||
| @ -88,8 +85,8 @@ int main(int argc, char* argv[]) | |||||||
| 		 | 		 | ||||||
| 		bench(howmany, spdlog::create<null_sink_st>("null_st"));        		 | 		bench(howmany, spdlog::create<null_sink_st>("null_st"));        		 | ||||||
| 		 | 		 | ||||||
| 		cout << "*******************************************************************************\n";	 | 		cout << "\n*******************************************************************************\n";	 | ||||||
| 		cout << "Multi threaded benchmarks (" << threads << " threads), flush_interval = " << flush_interval << endl;        		 | 		cout << threads << " threads, " << format(howmany)  << " iterations, flush every " << flush_interval << " lines" << endl;        		 | ||||||
| 		cout << "*******************************************************************************\n";	 | 		cout << "*******************************************************************************\n";	 | ||||||
| 	 | 	 | ||||||
| 		auto rotating_mt = spdlog::rotating_logger_mt("rotating_mt", "logs/rotating_mt", 1024 * 1024 * 5, 5, flush_interval); | 		auto rotating_mt = spdlog::rotating_logger_mt("rotating_mt", "logs/rotating_mt", 1024 * 1024 * 5, 5, flush_interval); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user