python - time.clock() 会受到系统状态的严重影响吗?

标签 python time python-2.x clock wall-time

这是一个相当笼统的问题:

我遇到的问题是 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 内核上运行。

  • 检查 cpu 上的线程优先级状态 Link 2 , Link 3

注意:

  • 时间可能因进程切换、线程和其他 OS 资源管理以及应用程序代码执行而有所不同(这是无法控制的)

建议:

  • 这可能是因为您的系统构建,请尝试在另一台机器或虚拟机上运行您的代码。

阅读:

祝你好运。

~ 范格南院长

关于python - time.clock() 会受到系统状态的严重影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57857413/

相关文章:

python - Pandas 通过多个键连接数据框

python - 动态格式化字符串

python - 为什么这个查询在 mysql 工作台中有效,而在 python 中运行时无效

excel - 我在 excel 中有 3 个时间段 - 我需要知道最长连续时间段的持续时间

Python - 使用 lambda 格式化和映射列表 - 'list' 对象没有属性 'map'

python - 量化坐标的相对位置 - python

php - Timediff计算where查询

java - Avro Java API 时间戳逻辑类型?

python - 为什么python会在大指数结果的末尾添加一个 'L'?

python - 类型错误 : expected a character buffer object