[Java虚拟机][优化实战][使用VisualVM监控和加速Intellij Idea启动]

您所在的位置:网站首页 idea优化加速 [Java虚拟机][优化实战][使用VisualVM监控和加速Intellij Idea启动]

[Java虚拟机][优化实战][使用VisualVM监控和加速Intellij Idea启动]

2024-07-11 13:49:05| 来源: 网络整理| 查看: 265

[Java高级][Java虚拟机][优化实战][使用VisualVM监控和加速Intellij Idea启动]

文章目录 [Java高级][Java虚拟机][优化实战][使用VisualVM监控和加速Intellij Idea启动] 序 Intellij idea 版本信息 调优前的程序状态 编译时间和类加载时间优化 调整内存设置控制垃圾收集频率 选择垃圾收集器降低延迟 最终优化参数 idea 虚拟机参数详解

JDK提供了许多JVM监视工具,用于监控和分析 JVM和Java程序的运行状况, VisualVM是其中最强大的一个。

VisualVM实用教程

《深入理解Java虚拟机》一书中 提到以Eclipse为例 加速其启动速度

那这里 我们仿照此文内容 使用VisualVM来监控idea启动过程 并优化启动速度

Intellij idea 版本信息 IntelliJ IDEA 2018.1 Subscription is active until October 14, 2018 JRE: 1.8.0_152-release-1136-b20 amd64 JVM: OpenJDK 64-Bit Server VM 由 JetBrains s.r.o Windows 10 10.0 调优前的程序状态

idea启动参数

-Xms600m -Xmx1024m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dfile.encoding=UTF-8

已经有一些改进 如最小堆大小改为600m 默认为128m 最大堆设置为1024m 默认为512m

此处启动的是64位 Intellij idea 所以 启动参数中没有-server 因为64位JVM默认就是server模式的 而且并没有client模式

Idea启动后默认打开的是一个SpringBoot项目 依赖大概在20个左右 并不是很多

启动 使用VisualVM 监控启动信息 这里写图片描述

可以看到 耗时共分为一下几个部分

阶段 耗时 GC次数 编译 59.375 / 类加载 21.263s / 垃圾回收 0.853s 27 Eden区回收 0.384s 15 老年代回收 0.469s 12

耗时很长 一共1分20秒左右

其中JIT编译耗时最长 为59.3秒 加载类46111个 耗时21.2秒 垃圾收集27次 耗时 0.853s 其中

MinorGC 被触发15次 耗时0.384s FullGC 被触发12次 耗时0.469s

虚拟机堆空间1024mb被划分为341.312mb的新生代 (其中为273.062mb的eden区和两个34.125mb的survivor区) 和682.688mb的老年代

其中非用户时间 如编译时间 类加载时间 垃圾回收时间等占用过长 下面进行调优

编译时间和类加载时间优化

编译时间其实并没有太大优化空间 因为64位虚拟机默认使用server模式运行 会使用强化的c2编译器 所以编译耗时较长 但是这里的损失可以在程序运行时补回来

那类加载时间是否可以优化呢 其实也没有太大的空间

idea的代码显然是广泛使用的 可以认为是可信的 那么可以通过参数 -Xverify:none 来禁止字节码验证 测试可以提升5s左右的时间

调整内存设置控制垃圾收集频率

Intellij idea启动是使用自带JDK的 而idea 2018自带的JDK是OpenJDK 8 OpenJDK默认使用的是ParNew收集器

既然在编译时间和类加载时间上不能优化 只能在内存设置上做文章了

先打印GC日志

添加参数

-XX:+PrintGCTimeStamps //打印GC时间戳 -XX:+PrintGCDetails //打印GC详细信息 -verbose:gc //打印GC信息 -Xloggc:gcinfo.log //将结果输出到gcinfo.log文件

日志内容

2.210: [GC (CMS Initial Mark) [1 CMS-initial-mark: 0K(264896K)] 266340K(579456K), 0.0447797 secs] [Times: user=0.03 sys=0.00, real=0.04 secs] 2.379: [GC (Allocation Failure) 2.379: [ParNew: 279616K->27687K(314560K), 0.0097857 secs] 279616K->27687K(579456K), 0.0098441 secs] [Times: user=0.16 sys=0.00, real=0.01 secs] 3.007: [GC (CMS Final Remark) [YG occupancy: 199746 K (314560 K)]3.007: [Rescan (parallel) , 0.0172355 secs]3.024: [weak refs processing, 0.0000130 secs]3.024: [class unloading, 0.0034056 secs]3.028: [scrub symbol table, 0.0027072 secs]3.031: [scrub string table, 0.0003650 secs][1 CMS-remark: 0K(264896K)] 199746K(579456K), 0.0245514 secs] [Times: user=0.17 sys=0.00, real=0.03 secs] 4.080: [GC (Allocation Failure) 4.080: [ParNew: 307303K->25127K(314560K), 0.0367213 secs] 307303K->49085K(579456K), 0.0367688 secs] [Times: user=0.28 sys=0.02, real=0.04 secs] 7.301: [GC (Allocation Failure) 7.301: [ParNew: 304743K->34944K(314560K), 0.0201103 secs] 328701K->79250K(579456K), 0.0201647 secs] [Times: user=0.20 sys=0.00, real=0.02 secs] 7.321: [GC (CMS Initial Mark) [1 CMS-initial-mark: 44306K(264896K)] 79250K(579456K), 0.0020939 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 7.975: [GC (CMS Final Remark) [YG occupancy: 175573 K (314560 K)]7.975: [Rescan (parallel) , 0.0056321 secs]7.981: [weak refs processing, 0.0000512 secs]7.981: [class unloading, 0.0071611 secs]7.988: [scrub symbol table, 0.0091308 secs]7.997: [scrub string table, 0.0008179 secs][1 CMS-remark: 44306K(264896K)] 219880K(579456K), 0.0237342 secs] [Times: user=0.03 sys=0.00, real=0.02 secs] 8.768: [GC (Allocation Failure) 8.768: [ParNew: 314560K->34944K(314560K), 0.03


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭