code runner 显示 execution time 需三处配置对齐:code-runner.showexecutionmessage 设为 true、runinterminal 设为 false、preservefocus 设为 false,改后需重载窗口。

Code Runner 插件配对正确设置就能直接看到 Execution Time,不用改代码、不依赖语言环境——但默认不显示,三处配置必须对齐。
Code Runner 怎么配才出 Execution Time
它不是装上就显示时间,关键在三处设置是否生效:
-
code-runner.showExecutionMessage必须设为true(默认是false) -
code-runner.runInTerminal建议设为false:设为true会新开外部终端,VS Code 不捕获输出,自然不打印耗时 -
code-runner.preserveFocus建议设为false:否则焦点切到终端后,你可能根本没看到最后一行Execution Time: 0.123s
改完记得重载窗口(Ctrl+Shift+P → “Developer: Reload Window”),再右键 Run Code 测试。Python/Node.js/Go 等语言还得确保解释器或编译器在系统 PATH 中,否则连运行都失败。
time.time() 适合什么场景
不依赖插件、不挑环境,但只适合调试单段同步逻辑:
- 别用
time.clock():Python 3.8+ 已彻底移除 - 普通脚本用
time.time()足够;time.perf_counter()是给纳秒级压测准备的,语义反而模糊 - 有
subprocess.run()或asyncio.run()的代码,计时结果包含等待外部进程或协程调度的时间,不代表 Python 本身执行开销
示例写法:
import time
start_time = time.time()
result = sum(range(10**6))
end_time = time.time()
print(f"耗时: {end_time - start_time:.4f}s")
为什么 Code Time 和 WakaTime 都不行
它们压根不是为这个设计的,混淆概念会导致反复折腾:
-
Code Time只统计你在编辑器里敲键盘、保存、切换文件的“编码行为”时长,python main.py在终端跑 10 分钟,它一秒钟都不会记 -
WakaTime同理,它的数据来源是编辑器事件(onDidChangeTextDocument等),不是进程生命周期;~/.codetime/和~/.wakatime.log里永远找不到Execution Time - 有人试过用 Tasks + WakaTime 组合,但 Task 启动终端后编辑器失焦,WakaTime 自动暂停——这是预期行为,没法绕过
函数级耗时得用 cProfile 或 Chrome DevTools
没有插件能“自动给每行标执行时间”,那违背 Python 的执行模型。真正靠谱的是:
- Python:标准库
cProfile配合 VS Code 自带的 Profiler 可视化查看各函数独占/累计耗时 - Node.js:VS Code 调试器底层就是 V8 Inspector 协议,启用
"profile": true后点“录制 CPU 配置文件”按钮,自动生成火焰图 - 注意看
Self Time (ms)列,而不是总耗时——高频调用的小函数(比如每次 2ms 被调 5000 次)才是真正瓶颈
VS Code 的 profiling 结果不会自动保存,关掉就丢,记得点击“保存”图标导出为 .cpuprofile 文件。











