面向 .NET 的基准测试库,可将 C# 方法转换为可复现的性能测试并自动生成统计报告。
pyutils/line_profiler
逐行分析 Python 函数耗时的性能剖析工具,可定位函数中每一行代码的执行时间。
- Star
- 3,252
- Fork
- 143
- 未关闭 Issue
- 59
- 最近提交
- 20天前
这是什么?
line_profiler 可以逐行统计 Python 函数的执行耗时。当函数级分析已经找到慢函数,需要进一步确认是哪几行代码占用了时间时,它就派上用场。用 @profile 装饰器标记目标函数后,脚本运行结束时会输出每行的命中次数、耗时和占比。
推荐用法是从 line_profiler 导入 profile,装饰需要分析的函数,然后设置环境变量 LINE_PROFILE=1 再正常运行脚本。项目同时附带命令行工具 kernprof,支持较早的 kernprof -lv 用法。通过 pip 安装,要求 Python 3.10 或更高版本。
本仓库是 PyPI 上 line_profiler 包当前指向的维护分支,延续了 rkern 维护的原始项目。文档包含基础用法、示例和常见问题。
核心功能
- 01按行输出被装饰函数的调用次数、耗时和占比。
- 02通过 @profile 装饰器和 LINE_PROFILE 环境变量启用分析。
- 03附带命令行工具 kernprof。
- 04可通过 pip 从 PyPI 安装,常见平台提供预编译 wheel。
- 05支持通过 ipython 额外依赖项集成 IPython。
适用场景
- 定位慢速 Python 函数中耗时最多的具体代码行。
- 在优化数据处理或数值计算脚本之前进行性能分析。
- 验证代码改动对热点函数中特定行的实际影响。
快速上手
- 1
使用 pip 安装 line_profiler
pip install line_profiler - 2
导入 profile 并给要分析的函数加上装饰器
- 3
设置环境变量 LINE_PROFILE=1 并正常运行脚本
使用前须知
- 需要 Python 3.10 或更新版本;旧版 Python 需要使用旧版本的包。
- 从源码安装可能需要 C 编译器,从 git 检出代码还需要 Cython。
标签
常见问题
- line_profiler 是什么?
- 逐行分析 Python 函数耗时的性能剖析工具,可定位函数中每一行代码的执行时间。 line_profiler 可以逐行统计 Python 函数的执行耗时。当函数级分析已经找到慢函数,需要进一步确认是哪几行代码占用了时间时,它就派上用场。用 @profile 装饰器标记目标函数后,脚本运行结束时会输出每行的命中次数、耗时和占比。
- line_profiler 可以免费使用吗?用的什么许可证?
- line_profiler 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- line_profiler 还在维护吗?
- 活跃维护中。line_profiler 最近一次提交是在 2026年10月18日。
- line_profiler 适合用来做什么?
- 定位慢速 Python 函数中耗时最多的具体代码行。 在优化数据处理或数值计算脚本之前进行性能分析。 验证代码改动对热点函数中特定行的实际影响。
- line_profiler 怎么安装和运行?
- 使用 pip 安装 line_profiler: pip install line_profiler 导入 profile 并给要分析的函数加上装饰器 设置环境变量 LINE_PROFILE=1 并正常运行脚本
- 在哪里获取 line_profiler?
- 源代码和安装说明在 GitHub 上:https://github.com/pyutils/line_profiler
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.2万+2 本周1080C#MIT维护活跃更新于 18小时前
一款 PHP 开发调试工具,在浏览器中展示请求、数据库查询、日志、时间线等运行时信息,主要用于 Laravel 应用。
5947+2 本周332PHPMIT更新于 2个月前
面向 AI 编程助手的 .NET 10-11 性能调优技巧合集,主要针对基准测试场景。
305+16 本周11C#MIT更新于 6天前
面向 Python 的内存分析器,可追踪 Python 代码、原生扩展及解释器自身的内存分配,并生成多种报告。
1.5万+12 本周486PythonApache-2.0维护活跃更新于 3天前
一款低开销的 Python 追踪工具,将代码执行过程记录并以交互式时间线可视化。
7775+6 本周480PythonApache-2.0更新于 上个月
用 C 编写的 CPython 栈采样器,无需修改代码即可低开销地分析运行中的 Python 进程。
2215+4 本周68CGPL-3.0更新于 10天前