【问题标题】:What does these parameters mean in jupyter notebook when I input "%%time"?当我输入“%%time”时,这些参数在 jupyter notebook 中是什么意思?
【发布时间】:2018-06-20 12:53:18
【问题描述】:
  1. 我在我的 jupyter notebook 中创建了一个新单元格。
  2. 我在新单元格的第一行输入%%time
  3. 我在第二行输入了一些代码。
  4. 我运行这个单元并得到如下一些信息

    CPU时间:用户2分8秒,系统:14.5秒,总计:2分22秒

    挂起时间:1 分 29 秒

我的问题是这些参数是什么意思? CPU时间、用户、系统、总计(我认为是用户+总计)、Wall time

【问题讨论】:

    标签: time parameters jupyter-notebook


    【解决方案1】:

    如果我们在一个单元格中运行下面的代码:

    %%time
    
    from time import sleep
    
    for i in range(3):
        print(i, end=' ')
        sleep(0.1)
    

    输出是:

    0 1 2 
    CPU times: user 5.69 ms, sys: 118 µs, total: 5.81 ms
    Wall time: 304 ms
    

    挂墙时间是指挂在计算机外墙上的时钟从代码提交到 CPU 到处理完成的时间为 304 毫秒。

    用户时间和系统时间都是指 CPU 实际处理代码所花费的时间。专用于我们代码的 CPU 时间只是墙上时间的一小部分,因为 CPU 将注意力从我们的代码转移到系统上运行的其他进程。

    用户时间是在内核之外占用的 CPU 时间。系统时间是内核内部所花费的时间。 CPU总时间是用户时间+系统时间。用户和系统时间之间的差异在帖子中得到了很好的解释:

    What do 'real', 'user' and 'sys' mean in the output of time(1)?

    【讨论】:

    • 感谢您的回答和链接。我可以理解Wall time。但我需要更多时间来了解sysuserkernel
    • 我只了解基础知识。该链接提供了对该主题的深入报道。如果我的帖子确实足以回答您的问题,请接受。
    • 我其实有一个案例,wall time 小于 user 和 total time,比较混乱。你能解释一下吗?
    • 也许进程已经分叉并且子进程在多核系统上并行运行。即使他们并行运行,所有孩子的运行时间也会加在一起,给出比墙时间更大的值。
    • 这是我的输出:CPU时间:用户32分钟24秒,系统:26.6秒,总计:32分钟50秒;挂壁时间:16 分 30 秒。所以这个单元需要 16 分钟的实际时间来运行,但 CPU 需要 32 分钟来处理代码?为什么cpu时间比实时长?
    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多