Jupyter Notebook 怎么实时监控代码运行时间

轻丽同学_4508

轻丽同学_4508

2026-08-23

656人浏览

原创

%%time测整个单元格总耗时,%time仅测单行语句;pytorch gpu计时需加torch.cuda.synchronize()确保同步,否则仅测任务提交延迟。

jupyter notebook 怎么实时监控代码运行时间

%%time 和 %time 魔法命令怎么选

直接在单元格开头写 %%time%time 就能测时间,不用装插件、不重启内核。区别很实际:%%time 测整个单元格所有代码的总耗时(含 import、变量赋值、循环等),%time 只测单行表达式。比如想看 pd.read_csv('data.csv') 花多久,用 %time pd.read_csv('data.csv');如果单元格里有数据清洗+绘图一整套流程,就用 %%time

PyTorch/TensorFlow 里测 GPU 时间为什么不准

CUDA 和 cuDNN 操作默认异步提交,%%time 常常只测到“发任务”那一下,返回毫秒级结果,实际计算还在后台跑。必须手动同步:

  • PyTorch:加一行 torch.cuda.synchronize() 在待测代码末尾
  • TensorFlow 2.x:用 tf.test.compute_gradient() 不现实,更可靠的是 tf.config.experimental.set_memory_growth 配合 tf.function 编译后,在关键步骤后插入 tf.device('/CPU:0'): pass 强制等待(或直接用 time.time() 包裹 .numpy() 触发同步)
  • 别依赖 %timeit 默认行为——它会自动重复执行,但没默认加同步,得显式写 torch.cuda.synchronize() 在每轮末尾

jupyter_contrib_nbextensions 的 ExecuteTime 插件真能“实时”吗

不能。它只在单元格执行完后,在右上角补一个静态时间戳,不是运行中刷新的“实时”。而且容易失效:

Jupyter Notebook 7.5.4
Jupyter Notebook 7.5.4

Jupyter Notebook 7.5.4 官方 PyPI wheel 包下载,适合用于本地交互式代码运行、数据分析、教学演示和配置文件实践。

下载
  • 升级 Jupyter 7+ 后,jupyter_contrib_nbextensions 已基本不维护,和新版本内核兼容性差
  • 启用后若没看到时间显示,先检查是否勾选了 “Disable configuration” —— 这个开关默认是开的,必须手动关掉
  • 安装顺序错会导致 JS 文件没加载:jupyter contrib nbextension install --user 必须在 pip install jupyter_contrib_nbextensions 之后、且在 notebook 关闭状态下运行
  • Windows 下 Anaconda Prompt 而非普通 cmd 才能正确识别环境路径

需要真正实时刷新怎么办

没有开箱即用的“实时进度条式计时”,但可组合实现:

  • tqdm 包裹迭代过程,本身带耗时估算:from tqdm import tqdm; for i in tqdm(range(1000)):
  • 自己写轻量计时器:定义一个 start = time.perf_counter(),在循环里每 N 步 print f"已运行 {time.perf_counter() - start:.2f}s"
  • 避免用 datetime.now() —— 它精度低、受系统时钟跳变影响;坚持用 time.perf_counter()
  • 注意:Jupyter 输出缓冲可能导致 print 延迟,加 flush=True 强制刷出:print(f"耗时: {t:.2f}s", flush=True)

真实场景里,“实时”往往是个错觉——Python GIL、GPU 异步、notebook 输出机制共同决定了你没法像终端那样毫秒级刷新。最稳的方案还是分层测量:%%time 看整体,time.perf_counter() 插桩看关键段,GPU 场景死守 synchronize()。否则测出来的数字,连参考价值都没有。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

140

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

60

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

40

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

360

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

120

22

GDB C++程序怎么调试
GDB C++程序怎么调试

本专题围绕GDB调试C++程序的实际过程,详细说明程序编译、调试器启动、命令行参数传入、断点命中和程序继续运行等步骤,并介绍条件断点、临时断点和观察点的设置方法,方便开发者跟踪复杂代码的执行状态。

2026.09.11

120

20

Iris框架MVC架构与依赖注入合集
Iris框架MVC架构与依赖注入合集

本专题讲解Iris框架MVC开发模式,包含控制器注册、方法命名与路径映射、By参数绑定、BeforeActivation自定义路由,以及依赖注入容器注册、数据库依赖注入、返回值序列化及MVC下WebSocket与gRPC整合实践。

2026.09.11

80

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程