python语法分析器_新的Python应用程序分析器使用Rust来提高速度和安全性

python语法分析器

针对Python开发人员的新采样分析器工具Py-Spy无需收集代码,甚至无需重启运行的应用程序即可收集有关正在运行的Python程序的统计信息。

由开发商Ben Frederickson撰写的Py-Spy可以通过Python的pip安装程序进行安装,并且可以在Linux和Windows上运行。 这使得它的安装变得简单,并且在大多数运行Python的环境中很有用。

[ 什么是Python? 您需要知道的一切 •教程: 如何开始使用Python 每个Python开发人员都有6个基本库 为什么应该使用Python进行机器学习 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

Frederickson在他的项目笔记中说,大多数用于Python的性能分析系统都要求更改源代码以对应用程序进行检测。 除了修改源代码的麻烦之外,这还意味着配置文件代码必须与应用程序本身在同一进程中运行。 他写道:“这意味着使用这些事件探查器来调试生产服务中的问题通常并不安全,因为它们通常会对性能产生明显影响。”

间谍 IDG

正在运行的Python脚本的实时配置文件。 统计信息是从Python可执行文件中提取的,可以根据总体时间或所用时间的百分比进行排序。

Py-Spy采用了不同的方法。 它作为一个单独的进程运行,获取Python应用程序的进程ID进行分析,并在运行该平台的平台上使用内核级API读取应用程序的内存。 Py-Spy Frederickson声称,这样可以安全地在生产中使用。

生成的迹线可以转储到控制台,在控制台中,最常用的功能显示在列表中,也可以可视化为火焰图。 Py-Spy还提供统计信息,显示一个进程在Python解释器的全局解释器锁(GIL)上等待的时间。 GIL强制执行线程安全的内存管理,但要以多线程性能为代价,因此Py-Spy可以提供一些有关GIL对任何应用程序有多大影响的观点。

Py-Spy使用Rust编写的二进制文件来完成其许多魔术。 捆绑到Python应用程序中的大多数二进制文件都是用C或C ++编写的,或者是使用Python的Cython变体(可编译为本地C)编写的。但是涌现了一些项目,以使编写与Python交互的Rust应用程序变得更加容易, 反之亦然 ,充分利用Rust的内存安全性和本机速度。

目前,以这种方式使用Rust有一个缺点:Python的setuptools系统尚未集成构建和捆绑Rust二进制文件的支持。 通常,在安装Py-Spy的系统上需要Rust编译器。 弗雷德里克森(Fredericksen)制定出了他所谓的“对其他人可能有用的非常可怕的hack”,将Py-Spy二进制文件捆绑在pip安装包中。

Py-Spy本身的另一个限制是它无法收集有关在同一进程中运行的Python的C扩展的信息,而不能收集Python解释器本身。 但是,弗雷德里克森(Frederickson)指出,可能需要做一些额外的工作,例如使用libunwind库。

翻译自: https://www.infoworld.com/article/3304313/new-python-app-profiler-uses-rust-for-speed-and-safety.html

python语法分析器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值