我想使用 python 来测试各种 Windows 应用程序(一个是 Acrobat Reader X)加载文件所需的时间。
我可以在 Python 代码中测试打开和关闭文件的加载时间。
我知道如何使用 Python 启动子进程并以这种方式打开 Windows 应用程序,但这在这种情况下没有用,因为 python 调用子进程并继续执行脚本,因此计时器始终读取 0。
是否有另一种方法可以用来打开 Windows 应用程序、测试它的状态(是否已加载文件)以及整个过程的时间?
有不同的计时功能,具有不同的语义。
time.clock()
返回当前进程经过的时间,同时time.time()
返回自纪元以来的秒数。这意味着,如果您想为其他进程计时,您应该使用time.time()
而不是time.clock()
.
例子:
>>> import time
>>> import subprocess
>>> def time_time():
... t1 = time.time()
... subprocess.call(['python', 'a.py'])
... return time.time() - t1
...
>>> def time_clock():
... t1 = time.clock()
... subprocess.call(['python', 'a.py'])
... return time.clock() - t1
...
>>> time_time()
0.12334513664245605
>>> time_clock()
0.0
可能存在更好的解决方案(*),并考虑到Python3.3的 PEP418。
另外我想指出,最好使用profile/cProfile
或hotshot
模块来分析代码。他们为您提供了有关时间安排的更多信息。
(*)time.time()
如果系统管理员更改计算机的时间会受到影响,因此不保证time.time() - time.time()
会返回大于或等于零的值,并且即使是正数,您也无法确定时间是否正确正确的。即使在正常情况下,管理员不会在您进行分析时更改时间,但这不会发生。