zoukankan      html  css  js  c++  java
  • Java和Python运行速度对比

    Java和Python运行速度对比:同一个函数运行一百万次,Java耗时0.577秒,Python耗时78秒--135倍的差距。

    版本:Java 8,Python 2.7.10

    Java测试代码:

    import java.util.Date;

    public class test
    {
     public static void main(String[] args)
     {
      Date start = new Date();
      for (int i = 0; i < 1000000; i++)
      {
       transform();
      }
      Date end = new Date();
      long diff = end.getTime() - start.getTime();
      System.out.println("it takes "+diff/1000.00+" seconds");
     }

     public static void transform()
     {
      String str = "Pcybgle rfgq rsrmpgyj fyq npmzyzjw pcgldmpacb wmsp glrcpcqr gl sqgle Nwrfml - wms qfmsjb zc cyecp rm ynnjw Nwrfml rm qmjtgle wmsp pcyj-umpjb npmzjckq. Ufcpc qfmsjb wms em rm jcypl kmpc?";
      for (int i = 0; i < str.length(); i++)
      {
       char c = str.charAt(i);
       if (c >= 'a' && c <= 'z')
       {
        c += 2;
        if (c > 'z')
        {
         c -= 26;
        }
        System.out.print(c);
       }
       else if (c >= 'A' && c <= 'Z')
       {
        c += 2;
        if (c > 'Z')
        {
         c -= 26;
        }
        System.out.print(c);
       }
       else
        System.out.print(c);
      }
     }
    }

    Python测试代码:

    import sys,datetime

    def transform():
        str='''Pcybgle rfgq rsrmpgyj fyq npmzyzjw pcgldmpacb wmsp glrcpcqr gl sqgle Nwrfml - wms qfmsjb zc cyecp rm ynnjw Nwrfml rm qmjtgle wmsp pcyj-umpjb npmzjckq. Ufcpc qfmsjb wms em rm jcypl kmpc?'''
        for s in str:
            if ord(s)>=ord('a') and ord(s)<=ord('z'):
                new=ord(s)+2
                if new>ord('z'):
                    new-=26
                sys.stdout.write(chr(new))
            elif ord(s)>=ord('A') and ord(s)<=ord('Z'):
                new=ord(s)+2
                if new>ord('Z'):
                    new-=26
                sys.stdout.write(chr(new))
            else:
                sys.stdout.write(s)

               

    starttime = datetime.datetime.now()
    for i in range(1000000):
        transform()
       
    endtime = datetime.datetime.now()

    print 'it takes %s seconds'%(endtime - starttime).seconds
                                               

  • 相关阅读:
    基于 MySQL 5.6 keepalived的双主搭建
    keepalived.conf 配置文件小结
    keepalived小结
    能不能利用复制报错,让从库停在同一个复制的位置上?
    复制介绍、复制的实用价值
    复制相关参数学习笔记--master上的参数
    计数排序
    双向链表
    约瑟夫问题
    单链表中重复元素的删除
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/5152341.html
Copyright © 2011-2022 走看看