Repolode
plasma-umass

plasma-umass/scalene

一款 Python 性能分析器,可逐行统计 CPU、GPU 和内存消耗,并可选生成 AI 优化建议。

Star
13,550
Fork
446
未关闭 Issue
154
最近提交
6天前

这是什么?

Scalene 是一款 Python 程序性能分析工具,可以按行和按函数统计 CPU 时间、NVIDIA GPU 时间以及内存分配。它能区分 Python 代码与 C/C++ 等原生库代码的耗时,并统计系统时间,便于定位 I/O 瓶颈。Scalene 基于采样而非插桩追踪,因此额外开销较低。

除耗时外,Scalene 还能追踪内存增长和拷贝量,标记可能存在内存泄漏的代码行,并支持异步代码中 await 的等待时间统计。分析结果可以在离线可用的 Web 界面、终端或独立 HTML 文件中查看,也可在 VS Code 和 Jupyter 中使用,并支持自由线程版 Python 3.13t 和 3.14t。

在 GUI 中,Scalene 可将热点代码发送给 OpenAI、Azure、Amazon Bedrock 或本地 Ollama 模型,生成优化建议。建议按需生成,使用时需要自行提供凭据。

核心功能

  • 01按行区分 Python 代码、原生代码和系统时间的 CPU 耗时。
  • 02统计 NVIDIA GPU 耗时与内存分配,包括逐行内存增长。
  • 03检测可能的内存泄漏,并统计 Python 与库之间的拷贝量。
  • 04按行统计 async 代码中 await 的等待时间及并发数。
  • 05提供离线 Web 界面、终端输出和独立 HTML 导出。
  • 06可通过 AI 服务为热点代码生成优化建议。

适用场景

  • 定位慢速 Python 脚本中占用 CPU 或内存最多的代码行。
  • 判断性能瓶颈来自 Python 代码、原生库还是 I/O。
  • 排查数据处理流程中的内存泄漏或不必要的数组拷贝。
  • 分析异步服务中 await 是串行等待还是并发执行。

快速上手

  1. 1

    使用 pip 安装 Scalene

    python3 -m pip install -U scalene
  2. 2

    分析你的程序

    scalene run your_prog.py
  3. 3

    在浏览器中查看分析结果

    scalene view

使用前须知

  • GPU 分析目前仅限于基于 NVIDIA 的系统。
  • AI 优化建议需要你自行提供 OpenAI、Azure、Amazon Bedrock 等服务商的凭据,或使用本地 Ollama 模型。

收录于专题

标签

#python#profiling#performance-analysis#memory-profiling#cpu-profiling#gpu#async#cpu#gpu-programming#memory-allocation

常见问题

scalene 是什么?
一款 Python 性能分析器,可逐行统计 CPU、GPU 和内存消耗,并可选生成 AI 优化建议。 Scalene 是一款 Python 程序性能分析工具,可以按行和按函数统计 CPU 时间、NVIDIA GPU 时间以及内存分配。它能区分 Python 代码与 C/C++ 等原生库代码的耗时,并统计系统时间,便于定位 I/O 瓶颈。Scalene 基于采样而非插桩追踪,因此额外开销较低。
scalene 可以免费使用吗?用的什么许可证?
scalene 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
scalene 还在维护吗?
活跃维护中。scalene 最近一次提交是在 2026年11月1日。
scalene 适合用来做什么?
定位慢速 Python 脚本中占用 CPU 或内存最多的代码行。 判断性能瓶颈来自 Python 代码、原生库还是 I/O。 排查数据处理流程中的内存泄漏或不必要的数组拷贝。 分析异步服务中 await 是串行等待还是并发执行。
scalene 怎么安装和运行?
使用 pip 安装 Scalene: python3 -m pip install -U scalene 分析你的程序: scalene run your_prog.py 在浏览器中查看分析结果: scalene view
在哪里获取 scalene?
源代码和安装说明在 GitHub 上:https://github.com/plasma-umass/scalene

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目