这是一个相当笼统的问题:
我遇到的问题是 time.clock()
测量的相同操作现在比以前花费的时间更长。
虽然我有一些非常相似的测量结果
- 1954 秒
- 1948 秒
- 1948 秒
一个稍微不同的测量
- 1999 秒
另一个更不一样
- 2207 秒
它似乎或多或少还不错,但对于另一个我得到了
- 2782 秒
现在我正在重复测量,它似乎变得越来越慢。
我不会在四舍五入或进行其他奇怪操作后对测量结果求和。
您是否知道这是否会受到服务器繁忙程度、时钟速度或任何其他可变参数的影响?我希望使用 time.clock()
而不是 time.time()
将主要解决这些问题......
操作系统是Ubuntu 18.04.1 LTS
。
操作在单独的 screen
session 中运行。
操作不涉及硬盘访问。
操作大多是非分布式的numpy
操作。所以这实际上主要是在执行 C 代码。
编辑: 这可能是相关的:time.time()
和 time.clock()
中的测量在任何情况下都非常相似个案。即 time.time()
测量总是比 time.clock()
稍微长一点。因此,如果我没有遗漏任何东西,则原因对 time.clock()
的影响与对 time.time()
的影响几乎完全相同。
编辑: 我认为我的问题没有得到解答。我能想到的另一个原因是垃圾收集会增加 CPU 使用率,并且当 RAM 已满或即将满时会更频繁地进行垃圾收集。
主要是,我正在寻找一种替代措施,为完成的相同操作提供相同的数字。操作意味着我的算法以相同的开始状态执行。有没有简单的方法来计算 FLOPS 或类似的方法?
最佳答案
这个问题似乎与 Python 和 Ubuntu 有关。
尝试以下操作:
检查您是否拥有正在使用的 python 版本的最新稳定版本 Link 1
检查进程列表,同时查看您的 python 可执行文件在哪个 cpu 内核上运行。
注意:
- 时间可能因进程切换、线程和其他 OS 资源管理以及应用程序代码执行而有所不同(这是无法控制的)
建议:
- 这可能是因为您的系统构建,请尝试在另一台机器或虚拟机上运行您的代码。
阅读:
祝你好运。
~ 范格南院长
关于python - time.clock() 会受到系统状态的严重影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57857413/