我想知道某个函数在我的C++程序中执行多长时间才能在Linux上执行.之后,我想进行速度比较.我看到了几个时间功能,但结果来自于boost.计时:
process_user_cpu_clock, captures user-CPU time spent by the current process
Run Code Online (Sandbox Code Playgroud)
现在,我不清楚我是否使用上述功能,我将获得CPU花在该功能上的唯一时间吗?
其次,我找不到任何使用上述功能的例子.任何人都可以帮我如何使用上述功能?
PS:现在,我std::chrono::system_clock::now()用来在几秒钟内获得时间,但由于每次CPU负载不同,这给了我不同的结果.
我想在C++中实现一个简单的计时器机制.该代码应该适用于Windows和Linux.分辨率应尽可能精确(至少精确到毫秒).这将用于简单地跟踪时间的流逝,而不是实现任何类型的事件驱动设计.完成此任务的最佳工具是什么?
如何在Windows C++中以毫秒或微秒为单位测量执行时间?
我发现很多方法一个调用时间(NULL),但它仅以秒为单位测量时间,秒clock()(clock_t)测量CPU时间,而不是实际时间.
我发现本文中提到的函数gettimeofday(日历时间):dropbox.com/s/k0zv8pck7ydbakz/1_7-PDF_thesis_2.pdf
此功能适用于Linux(计算时间,以毫秒和微秒为单位),而不是Windows.
我找到了Windows的替代品:dropbox.com/s/ofo99b166l7e2gf/gettimeofday.txt
这可能是相关的:stackoverflow.com/questions/1861294/how-to-calculate-execution-time-of-a-code-snippet-in-c
我正在使用多光谱相机来收集数据.一个是近红外线,另一个是彩色的.不是两个摄像头,而是一个摄像头可以同时获得两种不同的图像.我可以使用一些API函数,如J_Image_OpenStream.核心代码的两部分如下所示.一个用于打开两个流(实际上它们在一个样本中,我必须使用它们,但我的意思并不太清楚)并设置两个avi文件的保存路径并开始采集.
// Open stream
retval0 = J_Image_OpenStream(m_hCam[0], 0, reinterpret_cast<J_IMG_CALLBACK_OBJECT>(this), reinterpret_cast<J_IMG_CALLBACK_FUNCTION>(&COpenCVSample1Dlg::StreamCBFunc0), &m_hThread[0], (ViewSize0.cx*ViewSize0.cy*bpp0)/8);
if (retval0 != J_ST_SUCCESS) {
AfxMessageBox(CString("Could not open stream0!"), MB_OK | MB_ICONEXCLAMATION);
return;
}
TRACE("Opening stream0 succeeded\n");
retval1 = J_Image_OpenStream(m_hCam[1], 0, reinterpret_cast<J_IMG_CALLBACK_OBJECT>(this), reinterpret_cast<J_IMG_CALLBACK_FUNCTION>(&COpenCVSample1Dlg::StreamCBFunc1), &m_hThread[1], (ViewSize1.cx*ViewSize1.cy*bpp1)/8);
if (retval1 != J_ST_SUCCESS) {
AfxMessageBox(CString("Could not open stream1!"), MB_OK | MB_ICONEXCLAMATION);
return;
}
TRACE("Opening stream1 succeeded\n");
const char *filename0 = "C:\\Users\\shenyang\\Desktop\\test0.avi";
const char *filename1 = "C:\\Users\\shenyang\\Desktop\\test1.avi";
int fps = 10; //frame per second
int codec = -1;//choose the compression method
writer0 = …Run Code Online (Sandbox Code Playgroud) 我想通过查看算法的运行时性能来测试哪种数据结构最好,我该怎么做?
比如我已经有了hashmap<string, int> hmp; 假设我有"apple"我的hashmap,我想知道下面的语句需要多长时间来执行:hmp["apple"].
我该如何计时?
谢谢!