23

Julia是一种新的统计编程语言,声称其性能明显优于竞争语言。我正在尝试验证这一点。Julia 有一个用 Python 编写的性能测试: https ://github.com/JuliaLang/julia/blob/master/test/perf/perf.py

我无法让它与 pypy 一起使用。也许这是由于 numpypy 与 numpy 不兼容,但我还没有走得足够远来确定这一点。我遵循了 ImportError 的建议"...or just write 'import numpypy' first in your program...",但我得到了另一个 ImportError:"No module named numpy.linalg"

我对 Python 的使用经验几乎为零,我正在寻找一个可以运行的完整解决方案。让它工作的好处是我们可以进行苹果对苹果(jit lang-to-jit lang)的比较。

4

2 回答 2

23

python和julia性能测试

在纯 Python 中对 Julia git (perf.py) 进行了 4 次测试。在这里,我在同一台计算机上运行perf.py(仅纯 Python 测试)和perf.pl进行苹果对苹果的比较。我有点担心 Python/Pypy 的时机:/

还有……为什么

## fibonacci ##

def fib(n):
    if n<2:
        return n
    return fib(n-1)+fib(n-2)

Pypy 比 Python 慢?


我在https://bugs.pypy.org/issue1344中发布了这个问题[Pypy 的递归速度比 Python2.7、Python3.2 和 Julia 慢] 我得到了下一个答案:

这是一种预热时间非常重要的情况(它试图内联所有递归),但是一旦你预热它,它实际上非常快。

因此,我为fib(n)使用不同数量的n来编写文本。确实,Pypy 比 Python 快,大于 30,但递归比 Julia 慢:

[用粗体表示更快的python实现]

Pypy Python 和 Julia 中的递归


因为是用递归实现的,所以快速排序和 fib 在 Pypy 中速度较慢。 Julia 似乎比 PyPy 快。

于 2012-12-02T16:21:09.010 回答
5

Linalg 目前尚未实施。我认为一个新的 ffi 并推出 1.9(这需要相当多的 numpy 修复,请参阅错误跟踪器)正在成为重中之重。我不认为现在有 linalg有那么有趣。我们希望首先运行更多的 numpy。不过,我愿意被说服。论据?

于 2012-05-29T15:10:03.300 回答