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

Java和Python运行速度对比的更多相关文章

  1. Java和C#运行速度对比:Java比C#快约3倍

    测试条件: Java版本: Java 8, .NET版本:v4.0, Release模式,针对x86平台优化 单线程模式. 测试1:(测试1的代码摘自http://blog.csdn.net/houj ...

  2. 使用命令行编译和运行 c、Java和python程序

    集成开发环境已经非常方便,从编写程序到执行程序看到结果,让我们不用关心中间的过程.但是使用原始的.命令的方式来将程序编译运行有的时候可能有些用,比如写个简答的程序,或者是身边没有集成工具的时候. C语 ...

  3. java 通过runtime 调用python 不显示python运行内容的bug

    先说下上面问题的原因,上面问题是因为python中用到了第三方的类库,你的电脑上没有那个类库,所以程序没有运行,在控制台也就看不到输出.只要导入那个类库就好... python 导入类库,可以单独下载 ...

  4. 关于C、Java、Python程序运行耗时及内存用量

    最近没有刷题,而是在PTA找几个题目寻找有关程序输入流问题以及各种语言在运行时对计算机消耗内存的问题, 以免很多同学解题的时候发现自己做的对但是出现运行超时的问题:针对运行内存,肯定用C/C++的同学 ...

  5. windows、ubuntu下eclipse搭建java、Python环境问题总结

    前两篇博文分别讲述了如何在windows.ubuntu下用eclipse搭建java.python环境,下面就针对本人遇到的问题做一个总结. 一.windows下关于java环境变量JAVA_HOME ...

  6. ubuntu上用eclipse搭建java、python开发环境

    上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts ...

  7. windows 下用eclipse搭建java、python开发环境

    本人只针对小白!本文只针对小白!本文只针对小白! 最近闲来无事,加上之前虽没有做过eclipse上java.python的开发工作,但一直想尝试一下.于是边查找资料边试验,花了一天时间在自己的机器上用 ...

  8. 《Java疯狂讲义》(第3版)学习笔记 2 - Java语言的运行机制

    内容 1.高级语言的运行机制 2.Java 语言的运行机制 1.高级语言的运行机制 高级语言主要分为编译型语言和解释型语言两类. 编译型语言是指使用专门的编译器.针对特定平台(操作系统)将高级语言源代 ...

  9. Java 调用python说明文档

    Java 调用python说明文档 通过java调用python脚本主要如下三种方式: 1.直接执行python脚本: 2.执行python.py文件: 3.使用Runtime.getRuntime( ...

随机推荐

  1. 第二十六课:jQuery对事件对象的修复

    因为原生的event对象,在不同浏览器下,有不同的属性和方法,因此需要用jQuery进行兼容. jQuery在这里分两步走,首先创建一个伪事件类jQuery.Event(jQuery里面自定义的事件类 ...

  2. jQuery理解之(一)动画与特效

    本节主要降级和学习jQuery的自动显隐,渐入渐出.飞入飞出.自定义动画等. 1.显示和隐藏hide()和show() 对于动画来说,显示和隐藏是最基本的效果之一,本节简单介绍jQuery的显示和隐藏 ...

  3. angular的canvas画图例子

    angular的例子: <!DOCTYPE html> <html ng-app="APP"> <head> <meta charset= ...

  4. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

  5. 粒子群优化算法-python实现

    PSOIndividual.py import numpy as np import ObjFunction import copy class PSOIndividual: ''' individu ...

  6. BZOJ 3110 [Zjoi2013]K大数查询

    Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位 ...

  7. CodeMap

    CodeMap 这是在博客园看到的一位朋友文章介绍的,很好用的插件,所有的方法,注释块在右边一目了然,找代码方便极了,还能设置代码段的高亮,给代码段设置标识

  8. springmvc常用注解标签详解

    1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...

  9. sql 语句:给 text 数据类型排序

    sql 语句: select * from 表 order by cast(字段 as varchar)

  10. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...