垃圾收集 java_关于Java垃圾收集

垃圾收集 java

本文讨论的是使用的最流行的框架之一带来的开销–我敢打赌,几乎没有应用程序不使用java.util.Collections。

本文基于以下事实:框架为例如集合的初始大小提供了默认值。 因此,我们有一个假设,即大多数人不会费心地自行管理其收藏的大小,因此最终会导致未充分利用的收藏浪费了内存。 如果是这样,我们可以实施一个解决方案,告诉人们创建半空集合的位置以及如何避免浪费内存。

测量

为了检验我们的假设,我们决定测量十三种最常见的java.util.Collection成员的用法:

  • java.util.HashMap
  • java.util.WeakHashMap
  • java.util.IdentityHashMap
  • java.util.Hashtable
  • java.util.LinkedHashMap
  • java.util.HashSet
  • java.util.LinkedHashSet
  • java.util.ArrayList
  • java.util.concurrent.ArrayBlockingQueue
  • java.util.Vector
  • java.util.ArrayDeque
  • java.util.PriorityQueue
  • java.util.concurrent.ConcurrentHashMap

对于从这些类派生的所有对象,我们每30秒测量一次集合中包含的对象的数量以及集合底层数组中的空白空间的数量。 这种空空间消耗的内存量浪费了集合。 使用特殊版本的Plumbr从556个不同的实际应用程序中收集了这些数据。

结果

为了估算问题的严重程度,我们在每30秒后计算了所有收集的总浪费,并针对每个会话取了这些总计的最大值和平均值。 从下图还可以看到,大多数会话(556个中的397个)的最大摘要浪费小于1 MB,只有32个会话的最大摘要浪费超过10 MB,最大约为60 MB 。

ArrayList-HashMap-overhead3

该图的读取应类似于以下示例:共有291个应用程序浪费了大于0.1MB但小于1MB的内存。

结论

将结果与分配的堆大小进行比较,我们得出的结论是,这个问题不够大,至少如果将浪费定义为未使用的堆。 也使我们放弃这一方向的研究是碎片化–这种浪费通常散布在100多个不同的馆藏中,从而使优化工作更加困难且更容易出错。

这项特殊的研究没有详细说明动态增加底层阵列上的CPU开销是否足够大,这将是另一个故事。

参考: 在我们的JCG合作伙伴 Kairi Kangro的Java Collection Waste上,来自Plumbr Blog博客。

翻译自: https://www.javacodegeeks.com/2014/01/on-java-collection-waste.html

垃圾收集 java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在git bush中如何退出vim编辑器

编辑器有三种模式: 命令行模式末行模式输入模式 常用命令 按Esc退出输入模式进入命令行模式也是系统默认模式。 o,i,a都可以进入输入模式。在命令模式下键入ZZ或者:wq保存修改并且退出 。如果只想保存文件,则键入:w&#xff0c…

【渝粤题库】广东开放大学 互联网营销 形成性考核

选择题 题目:下面的哪个调研内容属于经济环境调研?() 题目:()的目的就是加强与客户的沟通,它是是网络媒体也是网络营销的最重要特性。 题目:4Ps策略中4P是指产品、价格、…

【渝粤题库】广东开放大学 信息安全数学基础 形成性考核 (2)

选择题 题目:2.设a,b都是非零整数,若a|p,b|a, 则( ) . 题目:3.大于20且小于50的素数有()个. 题目:4.下列四个选项中,( ) 是安全素数. 题目:5.设b6,则余数r ( )为最小正余数. 题目:16…

带Spring Boot的GWT

介绍 我最近一直在研究用Java编写UI代码的选项。 在我以前的文章中,我研究了Eclipse RAP,发现它可以与Spring Boot集成在一个可执行jar中。 这次我想对GWT做同样的技巧。 每个人都喜欢Spring Boot。 它使很多事情变得更加干净和容易。 但是从历史上看&a…

matlab中统计数组中各数字(元素)出现的次数

1. tabulate 调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数、频率 【例1】统计数值型数组中各元素出现的频数、频率。 >> x [2 2 6 5 2 3 2 4 3 4 3 4 4 4 4 2 26 0 4 7 2 5 8 3 1 3 2 5 3 …

【渝粤题库】广东开放大学 大学英语B 形成性考核

选择题 题目: Do you still get free plastic bags from the supermarkets? Things have changed. China has banned free plastic bags at shops and supermarkets, and people have to pay for using plastic bags. The rule started on June 1. It came becaus…

Latex \bibliographystyle+修改字体字号的大小

1. bibliography style LaTeX 标准选项及其样式共有以下8种: plain ,按字母的顺序排列,比较次序为作者、年度和标题. unsrt ,样式同plain,只是按照引用的先后排序. alpha ,用作者名首字母年份后两位作标号…

【渝粤题库】广东开放大学 文化产业经济学 形成性考核

选择题 题目:受传统文化影响,中国的父母生孩子的意义和其他国家截然不同。父母一方面节衣缩食给孩子提供最好的物质条件,一方面对孩子"四体不勤”给予最大的宽容。这说明()。 题目:当今国际竞争的实质…

【渝粤题库】广东开放大学 标准的研制与编制 形成性考核

​👉关注我,看答案👈 选择题 题目:采纳( )制定为本国标准,可将国外先进标准转化为国内标准。 题目:标准的编制包括了标准的( )及标准三稿的形成过程。 题目:编制标准通常在此前已有标…

boxplot

1. 简介 箱形图,又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。箱形图于1977年由美国著名统计学家约翰图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数、上下四分位数及…

【渝粤题库】广东开放大学 社会学基础 形成性考核

选择题 题目: 在1838年出版的《实证哲学教程》第四卷中,孔德第一次提出了"社会学”这一术语。( ) 选择一项: 题目: 家庭这种群体之所以经久不衰,就在于它具有满足人类个体和社会需求的一…

Java 11的期望

过去的几年对Java世界一直是动荡不安的,在相当多的发行版中添加了各种各样的功能。 在开发人员社区中,人们逐渐意识到Java的开发速度不够快。 在最初的20年中,Java平台和Java开发工具包(JDK)经历了庞大,不…

MATLAB 在一个数组中随机选择n个数

MATLAB 中在一个数组内随机选择n个数。 例如:在 A [10, 50, 80, 100, 130, 260] 中随机选择5个数。 允许重复: n 5; A [10, 50, 80, 100, 130, 260]; random_num A(randi(numel(A),1,n)); random_num sort(random_num);不允许重复: …

【渝粤题库】广东开放大学photoshop图像处理 形成性考核

题目: 使用变换命令中的缩放命令时,按住哪个键可以保证等比例缩放?( ) 题目: 将前景色和背景色恢复为默认颜色的快捷键是()? 题目: Photoshop中“图像尺寸”…

martingale与Markov Process的关系

鞅过程与马尔科夫过程是什么关系? 1.鞅代表的是公平游戏,马尔可夫过程侧重过程无记忆性 总而言之:鞅和马尔可夫过程没有包含的关系。因为鞅代表的是公平游戏,而马尔可夫过程侧重过程无记忆性。两者没有内在联系。 注&#xff1…

【渝粤题库】陕西师范大学151105 财务管理基础作业(高起专)

《财务管理原理(高起专)》作业 一、单项选择题 1、短期借款较多,流动比率降低,这对一个企业来说一般属于 ( ) A、优势 B、劣势 C、机会 D、威胁 2、影响企业价值的两个最基本因素是 ( &#xff…

【渝粤题库】陕西师范大学163202 管理学原理 作业(高起本 专升本)

《管理学原理(专升本)》作业 一、名词解释 1、管理 2、德尔斐技术 3、目标管理 4、马斯洛的需求层次 5、效价 6、管理方格论 7、公平理论 8、头脑风暴法 9、授权式领导 10、管理幅度 11、泰罗制 12、同期控制 二、判断并说明理由 1、决策遵循的是满意原…

lambda 序列化_Lambda,会序列化吗?

lambda 序列化因此,我一直在思考Tyrus项目所需的增强功能,该功能允许用户广播到跨机器集群连接到URL的客户端子集。 有多种方法可以做到这一点。 但是自从我使用JDK 8以来,这个问题肯定看起来像钉子。 为此,我创建了一个简单的单…

【渝粤题库】陕西师范大学164205 ERP原理及应用 作业(专升本)

ERP原理及应用(专升本) 单项选择题 企业信息化综合运用了现代制造技术、( )、自动化技术、管理技术,将企业各项活动中的人、技术和经营管理,以及信息流、物料流和左流有机集成,实现企业整体优化…

LaTeX双栏模板插入通栏公式(跨栏插图)

1. 利用带星号的浮动体环境 带星号的浮动体figure和table环境可以在双栏模板中使用,例如我们以IEEEtran为例,插入通栏公式 \documentclass{IEEEtran} \usepackage{amsmath,lipsum} \begin{document} \lipsum[1] \begin{figure*} \begin{ali…