💡
原文中文,约14800字,阅读约需36分钟。
📝
内容提要
Python 3.12 perf原生支持的特性,允许用户往/tmp/perf-%d.map文件中写入地址与符号之间的映射,从而实现对非NATIVE CODE的采样。
🎯
关键要点
- Python 3.12 perf 原生支持特性,允许用户写入地址与符号之间的映射。
- Python 的栈帧结构与传统的 native application 不同,包含了重要的信息。
- 在 Python 3.12 之前,调试 Python 的主要方式是通过 DTrace 和其他工具进行 trace。
- DTrace 的使用存在平台不通用和性能问题。
- perf 采样在非 NATIVE CODE 中难以生效,Python 3.12 通过支持 perf map 文件解决了这个问题。
- Python 3.12 实现了一种局部的 JIT,通过 trampoline 机制来优化性能。
- perf map 文件的内容可以帮助解析符号,利用 Linux 的 perf 生态进行更好的性能分析。
- Python 3.12 的新特性实现巧妙,提升了 Python 程序的 trace 和性能分析能力。
🏷️
标签
➡️