最近身邊很多朋友跟小編反映Eclipse的啟動實在太慢了。于是在好奇心的驅動下,小編前日下載了Eclipse嘗試一番,不得不說Eclipse的啟動猶如龜速,在上網手收集提高Eclipse啟動速度的文章時,發現文章質量良莠不齊,小編便自己動手整理出了一篇:通過七個優化技巧,讓Eclipse在十秒內啟動。
可能還有寫朋友對Eclipse是什么還不太清楚,這里先進行簡單的介紹。eclipse 是一種IDE, 所謂IDE=Integrated Development Environment 也就是所謂的集成開發環境,說白了就是用來開發Java程序的軟件工具。
值得一提的是:這篇文章的每個技巧針對Windows、Linux和MacOS用戶都有細致地解說。在使用所有優化技巧之后,Eclipse一般都能在10秒內啟動,并且同之前相比運行得更加流暢。
提示:假設你已安裝裝固態硬盤,并且其至少8Gb的內存。如果沒有的話,那在這七個技巧的運作之下,所帶來的性能提升可能不大。
通常,新版本的JDK和Eclipse都會有性能上的優化。請確保你使用的是64位Eclipse并且使用了Oracle的JDK。對于網絡開發,需要使用Eclipse for Java EE而不是Eclipse for Java。
Oracle JDK : http://www.oracle.com/technetwork/java/javase/downloads
Eclipse : https://eclipse.org/downloads/
將Eclipse和workspace放在固態硬盤上。啟動Eclipse吧。
小編自己還關閉了自動提示,這樣在輸入代碼時不會拖累自己。替代方案是使用Ctrl+Space在需要的使用手動提示。可以通過下面的配置來完成:(譯者注:Ctrl+Space?中國人不會答應的)。
內存盤是將計算機內存的作為虛擬磁盤或硬盤使用。用來加速位于其中的軟件的IO性能。內存中創建的RAM盤就像是計算機上的一塊硬盤。由于這些內存當作硬盤使用,所以其他程序就不能使用這些內存空間。我們只是將JDK放到那里,300MB就足夠了。
警告:不要將任何內容永久性的放到內存盤中,每次重啟時,里面的內容都會消失并重新創建。
對于Linux用戶:
這個鏈接中有詳細的描述。
對于Mac用戶:
使用diskutil工具創建內存盤
將其中的x、y、z替換為你的JDK版本:
(注意:diskutil期望的參數是512字節扇區的整數倍:對于300MB,應該是300 * 1024 ^ 2 / 512=614400)
2. 保存腳本,將其改為可執行模式:
運行ramdisk.sh將創建內存盤:
現在用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版本號:
運行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設置(詳見下一節)。
在Eclipse的優化中,這是最令人困惑的地方。網上有海量的文章介紹不同的配置方案。我只是介紹我自己的配置方案。
找到你的eclipse.ini文件:
明白接下來的工作的含義……
eclipse.ini中有兩種類型的屬性:與Eclipse應用相關的屬性;與JVM相關的屬性。這些選項具體取決于JDK和Eclipse的版本。下面的是我在網上找到的最新的列表。
要理解這些屬性,首先要了解Oracle JVM的內存布局。一般來說,JVM內存分成幾個內存池,對象根據不同存在時間位于不同的內存池中。
如果你對此感興趣,Oracle含有一篇很不錯的關于配置垃圾收集的文章,其中詳細介紹了所有這些空間的用途。
在eclipse.ini中,可以控制每個內存池的大小。下面的配置是針對我的16G內存設定的,但也可用于8G的內存。
使用位于RAM Disk中的JDK(使用在步驟三中的版本號):
禁用字節碼驗證(有風險)
這是跳過了class文件的驗證(class文件的驗證的信息參見這里),意味著JVM不會檢測使用的class文件。如果使用的class文件被修改過,會有安全風險。自己承擔風險(我僅僅是玩的時候用,不會在工作中啟用這個選項)。
打開編譯器性能優化
增加永生代空間(分配新對象的地方)(譯者注:在JDK 8中,取消了永生代)
增加最小最大堆的空間(含有新生代和年老代)
為新生代增加堆的大小
為每個線程設置棧大小
調整垃圾收集
最后,這里列出其他可能在網上看到的選項。就我個人而言,這些選項都沒有加速效果,所以僅僅是用來參考。讀者可以在網上找到相應的文檔,來了解并使用對應的選項:
最后,移除所有重復的選項,包括launcher.XXMaxPermSize,因為啟用了XX:MaxPermSize選項后,這個選項就沒用了。
技巧五:關閉殺毒軟件
如果有殺毒軟件,要確保這些軟件不會檢查代碼文件夾。將JDK、Eclipse、你的.m2/jar代碼庫和代碼文件夾添加到殺毒軟件的白名單。
技巧六:不要在Eclipse中運行SVN和GIT
這是個人偏好。有些人喜歡將Eclipse與團隊協同工具結合起來。就我個人而言,這樣速度很慢,我寧愿Eclipse專注于開發工作,而不是同時做許多事。我還非常喜歡SVN/GIT命令行。不管怎么說,我把這些工具從Eclipse中移除,發現響應速度更快了。
技巧七:使用鍵盤
Eclipse的一個有點是其中含有大量快捷鍵。讀者可以自行設置相關快捷鍵。一般我會重新設置調試鍵,這樣就和Visual Studio & Chrome Dev Env的行為相同了。花點時間去學習快捷鍵。用的快捷鍵越多,使用Eclipse的體驗就越快。
這里不會深入介紹快捷鍵,讀者可以很容易的在網上找到相關資料。下面列出一些必備的快捷鍵:
以上就是今天的內容,這篇文章并沒有將Eclipse與其他IDE進行對比,因為在我看來Eclipse是非常強大且快速的Java代碼編輯工具。當然如果你有更加便利的技巧,歡迎留言。
對編程感興趣,想了解更多的編程知識,關注頭條號一起玩轉編程
更多編程資訊、干貨持續更新中~
windows下spark開發環境配置
特注:windows下開發spark不需要在本地安裝hadoop,但是需要winutils.exe、hadoop.dll等文件,前提是你已經安裝了eclipse、maven、jdk等軟件
spark支持jdk版本建議是1.8及以上,如果開發spark建議將jdk編譯版本設置為1.8
我選擇的spark是spark-1.4.0-bin-hadoop2.6.tgz,故以該版本為例
第一步:下載spark-1.4.0-bin-hadoop2.6.tgz到本地,并解壓在本地目錄
地址為:http://spark.apache.org/downloads.html
第二步:下載windows下hadoop工具包(分為32位和64位的),在本地新建一個hadoop目錄,必須有 bin目錄例如:D:\spark\hadoop-2.6.0\bin
然后將winutil等文件放在bin目錄下
地址:https://github.com/sdravida/hadoop2.6_Win_x64/tree/master/bin
第三步:配置hadoop和spark的環境變量:
HADOOP_HOME 例如:D:\spark\hadoop-2.6.0
SPARK_HOME
SPARK_CLASSPATH
path中加入spark和hadoop
至此,在cmd命令下輸入spark-shell 至此windows下配置ok了
搭建自己的spark maven項目hello world程序
對于已經安裝了eclipse環境的程序員來說,不用再單獨安裝saprk的開發環境,由于spark是基于scala語言的,所以如果要想看源代碼,需要安裝scala的eclipse插件
第一步:安裝scala的eclipse插件
地址:http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/site
第一步:創建自己的spark maven項目
勾選create a simple project
第二步:選則maven生成的包,這里一定要選這jar,因為spark程序一般是打包為jar包的
其他必填自己按需填
第三步:添加spark的jar包到剛才新建的maven項目中
找到集群安裝的spark安裝目錄,在lib目錄下會看到
將加到maven項目的build path下
第四步:pom中添加自己的spark,hadoop maven依賴
例如:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>1.2.0</version>
</dependency>
第五部:spark程序的入口是main函數,至此可以編寫自己的hello world并讓它跑起來和調試
public class SparkMain implements Serializable {
public static void main(String[] args) throws Exception {
//編寫自己的spark程序
System.out.println(“hello spark!”);
}
}
Now everything is ready for you to run your main Class. Enjoy!
--本篇由同事葛同學提供。