我想记录真实壁挂时间有多长.目前我这样做:
startTime = time.time()
someSQLOrSomething()
print "That took %.3f seconds" % (time.time() - startTime)
Run Code Online (Sandbox Code Playgroud)
但是如果在SQL查询(或其他任何东西)运行时调整时间,则会失败(产生不正确的结果).
我不想只是对它进行基准测试.我想在实时应用程序中记录它,以便查看实时系统的趋势.
我想要像clock_gettime(CLOCK_MONOTONIC,...)这样的东西,但是在Python中.并且最好不必编写调用clock_gettime()的C模块.
伙计们,在我的应用程序中,我正在使用clock_gettime(CLOCK_MONOTONIC)它来测量帧之间的增量时间(gamedev中的典型方法),并且我不时会遇到奇怪的行为clock_gettime(..)- 返回的值偶尔也不是单调的(即上一次.是更大的比目前的时间).
目前,如果发生这样的悖论,我只需跳过当前帧并开始处理下一帧.
问题是这怎么可能呢?这是Linux POSIX实现中的一个错误clock_gettime吗?我使用的是Ubuntu Server Edition 10.04(内核2.6.32-24,x86_64),gcc-4.4.3.
如何使用标准库在Python中检索挂壁时间?
这个问题,这个问题表明在Linux上类似clock_gettime(CLOCK_MONOTONIC_RAW)或/proc/uptime最合适的东西.在Windows上,time.clock()具有所需的效果.
我会使用time.time(),但不保证函数单调(和线性)返回增加时间值.
unsigned int Tick = GetTickCount();
Run Code Online (Sandbox Code Playgroud)
该代码仅在 Windows 上运行,但我想使用 C++ 标准库,以便它可以在其他地方运行。
我搜索过std::chrono,但找不到类似的功能GetTickCount()。
你知道我应该使用什么吗std::chrono?
我正在将一些vxWorks代码移植到Linux.
我看了这个答案,推荐CLOCK_MONOTONIC.这是以下定义的合适替代品:
#define GetTickCount() ((1000.0 * (double)tickGet())/((double)sysClkRateGet())))
Run Code Online (Sandbox Code Playgroud)
?
有没有办法在不使用系统时钟的情况下测量linux/unix中的经过时间?问题是通过测量在某些情况下,该系统时钟的变化和经过时间time或gettimeofday或其他任何东西一样,让不正确的结果.
我正在考虑创建单独的线程,它在sleep(100)内部执行循环并计算重复次数.
更好的解决方案?
linux ×4
c++ ×3
clock ×3
python ×2
time ×2
benchmarking ×1
c++-chrono ×1
c++11 ×1
elapsedtime ×1
gcc ×1
gettickcount ×1
measure ×1
std ×1
vxworks ×1
wall-time ×1