讲师中心 微信公众号
AI工具推荐 视频效率加速

Python memray 的火焰图与实时分析

落静吖_5613

落静吖_5613

发布时间:2026-02-17 14:19:47

|

756人浏览过

|

来源于php中文网

原创

memray火焰图看不到Python函数名是因为默认不采集Python帧信息,需添加--record-python-allocations参数启用,但会带来2–3倍性能开销。

python memray 的火焰图与实时分析

memray flamegraph 为什么看不到 Python 函数名

默认生成的火焰图里只有 C 扩展函数或地址,Python 层调用栈空白——这是因为 memray 默认不采集 Python 帧信息,得手动开开关。

  • 运行时必须加 --record-python-allocations 参数,否则 flamegraph 只能显示 malloc、PyObject_Malloc 这类底层分配点
  • 如果用了 memray run --live 实时模式,这个参数同样要带上,不然 Web UI 里也看不到 Python 函数
  • 开启后性能开销明显增加(约 2–3 倍),只在定位内存热点时启用,别长期开着

memray live 模式连不上 localhost:8080

启动 memray run --live 后浏览器打不开,或者提示连接被拒绝,大概率是端口冲突或权限问题。

  • 默认端口是 8080,但 macOS 上可能被 AirPlay 占用,Linux/macOS 可改用 --web-port 8081
  • Windows 用户如果开了 Hyper-V 或 WSL2,localhost 可能解析失败,试试用 127.0.0.1:8080 直连
  • 某些公司网络策略会拦截非标准端口,临时关掉代理或换企业允许的端口范围(如 8000–8999)

memray 分析结果里 [unknown] 占比太高

火焰图或统计表里大量 [unknown],说明符号信息缺失,无法回溯到具体代码行。

python-pro
python-pro

高级 Python 特性、异步编程、性能调优、静态类型、内存管理、Python 内部机制及生态库方面的专家。

下载
  • 确保 Python 是从源码编译安装的(不是 pyenv prebuilt 或 conda 的 stripped 版本),否则调试符号被裁剪
  • 用 python -m pip install --no-binary :all: memray 安装,避免 wheel 包跳过本地编译步骤
  • 如果项目用了 Cython 或 C 扩展,得在编译时加 -g 选项保留 debug info,否则 memray 拿不到函数名

实时分析时 CPU 突增到 100%,但内存没涨

memray --live 自身吃 CPU 高,和目标程序内存增长无关,这是采样机制导致的固有代价。

立即学习“Python免费学习笔记(深入)”;

  • 默认每毫秒采样一次,对高频小对象分配(比如循环里建 dict/list)压力极大;可加 --sampling-rate 10 降到每 10ms 一次
  • Web UI 每秒轮询数据,如果火焰图层级太深(>50 层),前端渲染也会卡顿,这时关掉火焰图、只看「Top Allocators」更稳
  • 别在生产环境长期跑 --live,它本质是调试工具,上线前换成 memray run -o report.bin 离线分析

真正难的是平衡采样精度和干扰程度——采得太密,程序行为就失真;采得太疏,又抓不到瞬时峰值。实际调试时,先用低频跑通路径,再局部提频验证,比一上来就全量埋点靠谱得多。

热门AI工具

更多
PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

2790

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

6423

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

8022

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

3987

2025.07.23

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

5347

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2348

2023.08.10

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

3139

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2718

2023.07.27

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

0

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn