日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

eclipse优化设置

發(fā)布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse优化设置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先了解下JVM中幾個相關(guān)的概念:
Xms:最小堆大小
Xmx:最大堆大小
Xmn:年輕代堆大小
Xss:每個線程的堆大小
PermSize:初始持久代大小
MaxPermSize:最大持久代大小

一般Xms、Xmx設(shè)置相同,PermSize、MaxPermSize設(shè)置相同,這樣可以避免伸縮堆大小帶來的性能損耗。

首先eclipse安裝根目錄下打開eclipse.ini,加上配置:

-Xloggc:gc.log
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails

目的是運(yùn)行eclipse的時候可以打出詳細(xì)gc過程。

啟動eclipse,然后打開gc.log一看,哇塞啟動一次就做了幾十次GC,包括不少次Full GC,著手優(yōu)化……

先解決Full GC的問題:

……
3.159: [Full GC 3.159: [Tenured: 22716K->26133K(35780K), 0.1116536 secs] 38493K->26133K(51908K), [Perm : 20479K->20479K(20480K)], 0.1117614 secs] [Times: user=0.11 sys=0.00, real=0.11 secs]?
3.706: [Full GC 3.706: [Tenured: 26133K->27935K(43556K), 0.1235449 secs] 40042K->27935K(63204K), [Perm : 24575K->24575K(24576K)], 0.1236474 secs] [Times: user=0.13 sys=0.00, real=0.13 secs]?
……

如上GC日志可以看出,Full GC主要是針對Tenured、Perm區(qū)的GC,好那先調(diào)整Perm大小,指定充裕的持久代區(qū)域,eclipse.ini中加入:

-XX:PermSize=128m
-XX:MaxPermSize=128m

再次啟動看gc.log,Full GC沒有了,但是還有很多次普通GC,說明還是需要進(jìn)一步優(yōu)化。
eclipse的初始堆大小分配得很小,因此不利于年輕代堆大小的分配,如果設(shè)置的年輕代堆大小Xmn大于最小堆大小Xms,eclipse將無法啟動。
因此,將Xms調(diào)整為512m,重啟動后觀察GC大幅減少。
最后調(diào)整Xmn,年輕代堆大小,經(jīng)過反復(fù)比較后,發(fā)現(xiàn)設(shè)置“-Xmn256m”效果最優(yōu)。

優(yōu)化后的GC日志:

3.203: [GC 3.204: [DefNew: 209776K->26176K(235968K), 0.0876304 secs] 209776K->27184K(498112K), 0.0876921 secs] [Times: user=0.09 sys=0.00, real=0.09 secs]?
5.422: [GC 5.422: [DefNew: 235968K->12433K(235968K), 0.0989335 secs] 236976K->39296K(498112K), 0.0990229 secs]

在接近6秒的啟動時間內(nèi),eclipse總共只做了2次普通GC回收,怎么樣效果明顯吧!


加快啟動速度
1.在eclipse啟動的時候,它總是會搜索讓其運(yùn)行的jre,往往就是這個搜索過程讓eclipse啟動變慢了。(沒設(shè)置時,等2-3s出現(xiàn)進(jìn)度條,設(shè)置后直接出現(xiàn)進(jìn)度條)

只要在eclipse.ini中加入-vm的參數(shù)就可以了


2.取消所有啟動時要激活的插件(在用時激活也一樣)和其它的相關(guān)的在啟動時執(zhí)行的操作。


3.關(guān)閉自動更新



減少jvm內(nèi)存回收引起的eclipse卡的問題
這個主要是jvm在client模式,進(jìn)行內(nèi)存回收時,會停下所有的其它工作,待回收完畢才去執(zhí)行其它任務(wù),在這期間eclipse就卡住了。所以適當(dāng)?shù)脑黾觠vm申請的內(nèi)存大小來減少其回收的次數(shù)甚至不回收,就會是卡的現(xiàn)象有明顯改善。

主要通過以下的幾個jvm參數(shù)來設(shè)置堆內(nèi)存的:

-Xmx512m最大總堆內(nèi)存,一般設(shè)置為物理內(nèi)存的1/4
-Xms512m初始總堆內(nèi)存,設(shè)置和最大堆內(nèi)存相同,就不需要根據(jù)當(dāng)前堆使用情況而調(diào)整堆的大小了
-Xmn192m年輕帶堆內(nèi)存,sun官方推薦為整個堆的3/8
堆內(nèi)存的組成總堆內(nèi)存 = 年輕帶堆內(nèi)存 + 年老帶堆內(nèi)存 + 持久帶堆內(nèi)存
年輕帶堆內(nèi)存對象剛創(chuàng)建出來時放在這里
年老帶堆內(nèi)存對象在被真正會回收之前會先放在這里
持久帶堆內(nèi)存class文件,元數(shù)據(jù)等放在這里
-XX:PermSize=128m持久帶堆的初始大小
-XX:MaxPermSize=128m持久帶堆的最大大小,eclipse默認(rèn)為256m。如果要編譯jdk這種,一定要把這個設(shè)的很大,因為它的類太多了。

我的配置(8g內(nèi)存的筆記本):

還有其它的相關(guān)參數(shù)可以看看下面的參考材料,很有啟發(fā)的:
-XX:+UseParallelGC 使用并發(fā)內(nèi)存回收
-XX:+DisableExplicitGC 禁用System.gc()的顯示內(nèi)存回收

eclipse相關(guān)設(shè)置來來減少卡的現(xiàn)象
1.關(guān)閉自動構(gòu)建。在啟用時,每保存一下,eclipse就會自動為我們構(gòu)建整個項目,這樣對于大的項目來說,每次保存時都會造成很卡。其實自動構(gòu)建完全沒有必要,只要保證在運(yùn)行前構(gòu)建一次就ok了,eclipse也會在運(yùn)行前自動為我們構(gòu)建,所以關(guān)閉是最明智的選擇。


2.關(guān)閉拼寫檢查設(shè)置



參考材料
jvm啟動參數(shù)大全: http://www.blogjava.net/midstr/archive/2008/09/21/230265.html
jvm結(jié)構(gòu)的一些知識(其中的堆的構(gòu)成): http://hllvm.group.iteye.com/group/wiki/2905-JVM
jvm堆知識: http://ruijf.iteye.com/blog/1028455
eclipse啟動調(diào)優(yōu): http://www.iteye.com/topic/756538
eclipse自帶的help contents(搜索"Running Eclipse"可以找到啟動相關(guān)的配置)


原文出自:http://blog.csdn.net/tomato8524/article/details/7428742

總結(jié)

以上是生活随笔為你收集整理的eclipse优化设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。