1、簡介javascript
eclipse可謂是Java開發界的神器,基本佔據了大部分的Java開發市場,並且其官方還對其餘語言提供支持,如C++,Ruby,JavaScript等等。爲何使用它?我想離不開下面的一些因素:一、開發界面簡潔、大方。二、豐富的插件支持。三、爲Java量身定作。四、及其人性化設計。
不得不說,eclipse是業界被廣爲承認的開發利器,因此,對於這麼一款軟件,咱們必需要學會它的使用及優化配置!php
2、經常使用快捷鍵(如下很是實用)java
eclipse提供了豐富的快捷操做,默認提供不少,咱們也能夠本身手動設置。但願讀者朋友們積極補充,不斷完善!jquery
文本編輯android
查找並替換 Ctrl+F 查找上一個 Ctrl+Shift+K 查找下一個 Ctrl+K 撤銷 Ctrl+Z 重作 Ctrl+Y 複製 Ctrl+C macos
快速修正 Ctrl1+1 恢復上一個選擇 Alt+Shift+↓ 內容輔助 Alt+/ 剪切 Ctrl+X 刪除 Delete 存盤 Ctrl+swindows
所有選中 Ctrl+A 上下文信息 Alt+? 全局 放大 Ctrl+= 全局 縮小 Ctrl+- 跳轉到類、變量的聲明 F3 瀏覽器
代碼格式化 Ctrl+Shift+f 導入未引用的包 Ctrl+Shift+M 關閉單個窗口 Ctrl+w 整理導入 Ctrl+Shift+o 添加導入 Ctrl+Shift+Mapp
註釋代碼 Ctrl+/ 取消註釋 Ctrl+/ 查找工程中的類 Ctrl+shift+T 組織導入 Ctrl+Shift+O eclipse
改寫切換 Insert 上滾行 Ctrl+↑ 下滾行 Ctrl+↓ J 切換窗口 Ctrl+f6(改成alt+tab更方便)
調試
斷點單步運行 F6 斷點進入方法體執行 F5 運行上次程序 F11 調試上次程序 Ctrl + F11
單步返回 F7 單步跳入選擇 Ctrl+F5 繼續 F8 使用過濾器單步執行 Shift+F5
顯示 Ctrl+D 運行上次啓動 Ctrl+F11 運行至行 Ctrl+R 添加/去除斷點 Ctrl+Shift+B
全局 執行 Ctrl+U 自動修正Ctrl+1
窗口
激活編輯器 F12 切換編輯器 Ctrl+Shift+W 上一個編輯器 Ctrl+Shift+F6 上一個視圖 Ctrl+Shift+F7
顯示系統菜單 Alt+- 顯示標尺上下文菜單 Ctrl+W 上一個透視圖 Ctrl+Shift+F8 下一個編輯器 Ctrl+F6
顯示視圖菜單 Ctrl+F10 下一個視圖 Ctrl+F7 下一個透視圖 Ctrl+F8
導航
打開結構 Ctrl+F3 打開類型 Ctrl+Shift+T 打開類型層次結構 F4 打開聲明 F3 打開外部JavaDoc Shift+F2
打開資源 Ctrl+Shift+R 後退歷史記錄 Alt+← 前進歷史記錄 Alt+→ 上一個 Ctrl+, 下一個 Ctrl+.
顯示大綱 Ctrl+O 轉至上一個成員 Ctrl+Shift+↑ 轉至上一個編輯位置 Ctrl+Q 在層次結構中打開類型 Ctrl+Shift+H
轉至行 Ctrl+L 轉至下一個成員 Ctrl+Shift+↓ 轉至匹配的括號 Ctrl+Shift+P
搜索
出如今文件中 Ctrl+Shift+U 打開搜索對話框 Ctrl+H 工做區中的聲明 Ctrl+G 工做區中的引用 Ctrl+Shift+G
所有保存 Ctrl+Shift+S 剪切 Ctrl+X 保存 Ctrl+S 打印 Ctrl+P 關閉 Ctrl+F4
所有關閉 Ctrl+Shift+F4 屬性 Alt+Enter 新建 Ctrl+N 項目所有構建 Ctrl+B
重構
撤銷重構 Alt+Shift+Z 抽取方法 Alt+Shift+M 抽取局部變量 Alt+Shift+L 內聯 Alt+Shift+I
移動 Alt+Shift+V 重命名 Alt+Shift+R 重作 Alt+Shift+Y
1. ctrl+shift+r:打開資源
2. ctrl+o:快速outline ---》這個是查看一個類中的用那些方法
3. ctrl+e:快速轉換編輯器
這組快捷鍵將幫助你在打開的編輯器之間瀏覽。使用ctrl+page down或ctrl+page up能夠瀏覽先後的選項卡,可是在不少文件打開的狀態下,ctrl+e會更加有效率。
4. ctrl+2,L:爲本地變量賦值
5. alt+shift+r:重命名
6. alt+shift+l 以及alt+shift+m:提取本地變量及方法
7. shift+enter及ctrl+shift+enter
Shift+enter在當前行之下建立一個空白行,與光標是否在行末無關。Ctrl+shift+enter則在當前行以前插入空白行。
8. Alt+方向鍵
這也是個節省時間的法寶。這個組合將當前行的內容往上或下移動。在try/catch部分,這個快捷方式尤爲好使。
9. ctrl+m
大顯示屏幕可以提升工做效率是你們都知道的。Ctrl+m是編輯器窗口最大化的快捷鍵。
文件
新建普通文本 Ctrl+N 新建普通的文本文檔
新建瀏覽器窗口 Ctrl+Shift+B 新建瀏覽器窗口
新建 HTML 頁 Ctrl+Shift+N 建立一個空白的 HTML 頁面
打開 Ctrl+O 打開一個現有的文檔
打開頭文件 Ctrl+Shift+H 打開 C/C++ 文件的頭文件
打印 Ctrl+P 打印當前文檔
保存 Ctrl+S 保存當前文檔
光標
移動光標到上一個製表符Shift+Tab 移動光標到上一個製表符的位置
左移一個字符 Left 光標向左移動一個字符
選區向左擴展一個字符 Shift+Left 將選定區域向左擴展一個字符
右移一個字符 Right 光標向右移動一個字符
選區向右擴展一個字符 Shift+Right 將選定區域向右擴展一個字符
文件結尾 Ctrl+End 移動到文檔結尾處
選區擴展到文檔結尾處 Ctrl+Shift+End 將選定區域擴展到文檔結尾處
文件開始 Ctrl+Home 移動到文檔開始處
選區擴展到文檔開始處 Ctrl+Shift+Home 將選定區域擴展到文檔開始處
下移 Down 光標下移一行
選區擴展到下一行 Shift+Down 將選定區域擴展到下一行
移動光標到行末 End 移動光標到當前行行末
選區擴展到當前行行末 Shift+End 將選定區域擴展到當前行行末
移動光標到行首 Home 移動光標到當前行行首
選區擴展到當前行行首 Shift+Home 將選定區域擴展到當前行行首
上移 Up 光標上移一行
選區擴展到上一行 Shift+Up 將選定區域擴展到上一行
光標下移一頁 Page Down 光標下移一頁
選區擴展到下一頁 Shift+Page Down 將選定區域擴展到下一頁
光標上移一頁 Page Up 光標上移一頁
選區擴展到上一頁 Shift+Page Up 將選定區域擴展到上一頁
向下滾動 Ctrl+Down 向下滾動一行
向上滾動 Ctrl+Up 向上滾動一行
光標移動到屏幕底部 Ctrl+Page Down 光標移動到當前屏幕底部
選區擴展到屏幕底部 Ctrl+Shift+Page Down 將選定區域擴展到當前屏幕底部
光標移動到屏幕頂部 Ctrl+Page Up 光標移動到當前屏幕頂部
選區擴展到屏幕頂部 Ctrl+Shift+Page Up 將選定區域擴展到當前屏幕頂部
移動到上一個單詞 Ctrl+Left 移動到上一個單詞
選區擴展到上一個單詞 Ctrl+Shift+Left 將選定區域擴展到上一個單詞
移動到下一個單詞 Ctrl+Right 移動到下一個單詞
選區擴展到下一個單詞 Ctrl+Shift+Right 將選定區域擴展到下一個單詞
編輯
刪除光標左側的單詞 Backspace 刪除光標左側的單詞
刪除光標左側的單詞 Backspace 刪除光標左側的單詞
刪除光標左側的單詞 Ctrl+Backspace 刪除光標左側的單詞
單詞首字母大寫 Ctrl+Shift+U 選定文本中單詞的首字母大寫
刪除 Delete 刪除選定內容
列選擇 Alt+C 開始列選擇
複製 Ctrl+C 複製選定內容到剪貼板
追加複製 Ctrl+Shift+C 複製選定文本並追加到剪貼板鍾
剪切 Ctrl+X 剪切選定內容到剪貼板
追加剪切 Ctrl+Shift+X 剪切選定文本並追加到剪貼板鍾
日期 Ctrl+D 插入當前日期
長型日期 Ctrl+Shift+D 插入當前日期(長型)
減少縮進 Ctrl+Shift+I 減少當前行或選定塊的縮進
刪除到行結束 Ctrl+Shift+Delete 刪除到當前行結束位置
刪除到單詞結束 Ctrl+Delete 刪除到當前單詞結束位置
刪除行 Alt+Shift+Delete 刪除當前行
刪除單詞 Alt+Delete 刪除當前單詞
建立字符副本 Ctrl+- 複製上一行的一個字符到當前行
建立當前行副本 Ctrl+J 建立當前行的副本
搜索剪輯文本 F2 使用對應的剪輯文本替換當前單詞
增大縮進 Ctrl+I 增大當前行或選定塊的縮進
插入模式 Insert 切換插入模式與覆蓋模式
反轉大小寫 Ctrl+K 反轉選定文本的大小寫
和並行 Ctrl+Shift+J 合併選定行
粘貼 Ctrl+V 插入剪貼板內容
重作 Ctrl+Y 重作上次未完成的操做
從新排列段落格式 Ctrl+Shift+R 按照自動換行列號從新排列段落格式
搜索文檔 Shift+F2 使用在當前文檔中找到的擴展單詞替換當前單詞
搜索全部打開的文件 Ctrl+F2 使用在全部打開的文件中找到的擴展單詞來替換當前單詞
開始/結束選擇 Alt+Shift+B 開始或結束選擇
全選 Ctrl+A 選擇整合文檔
開始/結束列選擇 Alt+Shift+E 開始或結束列選擇
選擇行 Ctrl+R 選擇當前行
選擇單詞 Ctrl+W 選擇當前單詞
分割行 Ctrl+Shift+K 分割選定行(必須啓用自動換行)
移除 HTML 標籤 Ctrl+Shift+P 移除當前文檔或選定文本的 HTML 標籤
時間 Ctrl+M 插入當前時間
時間(包含秒鐘) Ctrl+Shift+M 插入當前時間(包含秒鐘)
小寫 Ctrl+L 轉換選定的文本爲小寫
大寫 Ctrl+U 轉換選定的文本爲大寫
調換字符位置 Ctrl+T 調轉光標兩側字符的位置
撤消 Ctrl+Z 撤消上次操做
查看
在瀏覽器中查看 Ctrl+B 載入當前文檔到網頁瀏覽器
摺疊 Ctrl+Num - 摺疊當前代碼段
所有摺疊 Ctrl+Alt+Num - 摺疊全部縮進的文本
摺疊一層 Ctrl+Shift+Num - 摺疊整個代碼一層
目錄窗口 Alt+Shift+3 顯示或隱藏目錄窗口
展開 Ctrl+Num + 展開當前摺疊的行
所有展開 Ctrl+Alt+Num + 展開全部摺疊的文本
展開一層 Ctrl+Shift+Num + 展開整個代碼一層
轉到剪輯文本/目錄 F5 在剪輯文本/目錄窗口與文檔間切換焦點
使用代碼摺疊 Ctrl+Shift+F 啓用或禁用代碼摺疊功能
全屏模式 Alt+Shift+0 全屏模式開/關
轉到輸出窗口 Shift+F5 在輸出窗口與文檔間切換焦點
光標指示符 Alt+Shift+C 顯示或隱藏光標指示符
製表符與空格 Alt+Shift+I 顯示或隱藏製表符與空格
行號 Ctrl+Shift+L 顯示或隱藏當前文檔的行號
換行符 Alt+Shift+L 顯示或隱藏換行符
輸出窗口 Alt+Shift+2 顯示或隱藏輸出窗口
標尺 Alt+Shift+R 顯示或隱藏標尺
剪輯文本窗口 Alt+Shift+1 顯示或隱藏剪輯文本窗口
URL 高亮 Alt+Shift+U 高亮顯示 URL 與 e-mail 地址
搜索
查找 Alt+F3 查找指定文本
查找下一個 F3 查找下一個匹配文本
查找上一個 Shift+F3 查找上一個匹配的文本
替換 Ctrl+H 使用不一樣的文本替換指定的文本
配對括號 Ctrl+] 搜索一個匹配的括號
清除全部標記 Ctrl+Shift+F9 清除當前文檔中的全部標記
函數列表 Ctrl+F11 顯示函數列表
轉到行 Ctrl+G 轉到當前文檔的指定行
轉到列 Ctrl+Shift+G 轉到當前行中的指定列
轉到文件 F7 使用輸出窗口模式轉到一個文件
下一個標記 F4 轉到下一個標記位置
查找下一個單詞 Ctrl+F3 向下查找當前單詞或選定的文本
上一個標記 Shift+F4 轉到上一個標記位置
查找上一個單詞 Ctrl+Shift+F3 向上查找當前單詞或選定的文本
選擇括號 Ctrl+Shift+] 搜索一對匹配的括號並選擇該文本
切換標記 F9 設置或清除當前行的標記
轉到 URL F8 轉到高亮的 URL
文檔
列標記 Alt+Shift+M 顯示或隱藏列標記
自動換行 Ctrl+Shift+W 切換當前文檔的自動換行功能
HTML
瀏覽器
編輯源文件 Ctrl+E 編輯當前 HTML 頁面的源文件
剪輯文本
複製 Ctrl+Shift+Insert 複製選定的剪輯文本項目
目錄
工程
中止 Ctrl+Break 中止當前工具的操做
打開下一個 Ctrl+F5 打開下一個匹配的文件
打開上一個 Ctrl+Shift+F5 打開上一個匹配的文件
用戶工具 1 Ctrl+1 運行該用戶定義工具
用戶工具 10 Ctrl+0 運行該用戶定義工具
用戶工具 2 Ctrl+2 運行該用戶定義工具
用戶工具 3 Ctrl+3 運行該用戶定義工具
用戶工具 4 Ctrl+4 運行該用戶定義工具
用戶工具 5 Ctrl+5 運行該用戶定義工具
用戶工具 6 Ctrl+6 運行該用戶定義工具
用戶工具 7 Ctrl+7 運行該用戶定義工具
用戶工具 8 Ctrl+8 運行該用戶定義工具
用戶工具 9 Ctrl+9 運行該用戶定義工具
羣組 1 Ctrl+Shift+1 使用工具組 1
羣組 10 Ctrl+Shift+0 使用工具組 10
羣組 2 Ctrl+Shift+2 使用工具組 2
羣組 3 Ctrl+Shift+3 使用工具組 3
羣組 4 Ctrl+Shift+4 使用工具組 4
羣組 5 Ctrl+Shift+5 使用工具組 5
羣組 6 Ctrl+Shift+6 使用工具組 6
羣組 7 Ctrl+Shift+7 使用工具組 7
羣組 8 Ctrl+Shift+8 使用工具組 8
羣組 9 Ctrl+Shift+9 使用工具組 9
記錄擊鍵 Ctrl+Q 開始/中止擊鍵記錄
播放記錄 1 Alt+1 播放擊鍵記錄 1
播放記錄 10 Alt+0 播放擊鍵記錄 10
播放記錄 2 Alt+2 播放擊鍵記錄 2
播放記錄 3 Alt+3 播放擊鍵記錄 3
播放記錄 4 Alt+4 播放擊鍵記錄 4
播放記錄 5 Alt+5 播放擊鍵記錄 5
播放記錄 6 Alt+6 播放擊鍵記錄 6
播放記錄 7 Alt+7 播放擊鍵記錄 7
播放記錄 8 Alt+8 播放擊鍵記錄 8
播放記錄 9 Alt+9 播放擊鍵記錄 9
工具
下一窗格 F6 切換到下一個窗格
前一窗格 Shift+F6 切換回前一個窗格
上次訪問的窗口 F12 切換到上次訪問的文檔窗口
窗口列表 F11 顯示全部文檔窗口的列表
下一個窗口 Ctrl+Tab 切換到下一個文檔窗口
上一個窗口 Ctrl+Shift+Tab 切換到上一個文檔窗口
總在最前 Alt+A 使 EditPlus 窗口總在最前
窗口
幫助 Shift+F1 顯示按鈕、菜單或窗口所對應的幫助
幫助 F1 顯示對當前任務或命令的幫助
3、使用技巧
一、查看源碼
當咱們在一個方法上按F3或者按着ctrl+鼠標左鍵的時候,咱們會進行跟蹤,當咱們在一個類上進行上述操做的時候,會跟蹤到這個類的源碼,可是有時候,類的源碼不必定被引用進來,大多數時候咱們須要手動引入,舉個例子:咱們想看下String類的源碼,在String上按F3,若是已經引入源碼,會直接跳到源碼裏,若是沒有引入,則會出現:
點擊:Attach Source:
External File就是指一個源碼包,通常都是壓縮文件,External Folder是指文件夾,此處咱們點擊External File,由於JDK默認帶有源碼包,
這樣就將源碼加載進來了,是否是很爽啊!
二、使用JD插件
JD插件是用來查看Java源碼的,直接能夠將.class的文件打開,爲何咱們要使用JD插件,緣由很簡單,不是全部的Java類均可以找到源碼,像JDK或者SSH這些容易找到源碼,可是有些我的完成的程序,沒有提供源碼,只有.class的文件,若是咱們想要查看其源碼,就只能將.class文件進行反編譯,可是這有個問題就是反編譯出來的東西不必定是做者原來的代碼,因此,這樣查看源碼並不徹底準確,所以,若是能找到源碼,仍是儘可能讀源碼,找不到源碼的,再用反編譯工具。JDK自帶一個工具叫jad,本文將要介紹JD,JD分兩種,一個是桌面應用JD-GUI,咱們能夠單獨下載一個jd-gui.exe,免安裝的,直接將.class文件拖進去就能夠查看,一個是JD-ECLIPSE,做爲eclipse的插件,我以前用過myeclipse6.x和eclipse均可以直接安裝,可是高版本的myeclipse就不行,須要多點步驟。這個插件可讓你在沒有源碼的時候輕鬆查看Java類的源碼。只不過是通過反編譯的,和源碼有點不一樣,不過,因爲Java字節碼是很容易進行反編譯的,因此在沒有源碼的狀況下,用JD查看的源代碼仍是不錯的。
三、設置eclipse像virtual studio那麼方便
通常默認狀況下,Eclipse ,MyEclipse代碼裏面的代碼提示功能默認的通常 是點「.」,通常是有了點「.」,纔會有代碼提示。相信有過C#開發經驗的朋友,必定對VS感受很不錯,異常強大的提示功能讓你驚歎不已,其實eclipse也是能夠通過設置達到那個效果的,下面我就寫一下方法:
原理:「Auto Activation triggers for java」這個選項就是指觸發代碼提示的的選項,把「.」 改爲.abcdefghijklmnopqrstuvwxyz(,就是指遇到26個字母和.都會進行提示
一、 打開MyEclipse,而後「window」→「Preferences」
二、 選擇「java」,展開,「Editor」,選擇「Content Assist」。
三、選擇「Content Assist」,而後看到右邊,右邊的「Auto-Activation」下面的「Auto Activation triggers for java」這個選項。其實就是指觸發代碼提示的就是「.」這個符號.
四、 「Auto Activation triggers for java」這個選項,在「.」後加abc字母,方便後面的查找 修改。而後「apply」,點擊「OK」。
五、而後,「File」→「Export」,在彈出的窗口中選擇「Perferences」,點擊「下一步」。
六、選擇導出文件路徑,本人導出到桌面,輸入「conf」做爲文件名,點擊「保存」。
七、在桌面找到剛在保存的文件「conf.epf」,右鍵選擇「用記事本打開」。
八、能夠看到不少配置MyEclipse的信息
九、按「ctrl + F」快捷鍵,輸入「.abc」,點擊「查找下一個」。
十、 查找到「.abc」的配置信息.
十一、把「.abc」改爲「.abcdefghijklmnopqrstuvwxyz(,」,保存,關閉「conf.epf」。
十二、 回到MyEclipse界面,「File」→「Import」,在彈出的窗口中選擇「Perferences」,點擊 「下一步」,選擇剛在已經修改的「conf.epf」文件,點擊「打開」,點擊「Finish」。該步驟和上面 的導出步驟相似。
1三、 最後固然是進行代碼測試了。隨便新建一個工程,新建一個類。在代碼輸入switch,foreach等進行 測試。你當即會發現,果真出了提示,並且不管是敲哪一個字母都會有不少相關的提示了,很流暢,很方便。
四、查看項目下的全部文件
在默認的package explorer視圖下,是不能看見徹底的文件的,此時,這要切換下視圖就能夠了,切換到:Navigator就能夠了。
五、windows 7使用eclipse 高版本沒有Courier New 字體的解決辦法:
六、自定義快捷鍵
windows->preference->general->keys將裏面衝突的解決掉就好了。
7.eclipse實現拖拽功能
有一個叫VE(Virtual Editor)的插件安裝了便可。
八、將jar轉成exe文件
實現方式:Eclipse搭配JSmooth
(1)、先由Eclipse製做包含Manifest的JAR。
(2)、使用JSmooth將作好的JAR包裝成EXE。
JSmooth下載頁面:http://jsmooth.sourceforge.net/index.php
(3)、製做完成的exe文件,可在有裝置JRE的Windows上執行。
九、取消一些校驗
使用eclipse for javaee時,有時js文件上老是有個小紅叉,緣由是eclipse校驗形成的,每一個版本的eclipse校驗語法不同,因此有時在一個eclipse上不報錯,到了另外一個就報錯了,雖然不影響使用,可是總看着難受,用下面的方法能夠消除掉這個小紅叉。找到工程下的.project文件,用文本編輯器打開修改內容下,紅色字是注掉的:
<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>Spider</name> <comment></comment> <projects> </projects> <buildSpec> <!-- <buildCommand> <name>org.eclipse.wst.jsdt.core.javascriptValidator</name> <arguments> </arguments> </buildCommand> --> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.wst.common.project.facet.core.builder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.wst.validation.validationbuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> <nature>org.eclipse.wst.common.project.facet.core.nature</nature> <nature>org.eclipse.jdt.core.javanature</nature> <!-- <nature>org.eclipse.wst.jsdt.core.jsNature</nature> --> </natures> </projectDescription>
優化eclipse啓動
最近自從eclipse安裝了不少插件之後,啓動變得很是的慢,每次啓動,要消耗近半分鐘.這是不正常的. 今天決定好好優化一下.
我所使用的eclipse是Eclipse JAVA EE IDE for Web Developers 3.8版本. 跑在MAC OSX上, SSD+8G RAM, 這麼高性能的機器居然不能秒開eclipse, 這太說不過去了. 哦,還有我使用的JVM是Oracle的HotSpot,來自於JDK1.6 64bit.
首先,在優化前,讓咱們看看eclipse啓動時,JVM的各項性能指標. 由於我並不能準確的斷定eclipse的啓動完成時間, 因此我只能說大約事件.
首先啓動JDK自帶的JVM性能監視工具,在java\bin的目錄下,有一個jvisualvm,它是綁定在JDK中的visualvm.雙擊啓動 visualvm. 而後啓動eclipse, 在eclipse啓動完成之後,使用visualvm的查看eclipse的Visual GC狀況, 如圖:
上圖中說明在eclipse的啓動過程當中,JIT對字節碼進行了向機器碼的編譯,花去了22秒的時間.Class加載花去了10秒的時間,Minor GC發生了72次,花去0.64秒,Full GC發生了12次,僅僅花去了61毫秒.
咱們再去MBean選項查看,發現新生代使用ParNew垃圾收集器,而老年代使用的是CMS垃圾收集器.
總上狀況看出,因爲MAC的性能比較好,因此垃圾回收並無消耗太多的時間,而且CMS+ParNew自己就是並行垃圾回收,不會形成用戶程序太多的停頓. 時間主要消耗在了JIT的即時編譯和Class加載上了.
首先要優化的就是class加栽.由於eclipse這個工具是一個成熟的工具,通過了這麼多人的驗證,因此我充分信任eclipse的代碼,容許 eclipse的代碼在加載的時候,跳過字節碼驗證. 關閉字節碼驗證的方法是在vm的args中加入參數 -Xverify:none. 對於eclipse來講,找到eclipse.ini, 加入-Xverify:none. 讓咱們再重啓一下eclipse,看看class加載時間是否減少. 再次啓動,發現class加載事件縮小到7秒,比以前少了3秒.
而後優化的是JIT的時間. 在使用eclipse編寫程序時,主要是文本編輯,編譯和運行,JIT雖然能夠帶給咱們高性能,可是JIT在編譯機器碼的時候,卻要消耗不少的時間. eclipse對項目的編譯和運行自己就很慢,切運行時是啓動一個新的java進程,跟eclipse自己無關,因此,我能夠接受拋棄JIT編譯器,而只是用JVM解釋器執行字節碼所帶來的效率下降. 這樣能夠去除JIT編譯的時間. 作法以下,在eclipse.ini中加入vm的參數 -Xint, 意思是隻使用解釋器. 讓咱們來看看結果:
JVM編譯器時間變成了0, 一下減掉20秒. 可是,因爲缺乏了運行時的即時編譯優化方案,代碼的運行時間變長了, eclipse的總體啓動時間慢了更多,超過了30秒. 因而可知,JIT是多麼有用的一項技術.因此禁止JIT的嘗試失敗了.咱們把以前的參數-Xint去掉.
哦,對了,我還裝了不少的插件,尤爲是android開發插件.啓動的時候對插件的激活也會花去不少時間. 屏蔽插件激活的方法: Windows -> Preferences, 輸入 「startup」, 點擊 「Startup and Shutdown」, 把不須要的插件勾掉. 此外,還須要關掉沒必要要的validation,方法爲:Windows -> Preferences -> Validation. 只選你須要的.
作完以上工做,我發現eclipse啓動稍微快了一些. 掐着秒錶計算的花了大約15秒.
最後,再優化一下GC和堆棧吧.雖說,GC已經表現的很好了,都沒有超過1秒,可是GC的頻率如此高,說明JVM的內存的分配是不合理的.爲此,咱們須要從新對JVM內存進行劃分. 爲了對JVM的內存進行合理分配,咱們須要瞭解eclipse啓動過程當中,GC到底發生了什麼事情. 打開gc log的方法以下:
想eclipse.ini的vm參數中添加
-XX:+PrintGCDetails -Xloggc:/users/joey/Documents/gc.log
啓動eclipse,生成gc.log, 打開log,進行分析.
第一次Minor GC發現,新生代的大小約爲20M. 堆的大小約爲40M. 再接下來的GC中,新生代始終沒有擴容.這說明,新生代的大小合適.
0.720: [GC 0.720: [ParNew: 17024K->2112K(19136K), 0.0099529 secs] 17024K->2324K(38848K), 0.0100285 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
第一次發生Full GC時,發現老年代已經擴容到約93M,而永生代擴容到約128M
67.213: [Full GC (System) 67.213: [CMS: 57969K->57877K(93124K), 0.3563491 secs] 62179K->57877K(112260K), [CMS Perm : 80490K->80392K(128708K)], 0.3565176 secs] [Times: user=0.36 sys=0.00, real=0.36 secs]
而直到最後一次GC, 老年代佔用也沒超過125M,永生帶佔用也沒有超過125M. 但他們的佔用空間均超過了100M. 由此,咱們有理由規定一個初始堆大小. 最終,經過分析,我給eclipse.ini添加了以下幾個參數:
-server -Xverify:none -XX:PermSize=128m -XX:MaxPermSize=256m -Xms256m -Xmx512m -Xmn40m -Xss2m
-server是讓JVM以server模式運行,加劇JIT的優化做用,因爲eclipse是常常開着不關,在server模式下,JIT會隨着運行的時間,把字節碼更深入的變成成機器代碼.加快運行速度.
-Xverify:none, 跳過對字節碼的驗證.
PermSize永生帶設置爲128M,堆的初始大小設置爲256M,新生代站了40M. 每一個線程棧大小設爲2M.
在這種設置下,Full GC已經徹底消失,但仍是剩下了20次左右的Minor GC,大約花掉0.3秒, 這是能夠接受的. 若是爲了徹底消除GC而把新生代的空間設大,那也是一種內存的浪費. 重啓eclipse,啓動時間已經落在了15秒以內.如圖:
補充eclipse 使用ant編譯,console出現中文亂碼問題。
解決辦法:
打開菜單:Run--External Tool--External Tools...
打開ant配置,Common這個Tab 裏,ConsoleEncoding設置編碼爲UTF-8/GBK,搞定!
補充:eclipse以英文界面啓動
有時啓動了eclipse,可是是中文界面,想換成英文界面的話,很簡單,右鍵啓動圖標,出現以下畫面:
在目標的最後,空一格,加上-nl en_US,以下:
肯定便可。
在Eclipse裏面設置了java文件保存時自動格式化,
在java->Code Style->Formatter裏設置了自定義的格式化的樣式,這樣每次保存後都會自動格式化代碼.java->editor->Save Actions->Format Source Code 取消勾選,即取消了保存時自動格式化的功能。