首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 会合性能测试

2012-10-25 
java 集合性能测试package fubar?import gnu.trove.map.hash.TIntObjectHashMap?import java.util.HashM

java 集合性能测试

package fubar;

?

import gnu.trove.map.hash.TIntObjectHashMap;

?

import java.util.HashMap;

?

import javolution.util.FastMap;

?

import cern.colt.map.OpenIntIntHashMap;

import cern.colt.map.OpenIntObjectHashMap;

?

public class Compare {

?

public static void main(String args[]) {

?

System.out.println("1st line: time used(s)\n2nd line: heap memory used so far(MB)");

?

int n = 100000000;

?

long startTime = System.nanoTime();

long startHeapSize = Runtime.getRuntime().freeMemory();

?

// BEGIN: benchmark for Java's built-in hashmap

System.out.println("\n===== Java's built-in HashMap =====");

HashMap jIntIntMap = new HashMap();

?

System.out.println("\n-- " + n + " puts(key, value) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

jIntIntMap.put(i, new float[] { 0f, 1f, 2f, 3f, 4f });

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " gets(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

jIntIntMap.get(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " containsKey(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

jIntIntMap.containsKey(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

// END

// //////////////////////////////////////////////////////////////////////////////////////////

?

// BEGIN: benchmark for Java's built-in hashmap

{

System.out.println("\n===== Javolution ?HashMap =====");

FastMap fastMap = new FastMap();

?

System.out.println("\n-- " + n + " puts(key, value) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

fastMap.put(i, new float[] { 0f, 1f, 2f, 3f, 4f });

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " gets(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

fastMap.get(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " containsKey(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

fastMap.containsKey(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

}

// END

?

// //////////////////////////////////////////////////////////////////////////////////////////

?

// BEGIN: benchmark for Trove's TIntIntHashMap

System.out.println("\n===== Trove's TIntIntHashMap =====");

TIntObjectHashMap tIntIntMap = new TIntObjectHashMap();

?

System.out.println("\n-- " + n + " puts(key, value) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

tIntIntMap.put(i, new float[] { 0f, 1f, 2f, 3f, 4f });

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " gets(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

tIntIntMap.get(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " containsKey(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

tIntIntMap.containsKey(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

// END

?

// BEGIN: benchmark for Colt's OpenIntIntHashMap

System.out.println("\n===== Colt's OpenIntIntHashMap =====");

OpenIntObjectHashMap cIntIntMap = new OpenIntObjectHashMap();

?

System.out.println("\n-- " + n + " puts(key, value) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

cIntIntMap.put(i, new float[] { 0f, 1f, 2f, 3f, 4f });

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " gets(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

cIntIntMap.get(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

?

System.out.println("\n-- " + n + " containsKey(key) --");

startTime = System.nanoTime();

for (int i = 0; i < n; i++) {

cIntIntMap.containsKey(i);

}

System.out.println((System.nanoTime() - startTime) / 1000000000.0);

System.out.println((startHeapSize - Runtime.getRuntime().freeMemory()) / 1048576.0);

// END

?

}

?

}

热点排行