centos 6.5 6.7 下编译测试pypy2.3 pypy5.4.1

如果不想编译的话,可以直接下rpm包安装

下载地址  http://pkgs.org/search/?keyword=pypy

 

pypy2.6的编译

############################################################################################

http://www.simonzhang.net/?p=2308

 编译环境使用dell服务器,CPU主频2.6GHz,内存32G,操作系统使用CentOS6.5 64位,python为2.7。简单操作记录如下。

yum install gcc* make libffi libffi-devel expat expat-devel \
       bzip2 bzip2-devel libncurses-devel libssl-dev libgc-dev

wget https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-src.tar.bz2
tar jxvf pypy-2.3-src.tar.bz2
mv pypy-pypy-394146e9bb67 /usr/local/pypy
cd /usr/local/pypy
python rpython/bin/rpython -Ojit pypy/goal/targetpypystandalone.py  注意,不能用nohup或者&来后台执行这个命令

  耐心等待一个多小时(104m56.034s)编译完成。到pypy目录下看到pypy-c的可执行文件。

rpyhon 编译参数
-O : 编译为字节码后的优化级别。默认为2,此处使用的jit。

级别说明:
0 – 关闭优化功能,编译速度最快。使用的是系统垃圾回收器(Debian package libgc-dev)。0和1级别外都是使用的内置垃圾回收器。0和1运行速度会非常慢。
1 – 使用非耗时的优化
size – 最大限度的减小可执行文件的体积
mem – 最大程度减小内存消耗
2 – 开启所有优化,获得好的运行性能
3 – 同2类似,使用gcc重新编译pypy部分。
jit – 开启所有优化,使用jit即时编译器。jit是将字节码转换成可以直接发送给处理器的指令的程序。

  编译是单核进行的,所以多核是没有意义,如果想快就要主频高,内存高。如果是用云主机2G内存的话估计要一、两天时间。
  注:操作系统CentOS 6.3编译有问题。具体问题没有详细查。
  计算速度测试代码位置http://www.simonzhang.net/?p=1844
  使用python运行 14.9753940105秒,pyp运行3.56524395943秒。

 

注意:报错 curses模块找不到的解决方案

 yum install ncurses ncurses-devel

重新下载python make makeinstall  覆盖原来的软连接

 

 

################################################################################

 

 

pypy5.4.1的编译  系统centos6.7

#############################################################################

第一,升级centos6.7的内核

参考博文 关键字(docker 部署流程)

第二,安装扩展包

yum install gcc* make libffi libffi-devel expat expat-devel \
       bzip2 bzip2-devel libncurses-devel libssl-dev libgc-dev
yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel
yum install openssl
 yum install ncurses ncurses-devel

第三,首先安装python2.7.10 ,参考博文(关键字搜索python apache)

        删除系统python链接 rm /usr/bin/python

        然后ln -s /usr/local/python2.7.10/bin/python /usr/bin/python

第四,解决yum用不了的问题,

        所以修改yum的配置修改文件: vim /usr/bin/yum

        修改头#!/usr/bin/python  => #!/usr/bin/python2.6


第五,编译如上面
python rpython/bin/rpython -Ojit pypy/goal/targetpypystandalone.py  注意,不能用nohup或者&来后台执行这个命令

#############################################################################



分享到: 微信 更多