Repolode
pyutils

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. 1

    使用 pip 安装 line_profiler

    pip install line_profiler
  2. 2

    导入 profile 并给要分析的函数加上装饰器

  3. 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 数据每日更新。

相关项目