我试图得到一些代码的性能测试两次之间的差异。首先,我获取环境的本地时间,运行要进行性能测试的代码,然后再次获取本地时间。然后我减去时间,看看考试花了多长时间。我尽量精确到分、秒和微秒。
我发现有趣的是,如果我在每次获得时间后都设置一个打印,这会起作用:
startTest= datetime.datetime.now()
print startTest
我得到:
^{pr2}$但是,如果我在得到当地时间后不添加任何打印语句,则会失败,这是我正在做的:
import datetime
startTest= datetime.datetime.now()
#Code to be Tested#
endTest= datetime.datetime.now()
testTime = endTest - startTest
print 'TotalTime: ',testTime
这样可以得到以下输出:
TotalTime: 0:00:00
你知道如何以0:00:00.000000
的格式打印出来吗?在
只有在
datetime.timedelta
对象的microseconds
属性中存在非零值时,才会打印微秒。在如果你想要一个不同的行为,写你自己的字符串格式化函数。比如:
%09.6f
格式表示浮点数(包括十进制数)总计9位数,必要时加前导0,小数部分最多6位数。如果您想要更多或更少的位数,您必须同时更改总位数和小数部分-小数点后10位为%013.10f
。在这将打印
^{pr2}$timedelta
对象的每个部分。让我们试试:我想你想保留不打印天数的功能,如果天数是0。。。在
现在的结果是:
^{4}$与内置的str函数的行为方式不同。。。我将把这些差异留给“读者练习”
这并不能直接回答您的问题,但是您可以看看Pythons
timeit
模块 http://docs.python.org/2/library/timeit.html 用于小代码段的性能测试。在相关问题 更多 >
编程相关推荐