예제 #1
0
파일: benchmark.cpp 프로젝트: Akku/mlog
void compare_with_boost() {
	mlog::standard_logger_thread_safe log_ts;
	mlog::manager->set_log(log_ts);
	mlog::manager->use_thread_id(true);
	mlog::manager->use_time(true);
	double m = single_thread_test();
	m = single_thread_test();
	double b = single_thread_test_boost();
	b = single_thread_test_boost();

	
	std::cout << "### mlog benchmark ###" << std::endl << std::endl;

	std::cout << "compare with boost.log on stdout :" << std::endl;
	std::cout << "\tboost.log:\t" << b << "ms" << std::endl;
	std::cout << "\tmlog:\t\t" << m << "ms" << std::endl;

	std::remove("boost.log");
	std::remove("mlog.log");

	init();

	mlog::file_logger_thread_safe logfile("mlog.log");
	mlog::manager->set_log(logfile);
	b = single_thread_test_boost();
	b = single_thread_test_boost();
	m = single_thread_test();
	m = single_thread_test();
	std::remove("boost.log");
	std::remove("mlog.log");

	std::cout << "compare with boost.log on tests:" << std::endl;
	std::cout << "\tboost.log:\t" << b << "ms" << std::endl;
	std::cout << "\tmlog:\t\t" << m << "ms" << std::endl;
}
예제 #2
0
파일: benchmark.cpp 프로젝트: Akku/mlog
result memory_logger() {
	result r;
	mlog::memory_logger_normal log;
	mlog::manager->set_log(log);
	mlog::manager->set_default_settings();
	r.normal = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_thread_id(true);
	r.with_thread_id = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_time(true);
	r.with_time = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_position(true);
	mlog::manager->set_default_settings();
	r.with_pos = single_thread_test();

	std::cout << "memory tests:" << std::endl;
	std::cout << "\t"
		  << "mlog::memory_logger => " << r.normal << "ms" << std::endl;
	std::cout << "\t\twith thread id:\t\t"
		  << ((r.with_thread_id - r.normal) > 0 ? "+" : "")
		  << r.with_thread_id - r.normal << "ms" << std::endl;
	std::cout << "\t\twith time:\t\t"
		  << ((r.with_time - r.normal) > 0 ? "+" : "")
		  << r.with_time - r.normal << "ms" << std::endl;
	std::cout << "\t\twith code position:\t"
		  << ((r.with_pos - r.normal) > 0 ? "+" : "")
		  << r.with_pos - r.normal << "ms" << std::endl;

	return r;
}
예제 #3
0
int main(int argc, char* argv[])
{
	single_thread_test();
	multi_thread_test();

	return 0;
}
예제 #4
0
파일: benchmark.cpp 프로젝트: Akku/mlog
void frontend() {
	std::cout << "frontend tests:" << std::endl;
	empty_logger onlyfrontend;
	mlog::manager->set_log(onlyfrontend);
	mlog::manager->set_default_settings();
	std::cout << "\tdefault settings =>\t" << single_thread_test() << "ms"
		  << std::endl;
	mlog::manager->use_thread_id(true);
	std::cout << "\tadded thread id =>\t" << single_thread_test() << "ms"
		  << std::endl;
	mlog::manager->use_time(true);
	std::cout << "\tadded time =>\t\t" << single_thread_test() << "ms"
		  << std::endl;
	mlog::manager->use_position(true);
	std::cout << "\tadded position time =>\t" << single_thread_test()
		  << "ms" << std::endl;
}
예제 #5
0
파일: main.c 프로젝트: cherry-wb/quietheart
int main(int argc, char* argv[])
{
#if 0
	single_thread_test();
#else
	multi_thread_test();
#endif
    return 0;
}
예제 #6
0
파일: benchmark.cpp 프로젝트: Akku/mlog
result cout_logger() {
	result r;
	mlog::standard_logger log;
	mlog::manager->set_log(log);
	mlog::manager->set_default_settings();
	r.normal = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_thread_id(true);
	r.with_thread_id = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_time(true);
	r.with_time = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_position(true);
	r.with_pos = single_thread_test();

	mlog::standard_logger_thread_safe log_ts;
	mlog::manager->set_log(log_ts);
	mlog::manager->set_default_settings();
	r.thread_safe = single_thread_test();
	mlog::async_logger<mlog::standard_logger> log_async;
	mlog::manager->set_log(log_async);
	mlog::manager->set_default_settings();
	r.async = single_thread_test();
	log_async.flush();
	return r;
}
예제 #7
0
파일: benchmark.cpp 프로젝트: Akku/mlog
result file_logger() {
	result r;
	const std::string filename = "file_logger.log";
	std::remove(filename.c_str());
	mlog::file_logger log(filename);
	mlog::manager->set_log(log);
	mlog::manager->set_default_settings();
	r.normal = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_thread_id(true);
	r.with_thread_id = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_time(true);
	r.with_time = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_position(true);
	r.with_pos = single_thread_test();

	std::remove(filename.c_str());
	mlog::file_logger_thread_safe log_ts(filename);
	mlog::manager->set_log(log_ts);
	mlog::manager->set_default_settings();
	r.thread_safe = single_thread_test();
	std::remove(filename.c_str());
	mlog::async_logger<mlog::file_logger> log_async(filename);
	mlog::manager->set_log(log_async);
	mlog::manager->set_default_settings();
	r.async = single_thread_test();
	log_async.flush();
	std::cout << "file tests:" << std::endl;
	std::cout << "\t"
		  << "mlog::file_logger => " << r.normal << "ms" << std::endl;
	std::cout << "\t"
		  << "mlog::thread_safe<mlog::file_logger> => " << r.thread_safe
		  << "ms" << std::endl;
	std::cout << "\t"
		  << "mlog::async_logger<mlog::file_logger> => " << r.async
		  << "ms" << std::endl;
	std::cout << "\t\twith thread id:\t\t"
		  << ((r.with_thread_id - r.normal) > 0 ? "+" : "")
		  << r.with_thread_id - r.normal << "ms" << std::endl;
	std::cout << "\t\twith time:\t\t"
		  << ((r.with_time - r.normal) > 0 ? "+" : "")
		  << r.with_time - r.normal << "ms" << std::endl;
	std::cout << "\t\twith code position:\t"
		  << ((r.with_pos - r.normal) > 0 ? "+" : "")
		  << r.with_pos - r.normal << "ms" << std::endl;
	std::remove(filename.c_str());
	return r;
}
예제 #8
0
파일: benchmark.cpp 프로젝트: Akku/mlog
result syslog_logger() {
	result r;
	mlog::syslog_logger log;
	mlog::manager->set_log(log);
	mlog::manager->set_default_settings();
	r.normal = single_thread_test();
	mlog::manager->use_thread_id(true);
	r.with_thread_id = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_time(true);
	r.with_time = single_thread_test();
	mlog::manager->set_default_settings();
	mlog::manager->use_position(true);
	r.with_pos = single_thread_test();

	mlog::thread_safe<mlog::syslog_logger> log_ts;
	mlog::manager->set_log(log_ts);
	mlog::manager->set_default_settings();
	r.thread_safe = single_thread_test();
	mlog::async_logger<mlog::syslog_logger> log_async;
	mlog::manager->set_log(log_async);
	mlog::manager->set_default_settings();
	r.async = single_thread_test();
	log_async.flush();
	std::cout << "syslog tests:" << std::endl;
	std::cout << "\t"
		  << "mlog::syslog_logger => " << r.normal << "ms" << std::endl;
	std::cout << "\t"
		  << "mlog::thread_safe<mlog::syslog_logger> => "
		  << r.thread_safe << "ms" << std::endl;
	std::cout << "\t"
		  << "mlog::async_logger<mlog::syslog_logger> => " << r.async
		  << "ms" << std::endl;
	std::cout << "\t\twith thread id:\t\t"
		  << ((r.with_thread_id - r.normal) > 0 ? "+" : "")
		  << r.with_thread_id - r.normal << "ms" << std::endl;
	std::cout << "\t\twith time:\t\t"
		  << ((r.with_time - r.normal) > 0 ? "+" : "")
		  << r.with_time - r.normal << "ms" << std::endl;
	std::cout << "\t\twith code position:\t"
		  << ((r.with_pos - r.normal) > 0 ? "+" : "")
		  << r.with_pos - r.normal << "ms" << std::endl;

	return r;
}
예제 #9
0
파일: lock.c 프로젝트: bangerlee/Neil
int main(int argc, char** argv)
{
    single_thread_test();

    return 0;
}