蘇暖かい世間話JVM:Eclipseのスピード調整

このシリーズは、記録簿の研究ノートの「Java仮想マシンの深い理解」に使用されています。簡単には自分で見るが、また、アクセスを容易にします。

速攻は速攻で廃棄物を作る到達するために無駄になります!

二日には、メモリー・チューニングのためのEclipse用しようとすることを決めたJVMのメモリの最適化を、見ました。
機械は、64ビットWin10システム、仮想マシンは、Java HotSpot(TM)64ビットを使用します 。レノボのデスクトップハードウェア、インテルのPentium G630,8G物理メモリ。
A、Eclipseのプロファイルた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のプラグインディレクトリにJARパッケージ、Eclipseを起動し、Eclipseが起動時間を表示することができます)開始タイミングEclipseプラグインを書いて、最適化の前に録画を開始する時間は、試験結果の精度を確保するために、最終的には回を開始する必要がありますかつての結果:

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

スクリーンショットに基づいてより多くの情報を入手するには、Visual GCとプラグイン、我々はスタート元の構成での状況と結論付けることができます:
1.全体35秒を消費します。
1.126秒のガベージコレクション、フルGC 0回、マイナーGC 25回、2時間の合計は1.126秒かかります。
3.負荷クラス19991は、38.131秒の合計を取りました。
46.103秒の4.JITコンパイル時間(時間は、コンパイル時とストップ成長の数、で行くように)。
ヒープメモリの5仮想マシンの1024メガバイトは、新世代の現在割り当てられ63M、187M歳に割り当てられています。
全体的に短時間起動するので、チューニングの余地があるではありません。


第三に、ヒープメモリの最適化とメタスペース

オープンVisualVMは、直視型メモリ曲線

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

図から、関係なく、JavaヒープまたはMwtaspace曲線の変化曲線の、操作が完全に正常です。
一時的に最適化された条件を見つけることができません。

第四に、時間やコンパイル時のクラスのロードの最適化

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

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

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

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

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

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

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

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

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

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

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

è¿は?? ???? ????ÂÂæ?? ???? ????¾çè¿です°

これは、完全なGCは、要素のスペースフルGCによって引き起こされるすべてのメタデータGCしきい値の原因、あるたびに見ることができます。
JDK8は永久的な代理(PermGen)と呼ばれるメタスペース収納スペースにより廃棄し、交換されたの概念から始めます。デフォルトメタスペースでのみローカルメモリサイズの大きさに関係していること手段の代わりに、ヒープメモリのローカルメモリを使用して、メタスペース。すべてのフルGC、メタスペースがしきい値を調整しています。だから、その後、-XXを追加します。MetaspaceSize = 256M
が、それでもマイナーGCに新しい世代によって引き起こさ十分なメモリは、それゆえ、まだ設定を改善する必要がないですが起こるたびに見ることができます
** - Xms2048m
-Xmx2048m
-Xmn512m **
曲を好ましくは完成し、3つだけのマイナー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 

 

関連ボーエン:

SU暖かい小さなトークJVM:第一章にJava(登録商標)、メモリ及びメモリオーバフロー例外の第二章のJava領域、第三章ガベージコレクタとメモリ割り当て戦略

ツールの概要、第V章チューニング事例研究と実用を監視し、トラブルシューティングの章VMパフォーマンス:蘇は世間話JVMを温めます

蘇暖かい世間話JVM:クラスファイル構造章VI、VIIクラスローディング機構、第VIII章のバイトコード実行エンジン

おすすめ

転載: www.cnblogs.com/laobeipai/p/12147220.html