java与c++ 效率对比,容器和字符串处理为例
我得到的结论是2.5:1。
这也就可以解释为什么iphone上的软件运行会更快(objective-c和c++一样都是native模式的代码)。注意c++要用release版本运行。。。所以学习c++的童鞋们,,放心大胆的学下去吧。在以后的终端为王的时代里,大家会更加注意效率。软件跑得快才能赢。
1. c++代码,使用deque
package com.ptyt;import java.util.ArrayDeque;import java.util.Deque;import java.util.Queue;public class main {public static void testJavaStringPerformance() {final int TEST_TIMES = 1500000;// String//String str = new String();////System.out.println("The testing is running, please wait...");//long start = System.currentTimeMillis();//for (int i = 0; i < TEST_TIMES; i++) {//str += "cppmule";//}//long strUsed = System.currentTimeMillis() - start;//System.out.println("strUsed: " + strUsed + " ms.");// StringBufferlong start = 0;StringBuffer strBuffer = new StringBuffer();start = System.currentTimeMillis();for (int i = 0; i < TEST_TIMES; i++) {strBuffer.append("cppmule");}long strBufferUsed = System.currentTimeMillis() - start;System.out.println("StringBuffer append: " + strBufferUsed + " ms.");// StringBuilderstart = 0;StringBuilder strBuilder = new StringBuilder();start = System.currentTimeMillis();for (int i = 0; i < TEST_TIMES; i++) {strBuilder.append("cppmule");}long strBuilderUsed = System.currentTimeMillis() - start;System.out.println("StringBuilder append: " + strBuilderUsed + " ms.");System.out.println("Times: " + TEST_TIMES);}/** * @param args */public static void main(String[] args) {testJavaStringPerformance();}}/*StringBuffer append: 173 ms.StringBuilder append: 110 ms.Times: 1500000 */