PyPy是否适用于NLTK,如果是这样,那么对于贝叶斯分类器来说,是否有明显的性能提升?
虽然我们正在使用它,但是其他任何python环境(shedskin等)都提供比cpython更好的nlkt性能吗?
开发某些语言有什么问题,例如python用于一些LLVM/Parrot的优化技术.
PyPy,LLVM,Parrot是通用平台开发的主要技术.
我觉得这样:
我是对的关于这个过程吗?对于python,有优化的VM?特别是默认情况下,在VM中构建优化的PyPy代码(步骤5.c) - 这是用于python的,每个语言处理都可以停在那里并由它运行?
Parrot和PyPy都旨在创建一个创建通用动态语言运行库的平台,但PyPy需要更多 - 同时创建更多VM.
PyPy的感觉在哪里?我们需要创建更多的VM?不应该更好地专注于一个VM(如parrot) - 因为有一个共同的代码级别 - PyPy内部字节码或Parrot.我认为将PyPy字节码转换为使用PyPy VM新创建的字节码,我们无法获得更好的效果.
将此视为:LLVM是一般用途,但Parrot和**PyPy*专为动态语言而设计.在PyPy/Parrot中更容易引入一些复杂的技术 - 因为它比LLVM更高级 - 就像复杂的编译器,可以更好地理解高级代码并产生更好的汇编代码(人类无法在合理的时间内编写),然后LLVM一个?
问题:
我对吗?是否有任何理由移植某些动态语言对llvm然后比如Parrot更好?
我没有在Parrot上看到关于开发python的活动.是因为使用python C扩展不适用于鹦鹉?PyPy也存在同样的问题
为什么其他虚拟机不想迁移到LLVM/parrot.例如ruby - > parrot,CLR/JVM - > LLVM.他们转向更复杂的解决方案会不会更好?LLVM处于高度发展的过程中,并且有大公司投资.
我知道重新编译的问题可能是资源,如果需要更改字节码 - 但这不是必须的 - 因为我们可以尝试将旧的字节码移植到新的字节码,而新的编译器会产生新的字节码(从来没有更少的java仍然需要解释自己的字节码 …
如何在PyPy下安装Python egg?
在安装过程中,PyPy创建了/usr/lib64/pypy-1.5/site-packages/
目录.所以,我尝试使用带有前缀设置的easy_install到这个目录,但它抱怨这不是一个有效的鸡蛋目录.我是否只是复制鸡蛋/usr/lib/python2.7/site-packages
,或者就像使用easy_install一样简单(可能会对配置进行一些更改)?
我的工作环境是Fedora 15 Beta,Python 2.7.1(/usr/bin/python
),PyPy 1.5.0-alpha0和GCC 4.6.0(/usr/bin/pypy
使用yum从RPM安装),easy_install版本是:分发0.6.14(usr/bin/easy_install
).
我刚刚阅读了第3版学习Python(2007年末)中关于执行模型的部分,感觉相当试探性.所以,我看了第4版(2009年末)的同一部分,并且非常失望,它完全没有变化.
在CPython之外执行Python的状态是什么?感觉Jython和IronPython仍然是利基项目; 有其他类似的项目出现?Psyco凝固得很好,无需担心吗?有很多人使用ShedSkin?是否有关于何时PyPy执行速度更快的信息?
我一直想知道是否可以在Jupyter笔记本中运行PyPy.我最近尝试在我的本地机器上安装PyPy,它运行得非常好 - 在用纯Python编写的基于代理的模拟中,速度提高了100倍.但是,我想念Jupyter笔记本中的交互性.是否有可能使IPython内核使用PyPy而不是CPython?
我用pypy创建了一个virtualenv并尝试安装scipy,但安装结束时出现以下错误:
distutils.errors.DistutilsError:安装脚本退出并显示错误:命令"cc -O2 -fPIC -Wimplicit -O2 -fPIC -Wimplicit -O2 -fPIC -Wimplicit -DHAVE_NPY_CONFIG_H = 1 -D_FILE_OFFSET_BITS = 64 -D_LARGEFILE_SOURCE = 1 -D_LARGEFILE64_SOURCE = 1 - DNO_ATLAS_INFO = 1 -DHAVE_CBLAS -Ibuild/src.linux-x86_64-3.2/numpy/core/src/private -Inumpy/core/include -Ibuild/src.linux-x86_64-3.2/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/luke/Programowanie/Python/connect4/venv-pypy/include -Ibuild/src.linux-x86_64-3.2/numpy/core/src/private -Ibuild/src.linux-x86_64-3.2/numpy/core/src/private -Ibuild/src.linux-x86_64-3.2/numpy/core/src/private -c numpy/core/src/multiarray/scalarapi.c -o build/temp.linux-x86_64-3.2/numpy/core/src/multiarray/scalarapi.o"以退出状态1失败
有一个特定的numpy版本适合pypy,但我发现scipy唯一的东西是旧的捐款呼吁.从那时起有什么变化吗?
新版PyPy附带集成的Stackless.据我所知,捆绑的Stackless与2001年的Stackless起源不同.所以主要是带调度程序的绿色线程框架.
Greenlet是Stackless的旋转,它提供Stackless绿色线程功能作为扩展模块.
有没有使用"原生"的任何利益无堆栈从PyPy比PyPy + greenlet +一些调度(如:GEVENT)?或问题是我不能使用PyPy的那些类型的扩展?更具体一点:我知道PyPy有自己的greenlet实现(基于continulet).但我很好奇在PyPy中将外部greenlet与gevent和内部greenlet连接起来的可能性.
PyPy是否附带了一个用于Stackless的异步IO库而不是标准的?
我知道stackless本身和python的其他异步轻线程扩展(eventlet,gevent,twisted ......).因此,我不是在寻找它们之间的差异,而是通过无堆叠构建而形成的pypy的优势.
def sieve(n):
nums = [0] * n
for i in range(2, int(n**0.5)+1):
if nums[i] == 0:
for j in range(i*i, n, i):
nums[j] = 1
return [i for i in range(2, n) if nums[i] == 0]
def sieve_var(n):
nums = [0] * n
for i in range(3, int(n**0.5)+1, 2):
if nums[i] == 0:
for j in range(i*i, n, i):
nums[j] = 1
return [2] + [i for i in range(3, n, 2) if nums[i] == 0]
Run Code Online (Sandbox Code Playgroud)
在我的机器上,sieve(10**8)
需要2.28秒,而sieve_var(10**8) …