`

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

 

}

 

}

分享到:
评论

相关推荐

    java集合类类性能测试源代码

    java集合类类性能测试源代码

    java集合类的效率测试

    我写的关于set集合和list集合相关性能测试,linkedList ArrayList HashSet 等类的增删改查性能测试

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...

    Cloud_Foundry中Java应用集合类内存泄漏检测_叶瑞浩.caj

    中Java应用内存泄漏的检测,通过监控集合类对象的内存消耗和集合内元素的 使用情况,得出对象内存泄漏的可能性大小,量化对象内存泄漏的风险。检测 系统首先收集垃圾回收事件后的应用内存数据,确定进行...

    大话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设计模式、Java Spring框架、Java Spring Boot、Java MyBatis框架、Java Hibernate框架...

    java面试题及技巧4

    │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+...

    java面试笔试题库java学习笔记开发教程互联网公司面试资料大全合集.zip

    大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...

    软件测试中的Java列表对象的性能分析和测试

    JAVAJava软件测试中的Java列表对象的性能分析和测试SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector、ArrayList和LinkedList。有关这些List类的性能差别是一个经常被问及的问题。在...

    java开源包11

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包4

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    企业公司软件测试面试笔试题集合 软件测试面试题

    企业公司软件测试面试笔试题集合 软件测试面试题 (测试基础).doc 01_企业面试试卷(综合).doc 01_企业面试试卷(综合)_参考答案.doc 04_企业面试试卷(测试基础).doc 04_企业面试试卷(测试基础)_参考答案.doc...

    Java课程设计实现停车场管理-源代码.docx

    6. Java集合框架:本资源使用了Java集合框架来实现停车场管理系统,包括了ArrayList、LinkedList等集合类型。 7. 时间类:本资源使用了Java的时间类来实现时间相关的操作,包括了日期、小时、分钟、秒等时间单位。 ...

    Java2游戏编程.pdf

    本书将向读者展示用Java语言和它的类库创建2D游戏,所涉及的主题包括高速性能、双缓冲图像、动画、声音、媒体控制、I/O和网络支持等。将带领大家一步一步学习编写Java游戏,最终打造属于自己的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 ...

    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 ...

    java联想(中文)

    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 一个独立的...

    java面试题目与技巧1

    │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+...

    45张史上最全的IT工程师技能图谱(高清).zip

    Java集合图谱 Java集合类图 Java List类图 Java Map类图 Java Set类图 Java TCP IP Hadoop 家族技能图谱 大数据工程师技能图谱 云计算图谱 云计算工程师必备技能 IOS开发工程师技能图谱 OpenResty技能图谱 前端...

Global site tag (gtag.js) - Google Analytics