- 浏览: 51832 次
- 性别:
- 来自: 北京
文章分类
最新评论
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
}
}
发表评论
-
es recover
2015-07-01 14:43 530on log operations 2015-07-01 14 ... -
java
2012-02-09 23:35 711看看性能!加载15万多个词,搜索不到1毫秒。 不知和ZZL算 ... -
单例模式收藏
2011-10-25 09:08 834public class Singleton { ... -
lucene 遍历索引
2011-06-09 12:45 1269使用Lucene的API遍历 ... -
十进制转二进制
2011-05-03 10:27 1776十进制转二进制: 用2辗转相除至结果为1 将余数 ... -
Lucene near real time search
2011-04-15 09:48 1792在2.9之前,要看到index writer上发生的更 ... -
ZoieSystem
2011-04-11 12:45 747ZoieSystem是可以使用spring进行配置的,一个典型 ... -
Apache Mahout 介绍集合
2011-04-04 19:08 1409Apache Mahout 是 ASF(Apache S ... -
字符串排列组合
2011-02-18 16:15 1036public class Zuhe { public sta ... -
nio分割普通文件
2011-01-25 08:45 677package utils; import java.i ... -
java 面试收集
2011-01-10 17:12 7571. ArrayList 和Vector是采用数组方式存 ... -
ARRAYLIST VECTOR LINKEDLIST 区别与用法
2011-01-08 13:37 746最近用到了,所以依然是转载ArrayList 和Vector是 ... -
HashSet<E> ConcurrentHashMap和HashMap
2011-01-08 22:46 903类 HASHSET<E> 所有已 ...
相关推荐
java集合类类性能测试源代码
我写的关于set集合和list集合相关性能测试,linkedList ArrayList HashSet 等类的增删改查性能测试
大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...
大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...
中Java应用内存泄漏的检测,通过监控集合类对象的内存消耗和集合内元素的 使用情况,得出对象内存泄漏的可能性大小,量化对象内存泄漏的风险。检测 系统首先收集垃圾回收事件后的应用内存数据,确定进行...
第6章 JVM性能测试及监控 6.1 监控计算机设备层 6.2 监控JVM活动 6.3 本章小结 第7章 JVM性能调优建议 7.1 JVM相关概念 7.2 JVM系统架构 7.3 垃圾回收机制相关 7.4 实用JVM实验 7.5 本章小结 第8章 其他...
Java基础、Java语法、Java集合框架、Java泛型、Java异常处理、Java多线程、Java网络编程、Java数据库编程、Java反射机制、Java设计模式、Java Spring框架、Java Spring Boot、Java MyBatis框架、Java Hibernate框架...
│ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+...
大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...
JAVAJava软件测试中的Java列表对象的性能分析和测试SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector、ArrayList和LinkedList。有关这些List类的性能差别是一个经常被问及的问题。在...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
企业公司软件测试面试笔试题集合 软件测试面试题 (测试基础).doc 01_企业面试试卷(综合).doc 01_企业面试试卷(综合)_参考答案.doc 04_企业面试试卷(测试基础).doc 04_企业面试试卷(测试基础)_参考答案.doc...
6. Java集合框架:本资源使用了Java集合框架来实现停车场管理系统,包括了ArrayList、LinkedList等集合类型。 7. 时间类:本资源使用了Java的时间类来实现时间相关的操作,包括了日期、小时、分钟、秒等时间单位。 ...
本书将向读者展示用Java语言和它的类库创建2D游戏,所涉及的主题包括高速性能、双缓冲图像、动画、声音、媒体控制、I/O和网络支持等。将带领大家一步一步学习编写Java游戏,最终打造属于自己的Java游戏。 目录...
2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...
2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...
1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的...
│ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+...
Java集合图谱 Java集合类图 Java List类图 Java Map类图 Java Set类图 Java TCP IP Hadoop 家族技能图谱 大数据工程师技能图谱 云计算图谱 云计算工程师必备技能 IOS开发工程师技能图谱 OpenResty技能图谱 前端...