스와 따뜻한 작은 이야기 JVM : 이클립스 속도 조정

이 시리즈는 "깊이있는 자바 가상 머신의 이해"책 연구 노트 기록하는 데 사용됩니다. 쉬운 직접 볼뿐만 아니라 접근을 용이합니다.

가속은 서둘러 낭비를하게 도달하기 위해 낭비하게!

이틀 메모리 튜닝 이클립스에 노력하기로 결정 JVM 메모리 최적화를 보았다.
이 기계는 64 비트 Win10 시스템, 가상 머신 자바 핫스팟 (TM)의 64 비트를 사용한다 . 레노버 데스크탑 하드웨어, 인텔 펜티엄 G630,8G 물리적 메모리.
A, 이클립스 프로필 eclipse.ini

-startup
plugins/org.eclipse.equinox.launcher_www.shentuylzc.cn 1.4.0.v20161219-1356.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.www.tengyao3zc.cn win32.win32.x86_64_1.1.551.v20171108-1834
-product
org.eclipse.epp.package.www.xinyueylzc.cn  jee.product
-showsplash
org.eclipse.epp.package.www.huizhonggjpt.cn common
--launcher.defaultAction openFile --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=www.lafei6d.cn  1.8 [email protected]/eclipse-workspace -XX:+UseG1GC -XX:+UseStringDeduplication --add-modules=ALL-SYSTEM -Dosgi.requiredJavaVersion=1.8 -Xms256m -Xmx1024m --add-modules=ALL-SYSTEM -Dcom.sun.management.jmxremote

초기 설정 지정 JDK의 1.8 버전 G1 수집기를 사용 1024M에 최대 힙을 설정하고 JMX 관리를 열었다.

튜닝 건강 전에 둘째,

시작 타이밍 이클립스 플러그인을 쓴 순서대로 최적화하기 전에 녹화를 시작하는 시간은, 테스트 결과의 정확성을 보장하기 위해 마지막 시간을 시작합니다 (Eclipse를 시작 이클립스 플러그인 디렉토리에 항아리 패키지, Eclipse는 시작 시간을 표시 할 수 있습니다) 한 번 결과 :

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

: 시각 GC와 플러그인 스크린 샷을 기반으로 더 많은 정보를 얻을, 우리는의 상황이 원래 구성으로 시작하는 것이 결론을 내릴 수
는 전체 35초 소비 1. 시작을.
전체 GC 0 번, 마이너 GC 25 번, 1.126 초 정도 소요되는 2. 총 시간 1.126 초 가비지 컬렉션.
3.로드 클래스 19991은 38.131 초 총했다.
(시간이 컴파일 시간과 정지 성장의 수에 의해 간다) 46.103 초 4.JIT 컴파일 시간.
힙 메모리 5. 가상 머신 1,024메가바이트는 새로운 세대의 현재 할당 된 63-, 세 187M에 할당된다.
전반적으로하지 짧은 시동 시간, 그래서 여전히 조정의 여지가있다.


셋째, 힙 메모리 최적화 및 Metaspace

오픈 VisualVM과, 직시 메모리 곡선

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

그림에서,에 관계없이 Java 힙 또는 Mwtaspace 곡선의 변화 곡선의 작업은 완전히 정상입니다.
일시적으로 최적의 조건을 찾을 수 없습니다.

넷째, 시간과 컴파일시 클래스로드의 최적화

看上图调优前的运行状况,编译时间和类加载时间应该是优化的重头戏了。

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

先看类加载时间。由于类加载需要进行字节码验证耗时,考虑到eclipse使用者众多,它的编译代码我们认为是可靠的,不需要加载的时候再进行字节码验证,因此通过参数-Xverify:none禁止掉字节码验证过程也可以认为是优化手段。

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

在取消掉字节码验证之后,确实可以看到Ecipse启动速度有了一定的提升,但仍还不够。
在类加载个数上,可以看出初始状况加载了19991个类,可以在eclipse中关掉不需要的启动项。

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

但是编译时间上目前没找到太好的办法~~~不知道怎么解决,希望有高人指点

五、调整内存,减少垃圾收集次数

上面说到了编译时间 类加载时间,那么剩下的就是GC时间了。
可以看出,此次Full GC被触发了 4 次,Minor GC 8 次。

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

此次GC次数并不算多,但是从监视器中可以看出,堆内存的使用不应该发生Full GC才对。
为了能够更好的看到eclipse启动期间所做的GC收集操作,我们加入配置-Xloggc:gc.log。

è¿ IS ???? ???? ?? ㄱ æ ?? ???? ???? ¾ç è¿ °

그것은 모든 시간을 볼 수있는 전체 GC는 요소 공간 전체 GC로 인해 발생하는 모든 메타 데이터 GC 임계 값 원인이다.
JDK8 영구적으로 대신합니다 (PermGen) 불리는 Metaspace 저장 공간에 의해 삭제 및 대체의 개념에서 시작합니다. 기본적 Metaspace는 로컬 메모리 용량의 크기에 관한 것을 의미 로컬 메모리 대신 힙 메모리를 사용 Metaspace. 모든 전체 GC, Metaspace는 임계 값을 조정한다. 그래서, 다음 -XX을 추가 MetaspaceSize = 256M
하지만 여전히 마이너 GC를 새로운 세대에 의한 충분한 메모리, 따라서 여전히 구성을 개선 할 필요가없는 것입니다 발생 때마다 볼 수 있습니다
** - Xms2048m
-Xmx2048m
-Xmn512m **
곡을 바람직 완료 세 개의 마이너 GC 600 밀리 초 걸린다.
그러나 시작 시간은 여전히 27초 필요합니다. . . . . . . . . 그레이는 종종 당황.
시각 또는 시간은 클래스로드 및 컴파일에 보냈다. 더 자세한 최적화의 필요성. 마지막으로, 최종 eclipse.ini 후이 튜닝 구성을 게시
 

-startup
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.www.baihua178.cn win32.win32.x86_64_1.1.551.v20171108-1834
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction openFile --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=www.letianhuanchao.cn 1.8 [email protected]/eclipse-workspace --add-modules=ALL-SYSTEM -Dosgi.requiredJavaVersion=1.8 --add-modules=ALL-SYSTEM -Xms2048m -Xmx2048m -Xmn512m -Dcom.sun.management.jmxremote -Xverify:none -Xloggc:gc.log -XX:MetaspaceSize=256M 

 

관련 보웬 :

스와 따뜻한 잡담 JVM : 첫 장에 자바, 메모리 및 메모리 오버 플로우 예외 번째 장 자바 영역, 제 III 가비지 수집기 및 메모리 할당 전략

스와 작은 이야기 JVM을 따뜻하게 : 장 VM 성능 모니터링 및 도구 요약, 장 V 튜닝 사례 연구 및 실용적인 문제 해결

스와 따뜻한 잡담 JVM : 클래스 파일 구조 제 VI, VII 클래스 로딩기구와, 제 VIII 바이트 코드 실행 엔진

추천

출처www.cnblogs.com/laobeipai/p/12147220.html