国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

聊聊Python中的pypy

2020-02-16 11:37:10
字體:
來源:轉載
供稿:網友

PyPy是一個虛擬機項目,主要分為兩部分:一個Python的實現和 一個編譯器

PyPy的第一部分: 用Python實現的Python

  其實這么說并不準確,準確得說應該是用rPython實現的Python,rPython是Python的一個子集,雖然rPython不是完整的Python,但用rPython寫的這個Python實現卻是可以解釋完整的Python語言。

PyPy的第二部分:編譯器

這是一個編譯rPython的編譯器,或者說這個編譯器有一個rPython的前端,目前也只有這么一個前端,不過它的后端卻是不少,也就是說這個編譯器支持許多的目標語言,比較重要的有:C,CIL,JavaScript...

第一部分看成pypy(1)第二部分看成pypy(2)

為什么你在同一層面下同時需要這兩者?你可以這樣想一下:PyPy(1)是一個用RPython寫的解釋器,因此它能加載用戶的Python代碼并將它編譯成字節碼。但是這個用RPython寫的解釋器本身要能運行,就必須要被另外一個Python實現去解釋。我們可以直接用CPython去.運行這個解釋器。但是這個還不夠快取而代之,我們使用了PyPy(2)去編譯這個PyPy的解釋器,生成其他平臺(比如C,JVM或CLI)代碼在我們的機器上運行,并且還加入了JIT特性。JIT能夠把字節碼轉換成機器語言,pypy之所以快,是因為它整合了JIT跟蹤技術的優化編譯器。

pypy性能測試

Cpython2.7.6,pyston0.2,pypy2.2.1的性能對比,使用的是pyston源代碼目錄下的minibenchmarks和microbenchmarks中
的python代碼來跑,對比結果如下表所示

 


 

Cpython2.7.6

pyston0.2

microbenchmarks




attribute_lookup.py

258.544s

200.387s

2.667s

attrs.py

0.622s

1.658s

0.086s

closures.py

0.485s

6.658s

0.058s

empty_loop.py

3.532s

19.248s

0.248s

fib2.py

3.375s

0.669s

0.804s

fib.py

3.696s

0.636s

0.864s

function_calls.py

5.283s

0.878s

0.303s

gcj_2014_2_b.py

1.527s

45.803s

0.276s

gcj_2014_3_b.py

0.022s

0.174s

0.069s

iteration.py

0.185s

1.242s

0.062s

lcg.py

2.910s

9.097s

0.235s

listcomp_bench.py

10.132s

56.170s

1.379s

nested.py

0.368s

6.828s

0.057s

polymorphism.py

4.358s

4.390s

14.260s

prime_summing.py

20.197s

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精河县| 浦县| 卢氏县| 宝应县| 达州市| 炎陵县| 平阴县| 山东省| 芒康县| 新泰市| 泸西县| 桐庐县| 剑阁县| 太湖县| 祁东县| 达孜县| 陕西省| 高陵县| 泗水县| 扎兰屯市| 高安市| 阳信县| 太谷县| 都安| 清新县| 商丘市| 离岛区| 平江县| 晋中市| 五大连池市| 绥化市| 长宁县| 图木舒克市| 田阳县| 青海省| 彭州市| 资溪县| 治多县| 平阴县| 永胜县| 开化县|