0

我想使用 python 来测试各种 Windows 应用程序(一个是 Acrobat Reader X)加载文件所需的时间。

我可以在 Python 代码中测试打开和关闭文件的加载时间。

我知道如何使用 Python 启动子进程并以这种方式打开 Windows 应用程序,但这在这种情况下没有用,因为 python 调用子进程并继续执行脚本,因此计时器始终读取 0。

是否有另一种方法可以用来打开 Windows 应用程序、测试它的状态(是否已加载文件)以及整个过程的时间?

4

1 回答 1

1

有不同的计时功能,具有不同的语义。 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/cProfilehotshot模块来分析代码。他们为您提供了有关时间安排的更多信息。

(*)time.time()如果系统管理员更改计算机的时间会受到影响,因此不保证time.time() - time.time()会返回大于或等于零的值,并且即使是正数,您也无法确定时间是否正确正确的。即使在正常情况下,管理员不会在您进行分析时更改时间,但这不会发生。

于 2012-09-04T11:15:48.177 回答