我想记录下在真实的的墙里做某件事需要多长时间。目前我正在做:
startTime = time.time()
someSQLOrSomething()
print "That took %.3f seconds" % (time.time() - startTime)
字符串
但如果在SQL查询(或其他查询)运行时调整时间,则会失败(产生不正确的结果)。
我不想只是做基准测试。我想将其记录在一个实时应用程序中,以便在实时系统上查看趋势。
我想要类似clock_gettime(CLOCK_MONOTONIC,...)的东西,但是在Python中。并且最好不必编写调用clock_gettime()的C模块。
5条答案
按热度按时间new9mtju1#
该函数非常简单,可以使用ctypes访问它:
字符串
e3bfsja22#
在Python 3.3+中有time.monotonic(参见PEP 418)。
2lpgd9683#
正如this question中所指出的,在Linux上避免NTP重新调整需要CLOCK_MONOTONIC_RAW。这在Linux上被定义为4(自2.6.28起)。
从Python中可移植地获取C头文件中定义的正确常量#是很棘手的;有一个h2 py,但它并不能真正帮助你在运行时获取值。
watbbzwu4#
下面是我在Python 2.7中获得单调时间的方法:
安装
monotonic
软件包:字符串
在Python中:
型
编辑:在信任它之前,请检查上述操作是否在您的目标操作系统上工作。单调库似乎在某些操作系统中处理时钟变化,而在其他操作系统中则不处理。
nwlls2ji5#
time.monotonic()
可能有用:返回单调时钟的值(以小数秒为单位),即不能倒退的钟。时钟不受系统时钟更新的影响。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异才有效。