HotSpot虚拟机垃圾收集优化教程-人机工程学
人机工程学是Java虚拟机和垃圾收集探索式(例如基于行为的探索式算法)提高应用程序性能的过程。
Java虚拟机为垃圾收集器,堆大小和运行时编译器配置提供基于平台的默认选择。这些选择满足不同类型应用程序的需求,并且需要较少的命令行调优。此外,基于行为调优动态优化堆的大小,以满足应用程序特定的性能要求。
本节将介绍这些默认的选择和基于行为的调优。在使用后续章节中更加详细的控制配置前,请使用这些默认配置。
_话题_
垃圾收集器,堆和运行时编译器的默认选择 基于行为的优化 最大暂停时间目标 吞吐量目标 足迹(空间量) 调优策略 垃圾收集器,堆和运行时编译器的默认选择这些是重要的垃圾收集器,堆和运行时编译器的默认选择:
Garbage-First (G1)垃圾收集器 垃圾回收线程的最大数量受堆大小和可用CPU资源的限制 初始化堆大小占物理内存的1/64 最大堆大小占物理内存的1/4 分层编译器,同时使用C1和C2 (JIT) 基于行为的优化Java HotSpot垃圾收集器可以被配置为优先满足两个目标之一:最大暂停时间和应用程序吞吐量。如果满足了优先目标,垃圾收集器会尝试最大努力满足另外一个目标。当然,这些目标并非总能实现:应用程序需要最少的堆大小来保存至少所有的活跃数据,而其他的配置可能会妨碍实现某些或者所有所需的目标。
最大暂停时间目标吞吐量目标是根据收集垃圾所花费的时间来衡量的,而在垃圾收集之外所花费的时间是应用程序时间。目标由命令行选项 -XX:GCTimeRation=nnn 指定。垃圾收集时间和应用程序时间之比是1/(1+nnn)。例如-XX:GCTimeRation=19将垃圾收集时间设置为总时间的1/20或者5%。垃圾收集花费的时间是所有垃圾收集引发的暂停时间的总和。如果达不到吞吐量目标,那么垃圾收集器的一个可能操作是增加堆的大小,以便在两次垃圾收集暂停之间应用程序中花费的时间更长。
足迹(空间量???)如果吞吐量和最大暂停时间目标已经达到,则垃圾收集器减少堆的大小,直到不能满足目标之一(总是吞吐量目标不能满足)。垃圾收集器可以使用的最小和最大堆大小分别使用-Xms= nnn 和-Xmx= mmm 最小和最大堆大小。
调优策略 堆大小增长或者缩小到支持所选吞吐量目标的大小。了解堆调优策略,如选择最大的堆大小,并选择最大暂停时间目标。
不要选择堆的最大值,除非你知道你需要比默认堆大小更大的堆。选择一个足以满足你的应用程序的吞吐量目标。
应用程序行为的改变可能导致堆增长或者收缩。例如,如果应用程序以更高的速率开始分配,那么堆将增长以保持相同的吞吐量。
如果堆大小增加到他的最大值,但是他的吞吐量目标还是没有满足,这说明最大的堆大小对于吞吐量目标来说太小了。将最大堆大小设置为近乎平台上的总物理内存,但不会导致应用程序的交换(应用程序将内存内容写入硬盘???)。再次执行应用程序,如果吞吐量目标仍未实现,则应用程序的吞吐量目标对于平台上的可用内存来说太高。
如果吞吐量的目标可以实现,但暂停太长,则选择最大暂停时间目标。选择最大暂停时间目标可能意味着吞吐量目标无法满足,因此选择适用于应用程序的折中值。
当垃圾收集器试图去满足相互竞争的目标时,堆的大小通常会振荡。即使应用程序达到稳定的状态,这种情况也是事实存在的。实现吞吐量目标(可能需要更大的堆)的压力与达到最大暂停时间目标(可能需要更小的堆)和最小占有率。
原创文章,转载请注明: 转载自并发编程网 ifeve.com本文链接地址: HotSpot虚拟机垃圾收集优化教程-人机工程学
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/60344.html
相关文章
- javascript 高级教程 视频_精通JavaScript
- 通过pycharm安装python_pycharm编译器安装教程
- 群晖ds3617xs_23739虚拟机安装与半洗白教程
- 最新GitHub新手使用教程(Windows Git从安装到使用)——详细图解[通俗易懂]
- opengrok使用教程之单工程(上)
- VMware虚拟机安装Win10教程
- 微信小程序反编译教程
- 永恒之蓝是谁激活成功教程的_永恒之蓝病毒激活成功教程了吗
- 如何对恶意IP地址进行拦截,腾讯云Web防火墙详细实现教程!
- vmware虚拟机linux使用教程_vmware ubuntu安装教程
- ESXI虚拟机群晖洗白教程
- 微信自动回复机器人使用教程
- M1/M2 芯片的Mac电脑上虚拟机安装 Windows 11 图文教程
- 虚拟机软件VMware中文版下载安装教程(详细步骤-图文结合)
- 2022超详细流程ios APP最新打包上线教程
- 虚拟机VMware Workstation 17 Pro V17.0.1 中文最新完整版(附永久key+教程) VMware安装教程VMware下载虚拟机VM
- VMware虚拟机安装Linux系统图文教程
- Linux安装快速指南:在虚拟机上实现Linux安装(虚拟机安装linux教程)
- 标题:Linux虚拟机安装JDK教程(linux虚拟机安装jdk)
- [图文教程] 现代操作系统Windows 10X版镜像下载与虚拟机部署体验
- 教你快速安装Linux虚拟机(安装linux虚拟机教程)
- HotSpot虚拟机垃圾收集优化教程-大多数并发垃圾收集器
- HotSpot虚拟机垃圾收集优化教程-垃圾收集调优简介
- 使用虚拟机安装oracle数据库教程(虚拟机上安装oracle)
- VM虚拟机下安装Centos7.0图文教程
- 让你轻松部署Linux虚拟机的教程(虚拟机装linux教程)
- 虚拟机使用教程: 搭建和管理MySQL数据库(虚拟机mysql数据库)
- Redis虚拟机安装指南(虚拟机redis安装教程)
- MySQL下载与安装简单易上手的25步教程(mysql下载及安装步骤)
- Oracle教程视频快速掌握强大工具(oracle中教程视频)
- php教程之phpize使用方法