python为什么比java慢_《ruby太慢了》问题之——我的亲自测试:ruby VS python VS java...

作为一个菜鸟,我对ruby这样的弱类型动态语言和传统的强类型静态语言的性能表现还是蛮感兴趣的。

加之,程序员们热衷的话题就是各个编程语言的性能之争,每个语言都有每个语言的支持者,你争我吵,不亦乐乎。

好了,先上ruby代码(来自osc,不过自己改了一下,让测试的时间是float型的,更加精准的时间展示):

t1 = Time.now.to_f

min = Math.sqrt(1).to_i

max = Math.sqrt(10**14).to_i

def isH(num)

num = num.to_s

return num == num.reverse

end

for num in (min..max)

if isH num

z = num**2

if isH z

puts z

end

end

end

t2 = Time.now.to_f

puts t2-t1 期待的测试开始了,

3轮测试下来,结果如下:

接下来登场的是python,期待他有更好的表现,同样,3轮测试的结果:

代码:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

def isPalindrome(n):

s = str(n)

return s == s[::-1]

def main():

m1 = 1

m2 = 10000000

return [(i, i*i) for i in range(m1,m2) if isPalindrome(i) and isPalindrome(i*i)]

if __name__ == '__main__':

import time

st = time.time()

print(main(), time.time() - st, sep='\n')

最后登场的是java,我想他的成绩一定会让屌丝们兴奋的:

代码:

package cn.iver.test;

/**

* Created with IntelliJ IDEA.

* Author: iver

* Date: 13-4-25

*/

public class Hello {

public static boolean isPlalindrome(String s) {

for (int i = 0; i <= s.length() / 2; i++) {

if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {

return false;

}

}

return true;

}

public static void method(double min, double max) {

min = Math.sqrt(min);

max = Math.sqrt(max);

double y = 0;

for (double x = Math.ceil(min); x < max; x++) {

if (x % 10 > 0) {

y = x * x;

if (y % 10 > 0) {

String xStr = String.valueOf((long) x);

if (isPlalindrome(xStr)) {

String yStr = String.valueOf((long) y);

if (isPlalindrome(yStr)) {

System.out.println(yStr + '(' + xStr + ')');

}

}

}

}

}

}

public static void main(String[] args) {

long t = System.currentTimeMillis();

method(1d, 100000000000000d);

System.out.println(System.currentTimeMillis() - t);

}

}

这次是在IDEA里测试的,jdk是1.7版本64位的,没有截图,直接上结果,(注:此处我省略了详细输出过程):

第一次:983ms;

第二次:999ms;

第三次:996ms;

===================写在最后=====================

机器的配置及环境:win7专业版64位,CUP:core i5 2400 3.1GHZ ;RAM:8G;

从测试可以看出,ruby的性能没有我们想象的那么差,至少和python比起来,不落下风,更何况,我还没有用最新的ruby2.0,所以说:ruby的性能值得期待!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值