国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 独山县| 吉安市| 洛隆县| 从化市| 平果县| 湄潭县| 舒城县| 海盐县| 丘北县| 上栗县| 桃江县| 临猗县| 兰西县| 西青区| 襄城县| 蒲城县| 瑞安市| 湟中县| 伊川县| 灵台县| 大港区| 阿合奇县| 象州县| 罗平县| 阜新市| 阜平县| 德兴市| 宁阳县| 兴城市| 库车县| 惠水县| 泸溪县| 仪征市| 乌恰县| 南乐县| 镇安县| 巴塘县| 西宁市| 浦县| 湘潭县| 罗定市|