Java和PyPy速度对比
Java和PyPy运行同一段代码,对比结果.
Java代码:
package javatest; import java.text.DecimalFormat;
import java.util.Date; public class speedTest
{
public static void main(String[] args)
{
int i = 0;
int max = 2000000;
Date start = new Date();
while (i++ < max)
{
transform();
}
Date end = new Date();
long diff = end.getTime() - start.getTime(); StringBuffer maxToshow=new StringBuffer();
maxToshow.append(max);
int count=0;
for(int a=1;a<String.valueOf(max).length();a++)
{
if(a%3==0)
{
count++;
maxToshow.insert(String.valueOf(max).length()-count*3, ",");
}
}
//String s = String.format("it takes %f seconds to run %s loops",
// diff / 1000.00, new DecimalFormat(",###").format(max));
String s = String.format("it takes %f seconds to run %s loops",
diff / 1000.00, maxToshow.toString());
System.out.println(s);
} 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
import numFormatter 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:
1==1#sys.stdout.write(s) def formatNumber(number):
numStr='%d'%number
formatStr=''
numStr=numStr[::-1]
i=0
while i<len(numStr):
formatStr+=numStr[i]
i+=1
if i%3==0:
formatStr+=','
formatStr=formatStr.strip(',')
formatStr=formatStr[::-1]
print formatStr starttime = datetime.datetime.now()
loops=200000;
for i in range(loops):
transform()
#sys.stdout.write('\n')
endtime = datetime.datetime.now() print 'it takes %s seconds to run %s loops'%((endtime - starttime).seconds,formatNumber(loops))
Java分别运行两百万次、两千万次、两亿次耗时结果:



PyPy运行上述代码,两百万次、两千万次、两亿次的耗时结果:

PyPy和Python解释器运行结果对比:

依据结果粗略估计,Java效率是PyPy的2.3倍,PyPy是Python的88.5倍
Java和PyPy速度对比的更多相关文章
- JVM-6.即时编译器
一.即时编译器 二.运行模式 三.基本原理 四.编译优化技术 五.Java与C/C++的编译器对比 六.参考 一.即时编译器 1.在部分虚拟机(如Hotspot.IBM J9)中,Java ...
- effictive-python笔记
第一章 用Pythonic方式来思考 1.确认自己所用的python版本(python3) 两个主流的python版本:python2(2020年就不维护) python3(推荐) 多种流行的pyth ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 「2014-3-13」Javascript Engine, Java VM, Python interpreter, PyPy – a glance
提要: url anchor (ajax) => javascript engine (1~4 articles) => java VM vs. python interpreter =& ...
- Java和Python运行速度对比
Java和Python运行速度对比:同一个函数运行一百万次,Java耗时0.577秒,Python耗时78秒--135倍的差距. 版本:Java 8,Python 2.7.10 Java测试代码: i ...
- Javascript Engine, Java VM, Python interpreter, PyPy – a glance
提要: url anchor (ajax) => javascript engine (1~4 articles) => java VM vs. python interpreter =& ...
- Java I/O流 复制文件速度对比
Java I/O流 复制文件速度对比 首先来说明如何使用Java的IO流实现文件的复制: 第一步肯定是要获取文件 这里使用字节流,一会我们会对视频进行复制(视频为非文本文件,故使用之) FileInp ...
- Java和C#运行速度对比:Java比C#快约3倍
测试条件: Java版本: Java 8, .NET版本:v4.0, Release模式,针对x86平台优化 单线程模式. 测试1:(测试1的代码摘自http://blog.csdn.net/houj ...
- 几种Java的JSON解析库速度对比
java中哪个JSON库的解析速度是最快的? JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考 了.我们很少会去 ...
随机推荐
- Codeforces Round #379 (Div. 2) D. Anton and Chess 模拟
题目链接: http://codeforces.com/contest/734/problem/D D. Anton and Chess time limit per test4 secondsmem ...
- OC基础--OC中类的声明与定义
OC中设计一个类的步骤: 一.声明类: 1.用到的关键字--@interface 和 @end 2.类名 3.继承NSObject 4.属性 5.方法(行为,只需要声明) 二.实现(定义)类 1.用到 ...
- hdu4333 扩展KMP
慢慢研究可以发现,可以用扩展kmp来求.由于扩展kmp的next[]只有一部分,当前位子前面那部分和母串的后部分,所以可以将字符串复制接在后面一次. 先求如果next[]>0&& ...
- JAVA运行java程序
程序代码: public class f{ public static void main(String[] args){ String foo1 = args[1]; String foo2 = a ...
- 浅议SNMP安全、SNMP协议、网络管理学习
相关学习资料 tcp-ip详解卷1:协议.pdf(重点看25章SNMP部分) http://www.rfc-editor.org/rfc/rfc1213.txt http://www.rfc-edit ...
- 分享一段Java搞笑的代码注释
今天在群里看到有人分享了一段搞笑的注释代码,觉得挺好玩的,在这里收藏一下 // _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // ...
- java变量作用域
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可 ...
- Appserv环境下搭建的PHP环境升级PHP版本(支持微信端口以及thinkphp)
Appserv 2.5.10 升级PHP from version 5.2 to 5.3 最近,在使用Appserv 2.5.10 中的PHP开发微信时,遇到下面错误 Fatal error C ...
- 解决IE apk变成zip:Android 手机应用程序文件下载服务器Nginx+Tomcat配置解决方法
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...
- Note:JSON
JSON是JavaScript的原生格式,意味着在JavaScript中处理JSON数据不需要特殊的API或工具包,它是完全独立于语言的文本格式,可以把JavaScript对象中的一组对象转化为字符串 ...