扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在正式展开我的观点之前,我想说这只是表达我的个人观点,并非代表科学和权威的论断。我这样做,只是为了给学习编程语言的人们一个参考。
对于初学编程语言的新人而言,如何选择编程语言,首先考虑的问题是哪种语言的运行速度更快。Python 和Java 同是两大面向对象的语言,在这里我对二者的运行速度做了实例演示。
针对不同功能和模块的测试,我分别对Java 和Python 写了功能相同的测试代码,并各自反复测试了三次,取了平均值。结果如下:
Test |
Java |
Python |
Comparison |
Standard Output |
138.85 |
30.58 |
Python 4.5X Faster than Java |
Hashtable |
17.0 |
8.22 |
Python 2X Faster than Java |
I/O |
56.72 |
47.36 |
Python 1.2X Faster than Java |
List |
5.94 |
14.32 |
Java 2.4X Faster than Python |
Native Methods |
2.475 |
7.92 |
Java 3.2X Faster than Python |
Interpreter Initialisation |
0.25 |
0.04 |
Python 6.3X Faster than Java |
Object Allocation |
23.65 |
211.11 |
Java 8X Faster than Python |
Interpreter Speed |
0.43 |
2.29 |
Java 5.3X Faster than Python |
时间的单位是秒
再一次,我要说这只是在我的电脑下的大概时间。我的Java (JDK 1.1.7B, blackdown),我的系统(Debian GNU Linux 2.2),我的 (Python 1.5.2) 。
Test-By-Test
ConsoleTest | |
Python |
Java |
for x in xrange(1000000): print x |
public class ConsoleTest { public static void main(String[] args) { for (int i = 0; i < 1000000; i++) { System.out.println(i); } } } |
Hashtest | |
Python |
Java |
for i in xrange(1000): x={} for j in xrange(1000): x[j]=i x[j]
|
import java.util.Hashtable;
public class HashTest { public static void main(String[] args) { for (int i = 0; i < 1000; i++) { Hashtable x = new Hashtable(); for (int j = 0; j < 1000; j++) { x.put(new Integer(i), new Integer(j)); x.get(new Integer(i)); } } } } |
IOTest | |
Python |
Java |
f=open('scratch','wb') for i in xrange(1000000): f.write(str(i)) f.close()
|
import java.io.*;
public class IOTest { public static void main(String[] args) { try { File f = new File("scratch"); PrintWriter ps = new PrintWriter(new OutputStreamWriter (new FileOutputStream(f))); for (int i = 0; i < 1000000; i++) { ps.print(String.valueOf(i)); } ps.close(); } catch(IOException ioe) { ioe.printStackTrace(); } } } |
ListTest | |
Python |
Java |
for i in xrange(1000): v=['a','b','c','d','e','f','g'] for j in xrange(1000): v.append(j) v[j]
|
import java.util.Vector;
public class ListTest { public static void main(String[] args) { for (int i = 0; i < 1000; i++) { Vector v = new Vector(); v.addElement("a"); v.addElement("b"); v.addElement("c"); v.addElement("d"); v.addElement("e"); v.addElement("f"); v.addElement("g"); for (int j = 0; j < 1000; j++) { v.addElement(new Integer(j)); v.elementAt(j); } } } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者