是否有任何便携式(Windows和Linux)的方法来计算两个通话之间经过了几毫秒?
基本上,我想要达到与.NET的StopWatch类相同的function。 (对于那些已经使用它的人)
在一个完美的世界里,我会使用boost::date_time但由于我强制要遵守的一些愚蠢的规则,这不是一个选项。
对于那些更好的阅读代码,这是我想要实现的。
便携式Eclipse Juno插件
构build多个平台的Linux二进制文件
在Linux上的便携式JRE – 可能吗?
可移植性,应该csv文件在窗口上使用CRLF换行
boost :: random_device的非Linux实现
Timer timer; timer.start(); // Some instructions here timer.stop(); // Print out the elapsed time std::cout << "Elapsed time: " << timer.milliseconds() << "ms" << std::endl;
所以,如果有一个可以帮助我实现Timer类的便携式(一组)函数,那是什么? 如果没有这样的function,我应该用什么Windows和Linux API来实现这个function? (使用#ifdef WINDOWS的macros)
谢谢 !
使用免费工具开发轻量级(无运行时)基于Windows的GUI应用程序
Unity3D – 便携式HTTP客户端
docker图像可移植到不同的linux风格?
有没有一种方法可以替代Gnu Make命令的目标?
在C ++中的可移植wchar_t
在Linux上(通常在POSIX中),您可以使用gettimeofday函数,该函数返回Epoch以来的微秒数。 在Windows上,有GetTickCount函数,该函数返回自系统启动以来的毫秒数。
clock() (在Time.h中)返回一个每秒增加CLOCKS_PER_SEC的值,通常为1000。
在Windows上,使用高性能计时器,这是一个轻而易举的事情。
LARGE_INTEGER frequency; LARGE_INTEGER one; LARGE_INTEGER two; QueryPerformanceFrequency(&frequency); QueryPerformanceCounter(&one); // something QueryPerformanceCounter(&two); std::cout << (((double)two.QuadPart - (double)one.QuadPart) / (double)frequency.QuadPart) * (double)1000;
从理论上讲,这可以达到每个时钟周期的精度,这取决于所讨论的cpu。
这是我的任务代码(Boost许可证)其中ptime是代表时间的类,以秒为单位+纳秒ptime(int sec,int nano)
并且ptime ::微秒从posix时间微秒创建sec / nano对。
根据您的需要重写它并且编写这样的类是相当容易的。
ptime ptime::Now() { #ifndef BOOSTER_WIN_NATIVE struct timeval tv; gettimeofday(&tv,0); return ptime(tv.tv_sec,tv.tv_usec * 1000); #else FILETIME ft; GetSystemTimeAsFileTime(&ft); unsigned long long tt = ft.dwHighDateTime; tt <<=32; tt |= ft.dwLowDateTime; tt /=10; tt -= 11644473600000000ULL; return ptime(ptime::microseconds(tt)); #endif }
而且没有可移植的C ++函数…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。