Set 的各个实现类的性能分析】的更多相关文章

大致的再回顾一下java集合框架的基本情况 一.各Set实现类的性能分析 1.1,HashSet用于添加.查询 HashSet和TreeSet是Set的两个典型实现,HashSet的性能总是比TreeSet(SortedSet的子类)好,尤其是最常用的添加.查询等操作.原因:TreeSet需要额外的红黑树算法来维护集合元素的次序,只有当需要一个保持排序的Set时,才应用使用TreeSet 1.2,LinkedHashSet用于遍历 LinkedHashSet是HashSet的一个子类,对于添加.…
HashSet和TreeSet是Set的两个典型实现,到底如何选择HashSet和TreeSet呢?HashSet的性能总是比TreeSet好(特别是最常用的添加.查询元素等操作),因为TreeSet小额外的红黑树算法来维护集合元素的次数.只有当需要一个保持排序的Set时,才应该用TreeSet,否则都应该使用HashSet. HashSet还有一个子类:LinkedHashSet,对于普通的插入.删除操作,LinkedHashSet比HashSet要略微慢一点,这是由维护链表所带来的额外开销造…
HashMap和Hashtable的实现机制几乎一样,但由于Hashtable是一个古老的.线程安全的集合,因此HashMap通常比Hashtable要快. TreeMap比HashMap和Hashtable要慢(尤其在插入.删除key-value对时更慢),TreeMap中的key-value总是处于有序状态,无需专门进行排序操作. LinkedHashMap比HashMap慢一点,因为它需要维护链表来保持Map中key-value时的添加顺序. IdentityHashMap采用与HashM…
一.各Set实现类的性能分析 HashSet和TreeSet是Set的两个典型实现.HashSet的性能总是比TreeSet好(特别是最常用的添加.查询元素等操作),因为TreeSet需要额外的红黑树算法来维护集合元素的次序.只有当需要一个排序的Set时,才应该使用TreeSet,否则都应该使用HashSet. HashSet的子类:LinkedHashSet,对于普通的插入.删除操作,LinkedHashSet比HashSet要略微慢一点,这是由维护链表所带来的额外开销造成的,但由于有了链表,…
引言 本文为 Java 性能分析工具系列文章第三篇,这里将介绍如何使用 Java 任务控制器 Java Mission Control 深入分析 Java 应用程序的性能,为程序开发人员在使用 Java 任务控制器的时候提供帮助.第一篇:操作系统工具,第二篇:Java 内置监控工具. JMC 是在 JAVA 7u40 发布中加入的性能监控工具.使用过 JDK 6 中 JRockit JVM 的用户并不会陌生,因为它是 Java 7 中 JMC 功能的一部分.启动 JMC 后将会显示当前机器中的所…
引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工具,其中包括: jcmd:打印一个 Java 进程的类,线程以及虚拟机信息.适合用在脚本中.使用 jcmd - h 来查看使用方法. jconsole:提供 JVM 活动的图形化展示,包括线程使用,类使用以及垃圾回收(GC)信息. jhat:帮助分析内存堆存储. jmap:提供 JVM 内存使用信息…
引言 性能分析的前提是将应用程序内部的运行状况以及应用运行环境的状况以一种可视化的方式更加直接的展现出来,如何来达到这种可视化的展示呢?我们需要配合使用操作系统中集成的程序监控工具和 Java 中内置的监控分析工具来进行 Java 程序的性能分析.本文为系列文章,共三篇分别介绍这几类工具.在本文中将介绍操作系统中的性能监控工具. 操作系统中的程序性能监控工具并非只针对于 Java 程序,适用于所有运行其中的程序.在基于 UNIX 的操作系统中,有许多命令行工具可以用来监控程序的运行状况,例如 s…
对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List.Set和 Map这三大类的集合,今天Android吧(ard8.com)就他们的子类在标准情况和多线程下的性能做简单的分析. Collection接口主要有两种子类分别为List和Set,区别主要是List保存的对象可以重复,而Set不可以重复,而Map一般为key-value这样的对应关系,比如我们常用的HashMap. 一.List 主要有ArrayList…
近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借鉴.英文好的读者可读原文(链接:http://blog.udinic.com/2015/09/15/speed-up-your-app). 1.作者的规则 作者每次着手处理或寻找性能问题时,遵循下列规则: 时常检测 在更新APP前后,用测试工具软件多检测几次APP性能,可快速得到测试数据.这些数字是不会说谎的…
VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收器.执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作.本文主要介绍如何使用 VisualVM 进行性能分析及调优. 目录: 准备工作 内存分析篇 内存堆Heap 永久保留区域PermGen CPU分析篇 线程分析篇 参考文献 准备工作 自从 JDK 6 Update 7 以…