工程師看過來!Google開源工具Grumpy可將Python轉換成Go語言

2017.01.06 by
張庭瑜
Google
Google在GitHub開源一項實驗專案Grumpy,可將Python程式碼轉換成Go程式碼、且不須再透過虛擬機器即可直接執行,大大提升效能。

Python以直觀且強大的擴充功能,成為近日熱門的程式語言,但記憶體和執行效能問題卻一直是其最大痛點。同樣深受其擾的Google,在GitHub開源一項實驗專案Grumpy,可將Python程式碼轉換成Go程式碼、且不須再透過虛擬機器即可直接執行,大大提升效能。

提升效能

YouTube工程師Dylan Trotter在部落格發文表示,目前YouTube的前端伺服器以及YouTube API,主要都是用Python撰寫,並以目前使用最為廣泛的Python直譯器CPython的版本2.7運作。

不過他們發現,Python在執行「平行處理(comcurrent)」時效能不佳,因此他們開發出「Grumpy」,一套可將Python轉換為Go語言的轉譯器(transcompiler)和Python Runtime。Grumpy和其他轉譯器最大的不同在於,其可將Python原始碼直接轉換成Go語言機器碼,而非需要虛擬機器處理的位元組碼(bytecode),大大提升效能。

Grumpy和CPython的執行效能比較。
Google OpenSource

強化並行工作、可導入Go套件

雖然Grumpy並不支援Python C擴充模組,但在設計API和並行工作負荷的表現上更彈性。此外,Grumpy解決「全域直譯器鎖(global interpreter lock,GIL)」的問題,讓Go可發揮本身「記憶體自動回收機制(garbage collection)」的優勢,也可導入Go套件,讓兩種程式間的互通性變得更強大和直覺。

不過,Dylan Trotter在Hacker News上表示,Grumpy目前尚未真正用於Google產品,且Grumpy仍於實驗階段,仍有許多漏洞待修補。

資料來源:GoogleZDNetHackerNews

延伸閱讀

每日精選科技圈重要消息