sublime text 不提供代码运行耗时统计功能,wakatime 仅追踪编辑行为时长(如输入、切换文件),而非程序执行时间;真实运行耗时需依赖终端 time 命令或语言内置 profiler。

Sublime Text 本身不提供代码运行耗时统计功能,所谓“代码运行时间统计插件”实际并不存在——你真正需要的是编程活动时间追踪(即你在哪段代码上花了多少编辑时间),不是执行耗时。WakaTime 是唯一成熟、开源、跨编辑器的方案,它统计的是「你敲了多少行、切了多少次文件、写了多久」,而非 Python 或 JS 的 time.time() 那类运行时测量。
为什么找不到“代码运行时间”插件?
Sublime Text 是文本编辑器,不是 IDE,不执行代码,也无运行时环境。所有声称“统计代码运行时间”的插件,要么是混淆概念(实为编辑行为追踪),要么是伪装成时间工具的 snippet / 命令,根本无法获取程序执行耗时。试图在 ST 里测 print("hello") 花了 0.002s?这必须靠终端 + time 命令或语言自身 profiler,和编辑器无关。
- 搜索 “sublime runtime profiler” 或 “sublime execution time” 得到的结果,90% 是 WakaTime 或自定义时间戳插入插件,和运行性能无关
- 有人把 build system 输出里的
real 0m0.123s当成“插件统计”,其实是 shell 的time命令输出,ST 只负责展示 - 任何号称“自动分析函数耗时”的 Sublime 插件,都没法绕过语言运行时限制——它连 Python 解释器进程都进不去
想看真实代码执行耗时?用 build system + time
这是最轻量、最可靠的方式:不装插件,只改 Sublime 的构建系统,让终端帮你计时。
- 打开
Tools → Build System → New Build System… - 填入(以 Python 为例):
{
"shell_cmd": "time python3 \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"variants": [
{
"name": "Run with Time",
"shell_cmd": "time python3 \"$file\" 2>&1"
}
]
}
- 保存为
Python-Time.sublime-build,然后按Ctrl+Shift+B选它 - 输出里会出现类似
real 0m0.042s——这才是真实的 wall-clock 时间 - 注意:
time是 shell 命令,Windows 用户需用 Git Bash / WSL,CMD 不支持
要统计「你写代码花了多久」?装 WakaTime
这才是绝大多数人真正想找的:每天写了几个小时、哪类语言最多、哪个项目耗时最长。WakaTime 是唯一被主流编辑器(VS Code、JetBrains、Sublime)原生支持的编辑行为追踪服务。
- 先装 Package Control(如果还没装):按
Ctrl+`调出控制台,粘贴 ST4 官方安装码(见 packagecontrol.io) - 按
Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜WakaTime并安装 - 注册 wakatime.com 账号,拿到 API Key,在 Sublime 里
Preferences → Package Settings → WakaTime → Settings中填入"api_key": "xxx" - 重启后,它会自动记录:光标停留时间、文件切换、代码修改量,甚至区分
git checkout后的编辑块 - 别配错:
"hide_file_names": true会隐藏敏感路径,但默认是 false;日志存在~/.wakatime.log,出问题先查它
别踩这些坑
很多人卡在第一步就放弃,其实只是配置细节没对:
- WakaTime 安装后没反应?检查控制台(
Ctrl+`)有没有WakaTime DEBUG日志,常见原因是网络被墙,需配代理或换国内镜像源 - 看到
ERROR: Connection refused?不是插件坏了,是本地 wakatime-cli 没装好,删掉~/.wakatime.cfg重来一次 - 以为 InsertDate 或 DateTime 插件能统计编码时间?它们只插字符串,和“耗时”毫无关系
- 自己写 Python 插件调
time.perf_counter()?没用——它只能测插件自身执行那几毫秒,不是你的代码运行时间
真正要运行时数据,就得离开编辑器;真要编辑行为数据,WakaTime 就是目前最稳的选择。其他都是混淆概念的误导信息。











