`

HashMap和ConcurrentHashMap的对比

    博客分类:
  • Java
 
阅读更多

(1)      简单 put 操作的时间对比

HashMap

ConcurrentHashMap

put 操作循环 10 万次时,得到 time = 344ms,

put 操作循环 10 万次时,得到 time =281ms,

循环 50 万次时,得到 time = 1657 ms,

循环 50 万次时,得到 time = 1376 ms,

循环 100 万次时,得到 time = 4094 ms

循环 100 万次时,得到 time = 3625 ms,

(2)      put 操作的最多个数对比(即内存溢出)

HashMap

ConcurrentHashMap

运行程序,内存初值为: 846M ,内存峰值为: 931M put 计数 =1030604

运行程序,内存初值为: 847M ,内存峰值为: 931M put 计数 =1,030,238

 

(3)      HashMap ConcurrentHashMap  多线程操作的测试

HashMap

ConcurrentHashMap

put 线程数量为 100 get 线程数量为 90 时, HashMap 就开始出现性能下降的情形, CPU 使用率达到 45% 左右,且 put get 的个数要明显少于 ConcurrentHashMap 的个数

使用 ConcurrentHashMap 时,则线程很稳定, CPU 使用率不超过 12% 时。

分享到:
评论

相关推荐

    java7-8中的 HashMap和ConcurrentHashMap全解析.pdf

    在Java 7和8中,HashMap和ConcurrentHashMap是两种重要的数据结构,分别用于非线程安全和线程安全的键值对存储。本篇文章将深入解析这两种数据结构的内部实现,帮助读者理解它们的工作原理。 HashMap是Java中最常用...

    java多线程并发及集合框架面试题

    5. **性能考虑**:对比 HashMap 和 ConcurrentHashMap 在单线程和多线程环境下的性能表现,理解在性能和线程安全之间如何权衡。 理解并掌握这些知识点,对于成为一名优秀的 Java 开发人员至关重要,特别是在设计和...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...

    hashMap和hashTable的区别

    ### hashMap和hashTable的区别 #### 一、简介与基本概念 `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在...

    HashMap与CorruntHashMap性能对比

    在Java编程语言中,`HashMap`和`ConcurrentHashMap`都是常见的散列表实现,用于存储键值对数据。它们在很多场景下都能提供高效的查找、插入和删除操作,但两者的内部实现和线程安全性有着显著的区别。这篇文章将深入...

    16 解析HashMap.txt

    HashMap、ConcurrentHashMap源码级解读,并且对比了JDK7和8实现的不同,进行了大量的解释,结合了多个学习视频

    HashMap与HashTable的区别(含源码分析)

    在Java编程语言中,`HashMap`和`HashTable`都是实现键值对存储的数据结构,但它们之间存在一些显著的区别,这些区别主要体现在线程安全性、性能、null值处理以及一些方法特性上。以下是对这两个类的详细分析: 1. ...

    hashmap 实例

    在本文中,我们将深入理解 HashMap 的实例及其工作原理,并与其他数据结构如 Vector、ArrayList、LinkedList 和 Hashtable 进行对比。 首先,我们来看 HashMap 的实例代码: ```java HashMap hashmap = new ...

    阿里巴巴11

    3. 性能对比:相比于HashMap,TreeMap在添加和查找元素时的性能较低,因为需要进行树结构的调整。然而,如果需要有序性,TreeMap提供了更好的保证。 面试中可能会涉及的题目,比如HashMap和ConcurrentHashMap的区别...

    Java中的ConcurrentHashMap:线程安全的哈希表实现与代码示例

    最后,我们对比了 ConcurrentHashMap 与其他常见并发数据结构的优缺点,帮助读者更好地理解其适用场景和优势。 在实际应用中,我们需要根据具体的场景和需求来选择合适的数据结构。如果需要高并发访问和更新,那么 ...

    第9讲 对比Hashtable、HashMap、TreeMap有什么不同?1

    由于同步机制的存在,Hashtable的性能相比HashMap较低,现在在多线程需求下,通常更推荐使用ConcurrentHashMap,它在并发性能上做了优化。此外,Hashtable不支持null键和null值。 TreeMap是一种基于红黑树的Map实现...

    java7hashmap源码-AndroidOffer:只为帮助您获得更好的报价

    对比:Hashtable、HashMap、LinkedHashMap、ConcurrentHashMap、TreeMap (看第六条就可以) HashMap 用什么数据结构实现的 加载因子是什么 HashMap 初始化传入的容量参数的值是就是 HashMap 实际分配的空间么 ...

    HashMap遍历

    本文将深入探讨`HashMap`的遍历方法,包括`keySet()`和`entrySet()`两种主要方式,并通过代码示例对比它们的性能差异。 #### 方法一:使用`keySet()`遍历 `keySet()`方法返回`HashMap`中的所有键的集合视图。通过...

    HashMap、ConcurrenyHashMap源码解读

    hashmap源码解读,并且会对比JDK7和8实现的不同,已更新ConcurrentHashMap部分,且结合记录了多个视频的笔记。可以在https://blog.csdn.net/hancoder/article/details/105424922 获取最新笔记地址,下载过旧文件的...

    java面试题

    - Map接口的实现类HashMap和ConcurrentHashMap在并发环境下的应用。 - 泛型的使用和限制。 4. **多线程**: - 创建线程的方式:实现Runnable接口和继承Thread类。 - 线程同步:synchronized关键字、volatile...

    聊聊并发(4)深入分析ConcurrentHashMapJ

    8. **对比其他并发容器**:除了`ConcurrentHashMap`,Java并发包还提供了其他并发容器,如`CopyOnWriteArrayList`和`CopyOnWriteArraySet`,它们适用于不同的并发场景。理解这些容器的特性和适用场景,可以帮助你更...

    shouhu 面试 java 比较全的题目.docx

    - **HashMap和ConcurrentHashMap**:HashMap线程不安全的原因,以及ConcurrentHashMap如何实现线程安全。 4. **多线程** - **线程同步**:synchronized关键字的用法,以及它如何确保线程安全。 - **死锁**:解释...

    高速缓存实现源码

    在Java中,高速缓存的实现通常依赖于数据结构如哈希表(HashMap)或并发容器如ConcurrentHashMap。哈希表提供快速的查找和插入操作,而ConcurrentHashMap则为多线程环境提供了线程安全的访问。在这个项目中,对比了...

    java中级面试题(自己汇总)

    * IdentityHashMap比如对于要保存的key,k1和k2,当且仅当k1==k2的时候,IdentityHashMap才会相等,而对于HashMap来说,相等的条件则是:对比两个key的hashCode等 * IdentityHashMap不是Map的通用实现,它有意违反了...

Global site tag (gtag.js) - Google Analytics