Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Community » U++ community news and announcements » usecs
Re: usecs [message #50702 is a reply to message #50701] Thu, 06 December 2018 21:24 Go to previous messageGo to previous message
Zbych is currently offline  Zbych
Messages: 326
Registered: July 2009
Senior Member
mirek wrote on Thu, 06 December 2018 20:56
Yet you are proposing using C++ lib as well Smile


You got me Smile

BTW. I've made a mistake. Actual resolution of steady clock in Linux seems to be way below 1us.
I don't know how it looks in windows, but steady_clock seems to be good candidate for usecs as well.

int64 nsecs(int64 prev = 0)
{
	auto p2 = std::chrono::high_resolution_clock::now();
	return std::chrono::duration_cast<std::chrono::nanoseconds>(p2.time_since_epoch()).count() - prev;
}


int64 steady_time(int64 prev = 0)
{
	auto p2 = std::chrono::steady_clock::now();
	return (int64)std::chrono::duration_cast<std::chrono::nanoseconds>(p2.time_since_epoch()).count() - prev;
}


CONSOLE_APP_MAIN
{
	int64 max_delay = 0;
	int64 av_delay = 0;
	constexpr int loops = 10000000;
	
	for (int i = 0; i < loops; i++){
	
		auto start = nsecs();
		auto ms = steady_time();
		while (steady_time(ms) == 0);
		auto duration = nsecs(start);
		max_delay = std::max(duration, max_delay);
		av_delay += duration;
	}
	RLOG("Max delay: " << max_delay << "ns");
	RLOG("Av delay: " << av_delay/loops << "ns");
}



 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Critical issues to resolve for U++ 2018.1 - please suggest
Next Topic: Happy New Year 2019
Goto Forum:
  


Current Time: Wed May 08 02:13:05 CEST 2024

Total time taken to generate the page: 0.02077 seconds