java

位置:IT落伍者 >> java >> 浏览文章

对Java提供的两个Map进行的性能测试


发布日期:2018年05月03日
 
对Java提供的两个Map进行的性能测试

对java 提供的两个Map 进行了性能测试发现效果还可以万个key的Map 查找 起来也不是很慢大概毫秒

还打算自己手工做些性能优化将不同前缀的KEY分开到几个小MAP里 发现性能没有改观纳闷中

分开到几个小MAP里然后小的里面还可以再分分分分形成一个按字母检索树

突然想起Java Pro 上有篇文章里说过Map系列的内置 性能优化方式好象就是和我说的这种思想是一致的

查找资料一看(x?ID=&page=过真如此哈哈不过上次看了印象不深刻这次自己想出来了印象当真深刻的很同时也证明了英雄所见略同(呵呵)

/**

* Map 系列性能测试

*/

import javautil*;

public class MapTest

{

public static void main(String ags[]){

test();

Systemoutprintln();

test();

}

public static void test(){

Map m = new HashMap();

long t = SystemcurrentTimeMillis();

for (int i = ; i < ; i++)

{

mput(aabbtopub+i+asfsdfVOi+value);

}

long t = SystemcurrentTimeMillis() ;

Systemoutprintln(tt);;

//Systemoutprintln(mget(key));

for (int i = ; i < ; i++)

{

mget(aabbtopub+i+asfsdfVO);

}

long t = SystemcurrentTimeMillis() ;

Systemoutprintln(tt);

}

public static void test(){

Map m = new HashMap();

mput(aabbaonew HashMap());

mput(aabbdonew HashMap());

mput(aabbwonew HashMap());

mput(aabbponew HashMap());

mput(aabbionew HashMap());

mput(aabboonew HashMap());

mput(aabbbonew HashMap());

mput(aabbtonew HashMap());

mput(aabbyonew HashMap());

mput(aabbronew HashMap());

long t = SystemcurrentTimeMillis();

for (int i = ; i < ; i++)

{

for (int k = ; k < ; k++) //有个模块比较个模块概率

if(aabbtopubheaderVOstartsWith(aabbto));

//下面假设上边比较结果为 aabbto开头

for(int j = ; j < ; j++) //每个模块里有

((Map)mget(aabbto))put(aabbtopub+j+asfsdfVOvalue);

}

long t = SystemcurrentTimeMillis() ;

Systemoutprintln(录入时间为+(tt));;

//Systemoutprintln(mget(key));

for (int i = ; i < ; i++)

{

for (int k = ; k < ; k++) //有个模块比较个模块概率

if(aabbtopubasfsdfVOstartsWith(aabbto));

for(int j = ; j < ; j++)

((Map)mget(aabbto))get(aabbtopub+j+asfsdfVO);

}

long t = SystemcurrentTimeMillis() ;

Systemoutprintln(查找时间为+(tt));

}

};               

上一篇:Java新学法之Robocode基本原理之坐标锁定(下)

下一篇:Java 6中的性能优化