嫌Python慢,這個AI分析器幫你檢測、建議優(yōu)化,獲OSDI最佳論文
近幾年,有一種編程語言無處不在,它的大名無人不曉,網(wǎng)絡上甚至鼓吹過學會它就能成為編程高手。它就是 Python。
學會 Python,如有一寶:易于讀寫、兼容性強、豐富的庫以及廣泛的用途,它已經(jīng)在數(shù)據(jù)和機器學習時代變得非常流行了。
但是千萬般好,Python 還是有著自己的弊端的,那就是太慢了!
編程語言有很多種,如 C++、Fortran 和 Java 是其中比較出名的,Python 編寫的程序相對于它們來說就是出了名的慢。
馬薩諸塞大學阿默斯特分校(University of Massachusetts Amherst)的計算機科學家團隊在 Emery Berger 的領導下,推出了一款名為 Scalene 的 Python 分析器。相關的研究《Triangulating Python Performance Issues with SCALENE》獲得了 USENIX 操作系統(tǒng)設計和實現(xiàn)會議(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 分析器沒有或無法完成的工作。它的運行速度比許多其他剖分析器快幾個數(shù)量級,同時提供的信息也要詳細得多。它也是有史以來第一個采用 AI 優(yōu)化建議的分析器。
Berger 談到,計算機不再變得更快,未來速度的提升將更多地來自更快、更高效的編程,而不是更好的硬件。
Scalene 又快又準確。它使用采樣而不是插裝或依賴于 Python 的跟蹤工具。它的開銷通常不超過 10-20%(通常更少)。下圖展示了它的準確性,它可以正確地測量所花費的時間。
使用指南
首先,你需要輸入 OpenAI 密鑰。
輸入有效的密鑰后,單擊任意一行旁邊的 bolt (?) 或整個代碼區(qū)域的 explosion (??),以生成建議的優(yōu)化。單擊建議的優(yōu)化,將其復制到剪貼板。
你可以在 bolt 或 explosion 上點擊任意次數(shù),它將產生不同的建議優(yōu)化。
Emery Berger 簡介
Emery Berger 是馬薩諸塞大學阿默斯特分校信息與計算機科學學院的教授,他于 2002 年畢業(yè)于德克薩斯大學奧斯汀分校,獲得計算機科學博士學位。
Berger 教授一直是 Microsoft 研究和加泰羅尼亞理工大學(UPC)/ 巴塞羅那超級計算中心(BSC)的訪問科學家。他的研究涉及編程語言、運行時系統(tǒng)和操作系統(tǒng),尤其關注如何提高系統(tǒng)的可靠性、安全性和性能。