标签: pypy

即使脚本只运行一次,Pypy JIT也会提高速度?

我有一个脚本,加载数百个图像,调整大小,然后组成一个更大的图像

每次都使用不同的图像集开始:

python myscript.py imageFolder/
Run Code Online (Sandbox Code Playgroud)

使用Pypy在virtualenv中运行它并没有显示出明显的速度增益(使用mprofile在~8秒内运行,pypy版本在PIL.resize中花费更多时间而在包初始化中花费更少).

这是因为JIT只为长时间运行的流程提供了优势?

如果是这样,我可以将脚本转换为守护进程(但我担心内存泄漏).

python pypy

2
推荐指数
1
解决办法
618
查看次数

在Pypy上为Numpy做贡献

我正在寻找一些关于numpy on pypy的工作.我是一个巨大的Python粉丝,并且让它在数值/科学计算领域走向实际选择对我来说是巨大的.它显然有很长的路要走,但如果你不需要C级优化,那么开发起来会更漂亮.

我正在网站和谷歌上进行一些挖掘,但我只是找到了捐赠的链接.我应该从哪里开始直接实施在pypy中实施numpy?

谢谢

open-source pypy numpy scipy

2
推荐指数
1
解决办法
305
查看次数

PyPy显示不准确的基准测试结果?

我正在研究Project Euler,并想知道我是否可以使用PyPy来加速我的解决方案.但是,我发现结果非常令人失望,因为它需要更多时间来计算.

d:\projeuler>pypy problem204.py
3462.08630405 mseconds

d:\projeuler>python problem204.py
1823.91602542 mseconds
Run Code Online (Sandbox Code Playgroud)

由于mseconds输出是使用python的time模块计算的,所以我使用内置的基准测试命令再次运行它.

d:\projeuler>pypy -mtimeit -s "import problem204" "problem204._main()"
10 loops, best of 3: 465 msec per loop

d:\projeuler>python -mtimeit -s "import problem204" "problem204._main()"
10 loops, best of 3: 1.87 sec per loop
Run Code Online (Sandbox Code Playgroud)

PyPy报告称完成运行需要大约半秒钟.但是,我尝试了多次运行pypy problem204,输出甚至从未接近基准测试.5秒.与pypy不同,python的mtimeit结果与输出一致.pypy给了我不准确的基准,还是有些魔法我不明白?

python benchmarking pypy

2
推荐指数
1
解决办法
590
查看次数

PyPy 的统计分析器

我想使用statprof.py来分析 PyPy 中的代码。不幸的是,它似乎不起作用,它指向的行号已关闭。有谁知道如何使其工作或知道替代方案?

python performance profiling pypy

2
推荐指数
1
解决办法
1225
查看次数

无法在Debian上安装Pip for Pypy

我目前正在尝试使用pypy,但遗憾的是无法使用pip python包管理器.

我将以下镜像添加到我的source.list:

deb http://ftp.de.debian.org/debian jessie main
Run Code Online (Sandbox Code Playgroud)

我使用apt-get安装了pypy包:

apt-get install pypy
Run Code Online (Sandbox Code Playgroud)

然后我按照pypy文档给出的步骤安装pip:

curl -O http://python-distribute.org/distribute_setup.py
curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
pypy distribute_setup.py
pypy get-pip.py
Run Code Online (Sandbox Code Playgroud)

但我无法找到pypy的pip可执行文件.

pypy的唯一点是这一点:

root@computer:/usr/local/lib/pypy2.7/dist-packages# ll
total 24
drwxr-sr-x 6 root staff 4096 mars   1 19:29 distribute-0.6.49-py2.7.egg
-rw-r--r-- 1 root staff  215 févr. 26 03:43 easy-install.pth
drwxr-sr-x 7 root staff 4096 mars   1 18:07 pip
drwxr-sr-x 3 root staff 4096 févr. 26 03:44 pip-1.5.4.dist-info
-rw-r--r-- 1 root staff  144 févr. 26 03:43 setuptools-0.6c11-py2.7.egg-info
-rw-r--r-- 1 root staff   30 mars   1 …
Run Code Online (Sandbox Code Playgroud)

debian pypy pip

2
推荐指数
1
解决办法
3449
查看次数

pypy沙箱无法导入时间,导入网站失败

我运行rpython翻译来创建一个pypy沙箱.

~/pypy-2.3.1-linux64/bin/pypy ../../rpython/bin/rpython -O2 --sandbox targetpypystandalone
Run Code Online (Sandbox Code Playgroud)

有一些警告,其中两个似乎涉及时间.

[sandbox:WARNING] Not Implemented: sandboxing for external function 'clock_gettime'
[sandbox:WARNING] Not Implemented: sandboxing for external function 'clock_getres'
Run Code Online (Sandbox Code Playgroud)

它的长短是在翻译完成时,运行沙箱时会出现以下输出:

'import site' failed
Python 2.7.6 (32f35069a16d819b58c1b6efb17c44e3e53397b2, Jun 11 2014, 19:06:04)
[PyPy 2.3.1 with GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>> 
Run Code Online (Sandbox Code Playgroud)

然后导入时间也失败了:

>>>> import time
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named time
>>>> 
Run Code Online (Sandbox Code Playgroud)

这是沙箱的预期行为吗?如果是这样,在沙盒流程中嵌入网站包等的正确做法是什么?我希望使用pip安装在那个环境中,但沙盒似乎让它变得非常困难.(当我尝试安装distribute.py时,基本上我反对导入时间,因为它需要datetime,这需要时间)

python pypy sandbox

2
推荐指数
1
解决办法
782
查看次数

PyPy内存使用量随时间增加

我注意到在PyPy和Python下运行的程序的内存使用有些奇怪.在PyPy下,该程序不仅使用比CPython大得多的初始内存量,而且这种内存使用量也会随着时间的推移而显着增加.在PyPy下的程序结束时,它使用大约170MB,而在CPython下运行则为14MB.

我找到了一个具有完全相同问题的用户,尽管规模较小,但是对他有用的解决方案只为我的程序提供了一点帮助pypy内存使用量会永远增长吗? 我尝试更改的两件事是将环境变量PYPY_GC_MAX设置为100MB,将PYPY_GC_GROWTH设置为1.1,并在每一代手动调用gc.collect().

我正在确定内存使用情况

resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1000
Run Code Online (Sandbox Code Playgroud)

这是不同条件下的运行时和内存使用情况:

Version: time taken, memory used at end of run
PyPy 2.5.0: 100s, 173MB
PyPy with PYPY_GC_MAX = 100MB and PYPY_GC_GROWTH = 1.1: 102s, 178MB
PyPy with gc.collect(): 108s, 131MB
Python 2.7.3: 167s, 14MB
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,程序在PyPy下比CPython快得多,这就是为什么我首先转向它,但代价是内存增加了10倍.

该程序是遗传编程的一个实现,我正在发展一个超过100代的算术二叉树,人口中有200个人.树中的每个节点都有对其2个孩子的引用,这些树的大小可以增加,尽管在这个实验中它们保持相对稳定.根据应用程序,该程序可以运行10分钟到几个小时,但是对于结果,我将其设置为较小的数据集以突出显示该问题.

有没有人有任何想法a)可能导致这种情况的原因,以及b)是否可以将内存使用限制在更可敬的水平?

python memory pypy

2
推荐指数
1
解决办法
1520
查看次数

为pypy建造熊猫

我无法在osx和raspbian上为pypy 4.0.0编译pandas(0.17.0).

但在两种情况下都失败了,但原因不同:

raspbian:

pandas/lib.c:84937:76: error: ‘PyDateTime_Date’ undeclared (first use in this function)
    pandas/lib.c:84938:84: error: ‘PyDateTime_DateTime’ undeclared (first use in this function)
    error: command 'cc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

OSX:

In file included from pandas/src/datetime_helper.h:3:
    /Users/sonium/Raspbrewry/venv-pypy/site-packages/numpy/core/include/numpy/arrayscalars.h:8:3: error: typedef redefinition with different types ('struct PyBoolScalarObject' vs 'struct PyBoolScalarObject')
    } PyBoolScalarObject;
Run Code Online (Sandbox Code Playgroud)

我知道大熊猫没有正式支持pypy,但是pypy不应该成为替代品吗?

python pypy pandas

2
推荐指数
1
解决办法
1698
查看次数

致命错误:在pypy中找不到'openssl/e_os2.h'文件

当我运行命令pypy -m pip安装加密

然后我有以下错误:

cc -arch x86_64 -O2 -fPIC -Wimplicit -I/opt/pypy-5.0.1/include -c build/temp.macosx-10.10-x86_64-2.7/_openssl.c -o build/temp.macosx-10.10-x86_64 -2.7/build/temp.macosx-10.10-x86_64-2.7/_openssl.o build/temp.macosx-10.10-x86_64-2.7/_openssl.c:423:10:致命错误:'openssl/e_os2.h'文件没有发现生成#include ^ 1错误.错误:命令'cc'失败,退出状态为1

----------------------------------------
Run Code Online (Sandbox Code Playgroud)

命令"/ usr/local/bin/pypy -u -c"import setuptools,tokenize; file ='/ private/var/folders/_t/8l_tq9210xl4bzlhkspnv8br0000gn/T/pip-build-Gjhf5l/cryptography/setup.py'; exec(compile(getattr(tokenize,'open',open)(file).read() .replace('\ r \n','\n'),file,'exec'))"install --record /var/folders/_t/8l_tq9210xl4bzlhkspnv8br0000gn/T/pip-6_y8I9-record/install-record.txt --single-version-external-managed --compile"失败,错误代码为1/private/var/folders/_t/8l_tq9210xl4bzlhkspnv8br0000gn/T/pip-build-Gjhf5l/cryptography /

python cryptography pypy pyopenssl python-2.7

2
推荐指数
1
解决办法
747
查看次数

为什么elasticsearch会引发elasticsearch_dsl.exceptions.ValidationException:你不能写入通配符index.on pypy而不是cpython?

我有一些将数据保存到 Elasticsearch 的代码。它在 Python 3.5.2 (cpython) 中运行良好,但在 pypi3 6.0.0 (Python 3.5.3) 上运行时会引发异常。任何想法为什么?

File "/opt/venvs/parsedmarc/site-packages/parsedmarc/elastic.py", line 366, in save_forensic_report_to_elasticsearch
  forensic_doc.save()
File "/opt/venvs/parsedmarc/site-packages/elasticsearch_dsl/document.py", line 394, in save
  index=self._get_index(index),
File "/opt/venvs/parsedmarc/site-packages/elasticsearch_dsl/document.py", line 138, in _get_index
  raise ValidationException('You cannot write to a wildcard index.')
elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index
Run Code Online (Sandbox Code Playgroud)

python pypy elasticsearch

2
推荐指数
1
解决办法
1301
查看次数