相关疑难解决方法(0)

尽管JVM的进步,为什么Jython比CPython慢​​得多?

请不要发生火焰战争.我确实不是Java的粉丝,但我认为JVM是一个相当不错且优化得很好的虚拟机.它支持JIT,非常接近流行的CPU架构的共同点.我假设CPython运行时比相应的基于JVM的运行时更远离金属.

如果我的假设是正确的,那么有人可以向我解释为什么Jython与CPython相比会遭受如此重大的性能损失吗?我最初的假设是JVM只是为静态语言设计的,而且很难将动态语言移植到它上面.然而,Clojure似乎是这一论点的一个反例.

另一方面,IronPython似乎做得很好.我相信这两个项目的主要开发人员是相同的,所以一个代码设计和实现明显优于另一个的论点似乎不太可能.

我无法弄清楚具体原因是什么; 任何帮助将不胜感激.

python jvm jython

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

这个python代码有什么问题,为什么它比ruby运行得那么慢?

我有兴趣比较ruby speed和python,所以我采用了最简单的递归计算,即打印fibonacci sequance.

这是python代码

#!/usr/bin/python2.7                       
def fib(n):
    if n == 0: 
        return 0
    elif n == 1:
        return 1 
    else:
        return fib(n-1)+fib(n-2)

i = 0
while i < 35:
    print fib(i)
    i = i + 1
Run Code Online (Sandbox Code Playgroud)

这是红宝石代码

#!/usr/bin/ruby

def fib(n)
    if n == 0
        return 0
    elsif n == 1
        return 1
    else
        fib(n-1)+fib(n-2)
    end
end 

i = 0 
while (i < 35)
    puts fib(i)
    i = i + 1 
end
Run Code Online (Sandbox Code Playgroud)

在几次运行中,时间报告此平均值

real    0m4.782s 
user    0m4.763s 
sys     0m0.010s
Run Code Online (Sandbox Code Playgroud)

多数民众赞成红宝石,现在python2.7给出

real …
Run Code Online (Sandbox Code Playgroud)

ruby python performance fibonacci

4
推荐指数
1
解决办法
1326
查看次数

为什么python比Ruby更慢,即使这个非常简单的"测试"呢?

看看这个python代码有什么问题,为什么它与ruby相比运行得如此之慢?我之前尝试理解python和ruby之间的差异.

正如igouy所指出的那样,我想出的python速度较慢的原因可能是其他原因而不是由于递归函数调用(涉及堆栈).

我做的

#!/usr/bin/python2.7
i = 0
a = 0
while i < 6553500:
    i += 1
    if i != 6553500:
       a = i 
    else:
        print "o" 
print a 
Run Code Online (Sandbox Code Playgroud)

在红宝石中它是

#!/usr/bin/ruby
i = 0
a = 0
while i < 6553500
    i += 1
    if i != 6553500
       a = i 
    else
        print "o"
    end
end   
print a
Run Code Online (Sandbox Code Playgroud)

在Linux2上的Python 3.1.2(r312:79147,2010年10月4日,12:45:09)[GCC 4.5.1]

时间python pytest.py o

6553499

真正的0m3.637s

用户0m3.586s

ruby 1.9.2p0(2010-08-18修订版29036)[x86_64-linux]时间ruby rutest.rb

o6553499

真正的0m0.618s

用户0m0.610s

让它循环越高会产生更大的差异.添加额外的0,ruby在7s完成,而python运行40s.

这是在Intel(R)Core(TM)i7 CPU M 620 …

ruby python testing performance

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

标签 统计

python ×3

performance ×2

ruby ×2

fibonacci ×1

jvm ×1

jython ×1

testing ×1