• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

针对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读取应用程序的内存。 Frederickson声称,这样,Py-Spy可以安全地用于生产中。

生成的迹线可以转储到控制台,在控制台中,最常用的功能显示在列表中,也可以可视化为火焰图。 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)提出了他所谓的“一个非常可怕的骇客技巧,对其他人可能有用”,将Py-Spy二进制文件捆绑在pip安装包中。

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

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
一种基于MATLAB的机械臂工作空间简单算法发布时间:2022-07-18
下一篇:
MATLAB学习笔记(三)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap