1. 程式人生 > >給Eclipse提速的7個技巧

給Eclipse提速的7個技巧

這篇文章只是關注如何讓Eclipse執行得更快。每個技巧都針對Windows、Linux和MacOS使用者詳細說明。在使用所有優化技巧之後,Eclipse應該能在10秒內啟動,並且比以前執行得更流暢。

這些技巧不僅僅縮短了Eclipse的啟動時間,其中大部分技巧還改善了使用者體驗。例如,更快地開啟類、從一處定義跳到另外一處、檢視javadoc等。但這些提速無法用時間精確的測量,所以對每條技巧帶來的提速效果也沒有特定的基準。

提示:假設你已經裝了固態硬碟,並且有至少8Gb的記憶體。如果沒有的話,帶來的效能提升可能不大。

技巧一:執行最新版本的JDK和Eclipse

通常,新版本的JDK和Eclipse都會有效能上的優化。請確保你使用的是64位Eclipse並且使用了Oracle的JDK。對於網路開發,需要使用Eclipse for Java EE而不是Eclipse for Java。

將Eclipse和workspace放在固態硬碟上。啟動Eclipse吧。

技巧二:調整Eclipse的Preferences

  • General > Startup and Shutdown : 移除所有在啟動時載入的外掛。
  • General > Editors > Text Editors > Spelling : 關閉拼寫檢查。
  • General > Validation > 勾選“Suspend all validator”。
  • Window > Customize Perspective > 移除所有用不到或不想用的內容(儘量使用快捷鍵),選單欄也是如此(你用過幾次選單欄的列印按鈕?)。
  • Install/Update > Automatic Updates > 取消勾選“Automatically find new updates and notify me”。
  • General > Appearance > 取消勾選“Enable Animations”。
  • 使用預設的主題。其他主題可能會降低執行速度。

我自己還關閉了自動提示,這樣在輸入程式碼時不會拖累我。替代方案是使用Ctrl+Space在需要的使用手動提示。可以通過下面的配置來完成:(譯者注:Ctrl+Space?中國人不會答應的)。

  • Java > Editor > Content Assist > 禁用“Enable Auto Activation”。在Advanced中移除所有不需要的內容(在Eclipse 4.2.2中沒找到)。

技巧3:將JDK放在記憶體盤(RAM Disk)上

記憶體盤是將計算機記憶體的作為虛擬磁碟或硬碟使用。用來加速位於其中的軟體的IO效能。記憶體中建立的RAM盤就像是計算機上的一塊硬碟。由於這些記憶體當作硬碟使用,所以其他程式就不能使用這些記憶體空間。我們只是將JDK放到那裡,300MB就足夠了。

警告:不要將任何內容永久性的放到記憶體盤中,每次重啟時,裡面的內容都會消失並重新建立。

對於Linux使用者:

這個連結中有詳細的描述。

對於Mac使用者:

使用diskutil工具建立記憶體盤

1. 建立一個新的指令碼,例如:~/tools/batch/ramdisk.sh
將其中的x、y、z替換為你的JDK版本:

#!/bin/bash
diskutil erasevolume HFS+ 'JDK RAMDISK' `hdiutil attach -nomount ram://614400`
cp -r /Library/Java/JavaVirtualMachines/jdk1.x.y_z.jdk /Volumes/JDKRAMDISK

(注意:diskutil期望的引數是512位元組扇區的整數倍:對於300MB,應該是300 * 1024 ^ 2 / 512 = 614400)

2. 儲存指令碼,將其改為可執行模式:

chmod 755 ~/tools/batch/ramdisk.sh

執行ramdisk.sh將建立記憶體盤:

$ ramdisk.sh
Started erase on disk4
Unmounting disk
Erasing
Initialized /dev/rdisk4 as a 300 MB case-insensitive HFS Plus volume
Mounting disk
Finished erase on disk4 JDKRAMDISK

現在用Finder應該能發現一個名為JDKRAMDISK的新裝置,其中含有的就是JDK。點選“彈出”按鈕可以移除RAM Disk並釋放相應的記憶體。

如果想使用這個技巧,那麼每次啟動Eclipse都需要有這個記憶體盤,不然會看到“A Java Runtime … must be available in order to run Eclipse”錯誤。可以配置系統,用Automator或一個unchtl守護程式確保每次啟動時會自動執行ramdisk.sh指令碼。

對於Windows使用者:

1. 下載並安裝名為imdisk的工具

2. 建立一個新的批處理檔案,如:C:/tools/batch/ramdisk.bat
將其中的x、y、z替換為你的JDK版本號:

@echo Placing JDK on Virtual Disk N:/
@echo off
sc config imdisk start= auto
net start imdisk
imdisk -a -t vm -s 300m -m n:
format n: /q /Y
call xcopy C:<path_jdk>jdk1.x.y_z N:jdk1.x.y_z /S /E /Y /Q
label n: JDK RAMDISK

執行ramdisk.bat後,將看到建立了一個名為“JDK RAMDISK”的新磁碟N,其中含有的就是JDK。

3. 確保檔案以管理員模式執行。右擊檔案,選擇“屬性——相容性——勾選“以管理員身份執行此程式”。

如果想使用這個技巧,那麼每次啟動Eclipse都需要有這個記憶體盤,不然會看到“A Java Runtime … must be available in order to run Eclipse”錯誤。可以配置系統,將ramdisk.bat指令碼放到啟動資料夾中。

為了讓技巧3能夠工作,需要在eclipse.ini檔案中新增-vm設定(詳見下一節)。

技巧4:調整你的eclipse.ini

在Eclipse的優化中,這是最令人困惑的地方。網上有海量的文章介紹不同的配置方案。我只是介紹我自己的配置方案。

找到你的eclipse.ini檔案:

  • Windows/Linux:位於$ECLIPSE_HOME(譯者注:$ECLIPSE_HOME是Eclipse的路徑,這裡假設Linux下也是自行安裝,而不是通過源安裝)
  • MacOS:位於$ECLIPSE_HOME/Eclipse.app/Contents/MacOS

明白接下來的工作的含義……

eclipse.ini中有兩種型別的屬性:與Eclipse應用相關的屬性;與JVM相關的屬性。這些選項具體取決於JDK和Eclipse的版本。下面的是我在網上找到的最新的列表

要理解這些屬性,首先要了解Oracle JVM的記憶體佈局。一般來說,JVM記憶體分成幾個記憶體池,物件根據不同存在時間位於不同的記憶體池中。

  • Eden空間(堆)是用於許多剛建立的物件。垃圾收集器每趟一般都是在這裡處理”新代的“物件,並移除所有不再使用的物件。
  • Survivor空間(堆)含有那些在Eden空間中GC兩三趟都沒有銷燬的物件。這些物件依然屬於新生代,但將其移動到更安全的地方,被收集的風險大大降低。垃圾收集器在這裡執行的頻率要低很多(GC根據以往的經驗來判斷這裡的物件都是經常使用的)。
  • Tenured空間(堆)含有在Survior空間存活相當一段時間的物件。
  • 永生代(非堆)含有JVM的元資料,如類屬性、方法、列舉等。由於這些資料可以在多個JVM間共享。所以永生代分只讀和讀寫兩個區域。
  • 程式碼快取(非堆)提供了用於編譯並存儲程式碼的記憶體空間。

如果你對此感興趣,Oracle含有一篇很不錯的關於配置垃圾收集的文章,其中詳細介紹了所有這些空間的用途。

在eclipse.ini中,可以控制每個記憶體池的大小。下面的配置是針對我的16G記憶體設定的,但也可用於8G的記憶體。

使用位於RAM Disk中的JDK(使用在步驟三中的版本號):

-vm /Volumes/JDKRAMDISK/jdk1.x.y_z.jdk/Contents/Home/
-vm N:/jdk1.x.y_z/bin

禁用位元組碼驗證(有風險)

這是跳過了class檔案的驗證(class檔案的驗證的資訊參見這裡),意味著JVM不會檢測使用的class檔案。如果使用的class檔案被修改過,會有安全風險。自己承擔風險(我僅僅是玩的時候用,不會在工作中啟用這個選項)。

開啟編譯器效能優化

-XX:+AggressiveOpts

增加永生代空間(分配新物件的地方)(譯者注:在JDK 8中,取消了永生代)

-XX:PermSize=512m
-XX:MaxPermSize=512m

增加最小最大堆的空間(含有新生代和年老代)

-Xms2048m
-Xmx2048m

為新生代增加堆的大小

-Xmn512m

為每個執行緒設定棧大小

-Xss2m

調整垃圾收集

-XX:+UseParallelOldGC

最後,這裡列出其他可能在網上看到的選項。就我個人而言,這些選項都沒有加速效果,所以僅僅是用來參考。讀者可以在網上找到相應的文件,來了解並使用對應的選項:

-XX:MaxGCPauseMillis=10
-XX:+UseG1GC
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UseFastAccessorMethods
-server

最後,移除所有重複的選項,包括launcher.XXMaxPermSize,因為啟用了XX:MaxPermSize選項後,這個選項就沒用了。

技巧5:關閉防毒軟體

如果有防毒軟體,要確保這些軟體不會檢查程式碼資料夾。將JDK、Eclipse、你的.m2/jar程式碼庫和程式碼資料夾新增到防毒軟體的白名單。

技巧6:不要在Eclipse中執行SVN和GIT

這是個人偏好。有些人喜歡將Eclipse與團隊協同工具結合起來。就我個人而言,這樣速度很慢,我寧願Eclipse專注於開發工作,而不是同時做許多事。我還非常喜歡SVN/GIT命令列。不管怎麼說,我把這些工具從Eclipse中移除,發現響應速度更快了。

技巧7:使用鍵盤

Eclipse的一個有點是其中含有大量快捷鍵。讀者可以自行設定相關快捷鍵。一般我會重新設定除錯鍵,這樣就和Visual Studio & Chrome Dev Env的行為相同了。花點時間去學習快捷鍵。用的快捷鍵越多,使用Eclipse的體驗就越快。

這裡不會深入介紹快捷鍵,讀者可以很容易的在網上找到相關資料。下面列出一些必備的快捷鍵:

Ctrl+Shift+R : jump to resource
Ctrl+Shift+T : jump to class
Ctrl+. : jump to next error
Ctrl+Shift+G : search for references
Ctrl+Shift+P : select matching bracket
Alt+Arrows : go forward / backwards
Ctrl+Space : autocomplete
Ctrl+Shift+F : format source
Ctrl+Shift+O : organize imports
Ctrl+D : delete line
……

差不多就是這些了。這裡沒有將Eclipse與其他IDE進行對比,我認為Eclipse是非常強大且快速的Java程式碼編輯工具。

如果你有其他技巧,請告訴我。

相關推薦

Eclipse提速7技巧

這篇文章只是關注如何讓Eclipse執行得更快。每個技巧都針對Windows、Linux和MacOS使用者詳細說明。在使用所有優化技巧之後,Eclipse應該能在10秒內啟動,並且比以前執行得更流暢。 這些技巧不僅僅縮短了Eclipse的啟動時間,其中大部分技巧還改善了使用者體驗。例如,更快地開啟類、從一處定

嵌入式系統常用的7技巧

淩陽教育 嵌入式系統 從規範完善的開發周期到嚴格執行和系統檢查,開發高可靠性嵌入式系統的技術有許多種。淩陽教育的小編就給大家說一說我所在各個平臺看到的7個比較好操作且可以長久使用的技巧,它們對於確保系統更加可靠地運行並捕獲異常行為大有幫助 技巧1——用已知值填充ROM 軟

克服拖延——7技巧讓你堅持前進

spa 垃圾 事情 工作 自己 清理 項目 技巧 目標 1.應付你的壓力。 很多人發現有壓力的生活是讓他們養成拖延習慣的主要原因。你可以通過健康的方式減壓從而解決這些問題。比如保持充足的睡眠,有足夠的時間來放松,當你需要時可以尋求別人幫助,這些都可以減輕你的壓力。你還可以

快速提高 MySQL 效能的 7 技巧

點選上方“CSDN大資料”,選擇“置頂公眾號” 關鍵時刻,第一時間送達! 作者丨Peter Zaitsev 翻譯丨Peter 譯者注: 隨著尺寸和負載的增長,MySQL的效能會趨於下降。記住這些訣竅,便可保持MySQL的流暢執行。

Excel裡面最實用的7技巧,全會人的很少!

Excel裡面最實用的7個技巧,全會人的很少!現代這個社會不管你從事哪個行業的工作,掌握好Excel是重要的一步,因為不管你幹什麼都需要用上Excel軟體, 那麼在Excel裡面有哪些最實用的小技巧呢?今天小編為大家盤點了7個我們職場工作中最常見的Excel技巧,全會的人很少! 1:

男女之間如何正確交往?這7技巧可以學習08:50

南樂縣 阿里巴巴集團董事局主席馬雲發表致股東的公開信表示:生意難做之時,正是阿里巴巴兌現“讓天下沒有難做的生意”的使命之時。,阿里巴巴(NYSE:BABA)今日釋出了截至2018年9月30日的2019財年第二季度財報(注:阿里巴巴財年與自然年不同步,從每年的4月1日開始,至第二年的3月31日結束)。 財報中

編寫更好的 Java 單元測試的 7 技巧

測試是開發的一個非常重要的方面,可以在很大程度上決定一個應用程式的命運。良好的測試可以在早期捕獲導致應用程式崩潰的問題,但較差的測試往往總是導致故障和停機。 雖然有三種主要型別的軟體測試:單元測試,功能測試和整合測試,但是在這篇博文中,我們將討論開發人員級單元測試。

提高MySQL效能的7技巧

譯者注: 隨著尺寸和負載的增長,MySQL的效能會趨於下降。記住這些訣竅,便可保持MySQL的流暢執行。 測量應用程式的方法之一是看效能。而效能的指標之一便是使用者體驗,通俗的說法就是“使用者是否需要等待更長的時間才能得到他們想要的

處理 JS中 undefined 的 7 技巧

摘要: JS的大部分報錯都是undefined... 作者:前端小智 原文:處理 JS中 undefined 的 7 個技巧

Eclipse在10秒內啟動的7優化提速技巧

大約一個月前,我發表了一篇部落格,其中介紹了對Eclipse的愛與恨。 有些人問我如何給Eclipse提速,這篇文章就來討論這個問題。順帶提一下,這篇文章不是比較IDE,所以不要說你討厭某個IDE而選擇另外一個。這篇文章只是關注如何讓Eclipse執行得更快。每個技巧都針對Windows、Linux和Mac

7技巧,解決eclipse卡頓問題

eclipse作為開發工具,每天都要使用,你肯定遇到過eclipse卡到想哭的時刻,嚴重影響開發效率啊!如果記憶體條不要錢,那就加記憶體吧!一個不夠加兩個!當然這都是玩笑話,如果不花錢也能解決問題,希望下面幾個小tips會有幫助!1、去掉自動構建專案,改為手動在eclipse

eclipse除錯java程式的九技巧

九個技巧: 邏輯結構 條件debug 異常斷點 單步過濾 跳到幀 Inspect expressions display 遠端debug     最早開始用eclipse的debug的時候,只會F5 F6 F7 F8,甚

ES6的7實用技巧

Hack #1 交換元素 利用陣列解構來實現值的互換 let a = 'world', b = 'hello' [a, b] = [b, a] console.log(a) // -> hello console.log(b) // -> world Hack #2 除錯 我們經常使用co

40大資料學習資源,個個是乾貨,最後7

  “資料是驅動商業向前發展的核心,更是人類社會的未來。” 儘管將馬雲的這句話斷章取義地拿出來說會顯得唐突,但這話所表達的意思卻顯而易見。今天給大家分享的這40個教程,送給對未來抱有遠見的樂觀主義者,涵蓋了大資料入門的大多基礎知識,從Java基礎到Scala,H

7測量Python指令碼和控制記憶體以及CPU使用率的技巧

當執行一個複雜的 Python 程式,它需要很長時間來執行。你或許想提升它的執行時間。但如何做? 首先,你需要工具來查明你程式碼的瓶頸,比如,那部分執行花費的時間長。用這個方法,你可以首先專注於提升這部分的速度。 而且,你也應該控制記憶體和 CPU 使用率,因為它可以為你指出的程式碼可以改進

大牛計算機方向學生的 7 建議

轉自:https://mp.weixin.qq.com/s/pUFNpZcIlFpJ0G2Hf8cikg   導讀:由於Joel Spolsky的雙重身份(昔日耶魯大學計算機系學長,今日Fog Creek軟體公司的CEO),所以聽聽他的建議,對於當今無數困擾於就業壓力的中國高校計算

Git 初學者的7建議

當我剛剛開始使用Git的版本控制時,我根本不確定我付出那麼多時間是不是會得到回報。Branch、Stage、Stash,這些Git名詞對我來說都非常陌生。 而今天的我已不能想象生活沒有Git會變成什麼樣。Git不僅提供了我非常需要的版本控制功能,還讓我變成一個更優秀

揭祕用小程式裂變公眾號漲粉10w的7案例

2017年1月9日,張小龍宣佈小程式上線,到今天,陸陸續續出現了拼多多、摩拜單車、語音紅包、頭腦王者、心理測試等爆款小程式。今天來和大家聊聊如何利用好這巨大的流量窪地來給公眾號漲粉。 一.帶你飛 「帶你飛」是一款訂機票的服務號,以全球免費機票為誘餌,通過“集碎片”

7理由,你推薦這款“秒殺Excel”的分析神器!

談到資料分析,自然離不開賴以使用的資料分析工具。 可用於資料分析的工具有很多,Python、R......還有各式各樣的專業工具。其中,Excel也是推薦的比較多的一種,尤其是剛入門時,能幫助快速建立資料分析思維的,很有用,何況Excel的基礎技能都是大家必會的了。 但是!最近小編上手了一B

7高階技巧幫助你釋放大量Mac OS X硬碟空間

硬碟空間用盡是一件很讓人頭疼的事情,尤其是MacBook Air等裝置上的固態硬碟可用的儲存空間很少。下面為大家介紹7個高階技巧來釋放大量的硬碟空間,當然這些高階技巧更改了系統功能和檔案,必須通過使用命令列實現,還需要使用rm或rf這樣的危險命令,所以Mac OS X新手