眾所周知,Python非常強大,簡單易學(xué),又有很多輪子可以直接拿來用。 但凡事有利必有弊,Python運行速度慢。如果你要做一些很耗時間的事情,就會頭疼。 這時候也許會有人建議你用C,C++等編程語言。 天啊,他們是開玩笑嗎?換C語言有那么容易嗎! 不過現(xiàn)在福音來了,不用換編程語言,也可以把速度提高很多倍。 這就是我今天要介紹的PyPy! 1 做個實驗這是一段普通的Python代碼,計算從0到1億之間的整數(shù)之和: import time 用默認(rèn)的Python解釋器(CPython)運行,然后再用PyPy運行。 它們的運行時間對比大概是這樣的: 當(dāng)然,不同的機器運行可能會有少許差異,但是你可以看到非常明顯的差異。 好吧,我就把這篇文章的目的明說了吧:
下面這句話是Python的發(fā)明者說的:
翻譯成中文的意思是:
2 PyPy是什么?到底什么是PyPy? 難道我要再學(xué)習(xí)一門編程語言嗎? 不不不! PyPy只是另外一種Python代碼執(zhí)行引擎。你的Python代碼可以在不做任何改動的情況下,直接運行在PyPy上。 就好像你原本開一輛夏利汽車,現(xiàn)在給你來了一輛法拉利! 同樣是利,同樣的駕照和駕駛技術(shù),你忽然就變得快樂(快了)起來。因為引擎變了,你的吸引力都變大了很多。 3 又快又好!PyPy為什么可以這么快呢? 我們默認(rèn)使用的CPython解釋器,它的執(zhí)行過程是這樣的: Python源代碼 -> 字節(jié)碼 -> 一句一句解釋成機器語言 -> 執(zhí)行 而PyPy使用Just In Time(JIT)技術(shù)把Python代碼直接編譯成機器語言,大概過程是這樣的: Python源代碼 -> 機器語言 -> 執(zhí)行 就光看上面加粗的字的長度,你也看出PyPy肯定很快。 這是PyPy官網(wǎng)給出的比較綜合的速度對比: 平均來說,PyPy比CPython快4.2倍。 它的好處除了速度快,還有省內(nèi)存。這是官方說明: 更要命的是,PyPy使用它非常簡單! 4 極簡入門1. 下載去官網(wǎng)下載頁面: https://www./download.html 下載適合你的版本: 2. 配置環(huán)境變量下載后隨便解壓到一個位置,并將這個目錄添加到系統(tǒng)環(huán)境變量: 3. 使用pypy替換python命令剩下的就是在運行python命令的地方,改成pypy3就行了。 比如打開交互式Python,直接運行pypy3就可以了: 再比如安裝第三方庫,先安裝pip,然后運行和以前幾乎一樣的命令就行了:
注:由于我很少使用 Windows電腦,本部分截圖來源于機器學(xué)習(xí)算法與Python實戰(zhàn) ,作者海洋。 5 適用型和局限性如果它那么快,又省內(nèi)存,為什么不把默認(rèn)的CPython直接改成pypy,讓地球人都用pypy好了! 本文開頭說過一句話,凡事有利必有弊,沒有什么事情是完美的。 Pypy的好處:
但是它也有不小的局限性:
7 最后的建議總的建議在文章開頭已經(jīng)給了:
|
|