近几年,有一种编程语言无处不在,它的大名无人不晓,网络上甚至鼓吹过学会它就能成为编程高手。它就是 Python。
学会 Python,如有一宝:易于读写、兼容性强、丰富的库以及广泛的用途,它已经在数据和机器学习时代变得非常流行了。
但是千万般好,Python 还是有着自己的弊端的,那就是太慢了!
编程语言有很多种,如 C++、Fortran 和 Java 是其中比较出名的,Python 编写的程序相对于它们来说就是出了名的慢。
马萨诸塞大学阿默斯特分校(University of Massachusetts Amherst)的计算机科学家团队在 Emery Berger 的领导下,推出了一款名为 Scalene 的 Python 分析器。相关的研究《Triangulating Python Performance Issues with SCALENE》获得了 USENIX 操作系统设计和实现会议(OSDI)的最佳论文奖。
Emery Berger 表示, Python 比其他语言慢 100 到 1000 倍,有些任务在 Python 中可能需要 60,000 倍的时间。而 Scalene 可以有效地准确识别 Python 在哪里滞后,让程序员能够排除故障并简化代码,以获得更高的性能。
该项目也开源了,GitHub 标星近 10 万。
- 项目地址:https://github.com/plasma-umass/scalene
- 论文地址:https://arxiv.org/pdf/2212.07597.pdf
其实程序员们早就知道 Python 的这个缺点,为了帮助解决低效率问题,他们可以使用分析器运行程序,然后查明原因和哪些部分运行缓慢。
Scalene 就是一款适用于 Python 的高性能 CPU、GPU 和内存分析器,它能完成许多其他 Python 分析器没有或无法完成的工作。它的运行速度比许多其他剖分析器快几个数量级,同时提供的信息也要详细得多。它也是有史以来第一个采用 AI 优化建议的分析器。
Berger 谈到,计算机不再变得更快,未来速度的提升将更多地来自更快、更高效的编程,而不是更好的硬件。
Scalene 又快又准确。它使用采样而不是插装或依赖于 Python 的跟踪工具。它的开销通常不超过 10-20%(通常更少)。下图展示了它的准确性,它可以正确地测量所花费的时间。
使用指南
首先,你需要输入 OpenAI 密钥。
输入有效的密钥后,单击任意一行旁边的 bolt (⚡) 或整个代码区域的 explosion (💥),以生成建议的优化。单击建议的优化,将其复制到剪贴板。
你可以在 bolt 或 explosion 上点击任意次数,它将产生不同的建议优化。
Emery Berger 简介
Emery Berger 是马萨诸塞大学阿默斯特分校信息与计算机科学学院的教授,他于 2002 年毕业于德克萨斯大学奥斯汀分校,获得计算机科学博士学位。
Berger 教授一直是 Microsoft 研究和加泰罗尼亚理工大学(UPC)/ 巴塞罗那超级计算中心(BSC)的访问科学家。他的研究涉及编程语言、运行时系统和操作系统,尤其关注如何提高系统的可靠性、安全性和性能。