Java 8中最快的垃圾收集器是什么?

OpenJDK 8具有几种垃圾收集器算法,例如Parallel GCCMSG1 。 哪一个最快? 如果默认的GC从Java 8中的并行GC更改为Java 9中的G1(当前建议),将会发生什么? 让我们对其进行基准测试。

基准方法

  • 使用不同的VM参数运行相同的代码6次( -XX:+UseSerialGC-XX:+UseParallelGC-XX:+UseConcMarkSweepGC-XX:ParallelCMSThreads=2-XX:ParallelCMSThreads=4-XX:+UseG1GC ) 。
  • 每次运行大约需要55分钟。
  • 其他VM参数: -Xmx2048M -server
    OpenJDK版本: 1.8.0_51 (当前最新版本)
    软体: Linux version 4.0.4-301.fc22.x86_64 硬件: Intel® Core™ i7-4790 CPU @ 3.60GHz
  • 每次运行都能使用OptaPlanner解决13个计划问题。 每个计划问题要运行5分钟。 它以30秒的JVM预热开始,该预热将被丢弃。
  • 解决计划问题不涉及任何IO (启动期间要加载输入的时间只有几毫秒)。 一个CPU完全饱和。 它会不断创建许多短命的对象,然后GC会收集它们。
  • 基准衡量每毫秒可以计算的分数数量。 越高越好。 为拟议的规划解决方案计算分数并非易事:涉及许多计算,包括检查每个实体与每个其他实体之间的冲突。

要在本地重现这些基准, 请从源代码构建optaplanner并运行主类GeneralOptaPlannerBenchmarkApp 。

基准结果

执行摘要

为了方便起见,我将每种垃圾收集器类型与Java 8(并行GC)中的默认类型进行了比较。

trashCollectorTypesJava8

结果很明显: 该默认值(并行GC)是最快的。

原始基准数字

表格1

相对基准数字

表2

Java 9是否应该默认为G1?

有建议使G1在服务器的OpenJDK9中成为默认的垃圾收集器 。 我的第一反应是拒绝这个提议

  • G1平均为17.60%
  • 对于每个数据集,每个用例的G1始终较慢。
  • 在最大数据集(Machine Reassignment B10)上,它使任何其他数据集的大小都34.07% ,, G1为34.07%较慢。
  • 如果开发人员机器和服务器之间的默认GC不同,则开发人员基准测试的可信度将降低。

另一方面,需要注意一些细微差别:

  • G1专注于限制GC暂停,而不是吞吐量。 对于这些用例(计算量很大),GC暂停长度基本上无关紧要。
  • 这是(几乎)单线程基准。 在并行或多线程求解中使用多个求解器进行进一步的基准测试可能会影响结果。
  • 建议使用G1的堆大小至少为6 GB 。 该基准测试仅使用了2 GB的堆大小,甚至只有最大的数据集(Machine Reassignment B10)才需要该大小。

繁琐的计算只是OpenJDK所使用的众多功能之一:在整个社区辩论中,它只是利益相关者中的一员。 如果其他利益相关者(例如Web服务)证明相反,则值得更改默认GC。 但是,请先向我展示真实项目的基准

结论

在Java 8中,默认的垃圾收集器(Parallel GC)通常是OptaPlanner用例的最佳选择。

翻译自: https://www.javacodegeeks.com/2015/08/what-is-the-fastest-garbage-collector-in-java-8.html

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

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

相关文章

如何做好内容策划并完成一篇合格的深度文?

目录 常见的策划方案有哪些类型? 如何思考策划方向? 如何确定内容形式?

在计算机硬件中mo是指,计算机导论 - [课件]第2章 计算机系统的硬件.ppt

计算机导论 - [课件]第2章 计算机系统的硬件微操作控制部件(MOCU)可有下列两种实现方案: 组合逻辑控制 微程序控制 CPU 主存储器 I/O接口 DMA控制器 I/O设备 总线 交换数据 ① ② ④ ③ 3. 直接存储器存取方式DMA P83 上一页 返 回 下一页 * 教学小结 常见的输入输出…

System.Timers.Timer 嵌套 System.Windows.Forms.Timer的问题

如题“System.Timers.Timer 嵌套 System.Windows.Forms.Timer的问题”,最近在项目中在类uc_Map中启用了System.Timers.Timer,并在Timer的Timer_Elapsed方法中需要启动或停止GMapMarkerDirection markerPlane类中的System.Windows.Forms.Timer&#xff0c…

【粉丝需求】如何把一个前端网页都搞下来?

一般比较简单的就是展示型网站,这类网站 最好仿制,如果带后台的不太好获取完整后台代码,但是搞一下前端代码还是可以的。一般前端不管用什么框架,基础元素由html+css+javaScript组成。 声明:本文仅仅提供一种思路,如有对站点侵权的地方,请联系博主删除。 我用的是HB-X,…

韦冬雪计算机应用,捕获效应下RFID防碰撞算法的研究与应用

摘要:作为物联网核心技术之一的射频识别(Radio Frequency Identification,RFID)技术,其应用市场正随着物联网的普及而拓宽.阅读器和标签是RFID系统的重要组成部分,阅读器负责发出查询命令,标签负责响应命令.当多个标签同时向同一个阅读器发送响应命令时会发生标签碰…

九、其他常用命令

一、挂载命令 可以理解为windows当中的分配盘符操作 1.查询与自动挂载 [rootlocalhost ~]# mount #查询系统中已经挂载的设备 [rootlocalhost ~]# mount –a #依据配置文件/etc/fstab的内容,自动挂载一遍 只要按照对应的格式将相应的分区添加到list中,那…

王凯1987计算机系,计算机科学与技术系王凯:付出总有回报

首先,我真的很高兴能拿到这个奖,毕竟,这是对我自己大一这半年付出的一种肯定,也是对今后学习的很大鼓励。我想,学校之所以设立奖学金,真正的目的也正如此吧。听到这个信息时,我感到惊喜又意外&a…

【ECharts系列|01入门】 从入门到天黑【入门级教程实战】

ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。 ECharts 遵循 Apache-2.0 开源协议,免费商用。 ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox&#xff0…

【LeetCode】1. Two Sum

题目: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution. 从给定的一个整数数组中找出两个数,使得它们的和为target&…

Java开发人员应了解的JVM流行语

本文将与您分享一些JVM“流行语”,它们对于Java开发人员在执行任何JVM性能和垃圾回收调优之前理解和记住非常重要。 本文末尾还提供了一些技巧,包括一些高级性能调优最佳实践。 将来的文章中将探讨有关Oracle HotSpot并发GC收集器(例如CMS和G…

计算机制图笔记本需要什么配置,绘图笔记本需要什么配置?

ACER 宏碁型号 EX4630ZG-421G25MnCPU平台 Intel平台速度 T4200 2.00GHz系统总线 800MHz二级缓存 1MB屏幕尺寸 14寸类型 WXGA显示芯片 NVIDIA GeForce 9300M GS 独立显示芯片显存容量 独立256MB内存容量 1GB速度 DDR2硬盘容量 250G转速 5400转/分钟接口类型 SATA串行光存储 DVDR…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【上篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 项目结构&#xff1a; activity.html <!doctype html> <met…

算法属于计算机服务还是软件,第06讲 服务器软件设计的算法和问题

第06讲 服务器软件设计的算法和问题本文由&#xff32;&#xff49;&#xff43;&#xff48;&#xff41;&#xff52;&#xff44;&#xff10;&#xff10;&#xff17;&#xff3f;&#xff4c;&#xff49;&#xff4e;贡献&#xff50;&#xff50;&#xff54;&#xff…

那些遇到的position-fixed无效事件

本篇文章由&#xff1a;http://xinpure.com/position-fixed-encountered-an-invalid-event/ 第一次无效事件 事件主角: transform 应用环境: Chrome/FireFox 事件回顾: 这是在使用 iscroll js滚动库的时候&#xff0c;遇到的问题 当时的需求是需要在滚动到一定的距离的时候&…

spring rmi_Spring远程支持和开发RMI服务

spring rmiSpring远程支持简化了启用远程服务的开发。 当前&#xff0c;Spring支持以下远程技术&#xff1a;远程方法调用&#xff08;RMI&#xff09;&#xff0c;HTTP调用程序&#xff0c;Hessian&#xff0c;Burlap&#xff0c;JAX-RPC&#xff0c;JAX-WS和JMS。 远程方法调…

计算机dos通讯,PC双机通信DOS

《PC双机通信DOS》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《PC双机通信DOS(64页珍藏版)》请在人人文库网上搜索。1、1 第第9 9章章 串行通信接口串行通信接口 主要内容&#xff1a;主要内容&#xff1a;1 1、串行传送的基本概念、串行传送的基本概念 2 2、串行通…

用Paint Tool SAI绘制漫画

漫画绘图软件 Paint Tool SAI是一个来自日本的小巧的漫画辅助绘图软件&#xff0c;只有11M大小。 这个没有任何现成的模板和组件&#xff0c;只能自己一笔一笔的话&#xff0c;画笔、图层等功能与Photoshop类似&#xff0c;但没有PS其它大量功能&#xff0c;因此操作更加便捷&a…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【下篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 上一篇&#xff1a;【ECharts系列|02可视化大屏】 舆情分析&#xff0…

uts计算机博士,澳大利亚悉尼科技大学 (UTS) 招收2021/2022年 全奖博士生 (软件工程/人工智能方向)...

☞招收2022年第一学期入学&#xff0c;软件工程&#xff0c;人工智能方向csc博士生, 访问学生和全奖学生。学校介绍:澳大利亚悉尼科技大学(uts)座落于风景优美的悉尼市中心&#xff0c;毗邻darling harbour&#xff0c;中国城&#xff0c;悉尼歌剧院。uts是世界知名研究学府&am…

在WildFly上将JPA和CDI Bean与骆驼一起使用

我并没有真正为此计划&#xff0c;但是在一个免费的会议月份中&#xff0c;我有机会进行了一些深入的探讨&#xff0c;并向您展示了WildFly-Camel子系统提供的WildFly魔术上的更多Camel。 商业背景 该演示来自Christina Lin在JBoss Demo-Central上的演示 。 她演示了Camel中Fi…