以复数表示的实际经过时间
Real elapsed time in cplex
我有一个复杂的c++代码,我试图找到真正的运行时间。我使用complex . gettime(),但它返回CPU时间(我在UNIX系统上运行它)。我的第一个问题是:CPU时间是否以秒为单位返回?也就是1500。是指1500秒吗?第二个问题:是否有一种方法可以在复杂的c++中获得实际运行时间?
complex . gettime()应该以秒为单位返回"经过的"时间,但您通常需要使用"Wall clock time"设置。较新的手册在这方面的区别不是很明显,但旧的手册在这方面做得更好。例如,CPLEX 10手册说:
时钟类型参数决定了ILOG CPLEX如何测量计算时间。CPU时间,默认值,仅在以下情况下最合适使用一个处理器。它报告CPU花费的时间量代表您的应用程序执行计算。针对并行执行时,CPU时间依赖于系统,通常不会反映期望的度量。在一些并行系统上,它可能度量聚合CPU时间,即所有处理器所用时间的总和。于人,它可能只报告一个进程的CPU时间。简而言之,它可能会让步你对平行速度的指示具有误导性。
另一种类型,挂钟时间,通常更适合于并行计算,因为它测量经过的总物理时间手术开始后。当多个进程处于活动状态时,和当并行优化器处于活动状态时,挂钟时间可能会很长
您可以选择时钟设置类型,在:
交互式优化器,带有命令集时钟类型i. Concert技术,使用IloCplex方法setParam(ClockType, i).可调用库,使用例程CPXsetintparam(env, CPX_PARAM_CLOCKTYPE, i)。将i替换为1表示CPU时间或2表示CPU时间墙上时钟时间。
或者只是使用一个标准的系统库调用来获得开始和结束时间,然后自己做减法。我做过很多次。
在c++中使用以下代码:
IloNum start;
start=cplex.getTime();
cplex.solve();
cplex.out() << "solution time=" << cplex.getTime()-start << endl;
- 为什么根据测量位置测量经过的时间时会有很大的不同?
- 如何比较两个经过的时间?
- 为什么这个经过的时间(帧时间)计算会锁定我的游戏
- 获取标准::未来<T>::wait_for的经过时间
- C++ 时间机器无法正确计算经过的时间量
- 填充 unordered_map (c++) 后 malloc 的经过时间
- 自当地时间上午8点以来,将时间经过的时间与Boost
- 如何获得Microsoft TTS演讲的经过的时间
- 获取自C++执行以来经过时间的最干净,最简单的方法
- 在 Linux 中,非常高的经过(挂钟)时间和低系统时间的含义
- 16.66ms 帧时间.当 sleep() 只经过整毫秒时,你如何获得完美的 60 fps
- 以格式化字符串的形式获取经过的时间
- 如何在C++中检查经过的时间和分配的内存
- 在visualc++2010中经过的时间
- 如何在没有计时器的情况下确定经过了多少时间
- 如何获得自SFML中按下键以来经过的时间
- 在经过时间后做某事C++SFML 2
- 试图使用gettimeofday来查找以毫秒为单位的经过时间
- 以C++记录经过时间的正确方法
- 以复数表示的实际经过时间