PyPy
2017年8月10日 - 未分類
Pythonを高速化するPyPyをRaspberryPi3にインストールしてみました。ここを参照しました。
インストール方法
wget https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux-armhf-raspbian.tar.bz2 -O pypy2-v5.8.0-linux-armhf-raspbian.tar.bz2
wget https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux-armhf-raspbian.tar.bz2 -O pypy2-v5.8.0-linux-armhf-raspbian.tar.bz2
tar -jxvf pypy2-v5.8.0-linux-armhf-raspbian.tar.bz2
cd pypy2-v5.8.0-linux-armhf-raspbian/
sudo rm /usr/bin/pypy
sudo ln -s bin/pypy /usr/bin/pypy
pypy -V
Python 2.7.13 (c925e7381036, Jun 05 2017, 20:54:35)
[PyPy 5.8.0 with GCC 4.7.2 20120731 (prerelease)]
pypy setup.py install
cd
sudo pypy -c ‘import numpy’
ソースコード
import time Time = 10 N = 10000000 def list_append(): for i in xrange(Time): array = [] for j in xrange(N): array.append(1) def list_extend(): for i in xrange(Time): array = [] for j in xrange(N): array.extend([1]) def list_extend_list(): for i in xrange(Time): array = [] array.extend(range(N)) def list_intend(): for i in xrange(Time): [1 for i in xrange(N)] if __name__ == '__main__': array= [list_append,list_extend,list_extend_list,list_intend] time.time() for function in array: clock = time.time() function() print (time.time() - clock) / Time
実行結果
python2.7 | pypy | |
list_append | 11.082302999 | 1.81932659149 |
list_extend | 21.6563467026 | 2.52540261745 |
list_extend_list | 2.01237900257 | 1.95026397705e-05 |
list_intend | 4.27665119171 | 0.689387488365 |
結構、高速化されていますね。でも、import cv2でダメでした。importでエラーがでて動作しない。