Android開發環境速度記
錄。編譯一個專案與執行執行所需耗費的時間。以二次編譯時間比較重要,因為不會每次都要做Rebuild (clean and build),平常coding, debug過程都是直接拿部分已經作過compile的東西,來做第二次之後的編譯,所以這個數字會更重要。
錄。編譯一個專案與執行執行所需耗費的時間。以二次編譯時間比較重要,因為不會每次都要做Rebuild (clean and build),平常coding, debug過程都是直接拿部分已經作過compile的東西,來做第二次之後的編譯,所以這個數字會更重要。
編譯的專案:TWI2012Q2 (不用管這是什麼專案,下面數據比較重要,這是我要提醒我自己,未來如果有新的機器,要重新編譯測試用的)
編譯的機器:
- Mac Mini Server 2010Mid,10.7.4 Lion,2.66GHz Intel Core 2 Duo,8GB 1067MHz,雙核心,硬碟7200rpm,Rebuild初次編譯約48秒,二次編譯時間約24秒,CPU 約150%,每個核心約100%滿載。
- Mac Mini Server 2010Mid,10.8.2 Lion,2.66GHz Intel Core 2 Duo,8GB 1067MHz,雙核心,Intel 330 SSD,Rebuild初次編譯約48秒,二次編譯時間約25秒,CPU 約150%,每個核心約100%滿載。
- MBP 13” 2012Mid,10.7.4 Lion, 2.5GHz Intel Core i5, 4GB 1666MHz DDR3,四核心, Rebuild初次編譯約32秒,二次編譯時間約13秒,CPU 約250%,每個核心約80%負擔。
- Macbook Air 13” 2012Mid,Mac, OSX 10.8.1,1.8GHz Intel Core i5, 8GB RAM, 四核心,Rebuild約32秒,二次編譯約16秒,CPU Max 300%, 每核心約90%。
- (2012-11-13) 測試 Mac Mini 2012Late, OSX 10.8.2, 2.3GHz Intel Core i7, 4GB RAM , 四核心, Rebuild約23秒 ( CPU 40%),二次編譯時間約12秒。
- (2012-12-04)測試 Mac Mini 2012Late, OSX 10.8.2, 2.3GHz Intel Core i7, 8GB RAM , 四核心, Rebuild約20秒 ( CPU 90%),二次編譯時間約10秒。 (之後最佳化後,Rebuild:14s, 2nd:6.9秒,很驚人,而且應該速度還可以更快一點)
弄了遠端編譯的機器,到 Amazon EC2網咖,租了幾個等級的機器比較一下,想確認是否編譯速度可以加速,OS : Windows 2008,編譯的時候記憶體逐步往上吃,編譯完後,記憶體就釋放。
- 等級c1.medium, 2Cores, AMD64, 1.7GB RAM, 5ECUs, I/O:Moderate, AMI:Windows_Server-2008-SP2-English-64Bit-Base-2012.07.11 ,Rebuild初次編譯約72秒,二次編譯時間約22秒,CPU 約50%~80%負擔。(Intel Xeon CPU E5506 2.13GHz 2.21Ghz)
- 等級m2.4xlage, 8Cores, AMD64, 68.4GB RAM, 26 ECUs, I/O: High, AMI:Windows_Server-2008-SP2-English-64Bit-Base-2012.07.11 , Rebuild初次編譯約50秒,二次編譯時間約11秒,CPU 約10%~20%負擔,,只有幾個Thread在跑。(Intel Xeon CPU E5550 2.67GHz 2.90Ghz)
- 等級cc2.8xlarge, 16Cores, 32個Thread, AMD64, 60.5GB RAM, 88 ECUs, I/O: Very High, AMI : AMI:Windows_Server-2008-R2_SP1-English-64Bit-Base_Cluster-2012.07.11, Rebuild初次編譯約 59秒,二次編譯時間約10秒,CPU 約0~100% 負擔,只有幾個Thread在跑 (Intel Xeon CPU E5-2670 0 2.60GHz 2.65Ghz)
(Amazon 的測試報告全部花了美金$6.96,都只開幾十分鐘,最少都以1hr計算,還有開錯機器,照算錢,貴桑桑)
測試手機:
- 上傳到HTC Sensation XL 1.5GHz手機,約需15秒開始執行。 (有HTC Sense)
- 上傳到HTC Sensation XL,刷CustomROM,約7秒鐘。(移除HTC Sense,乾淨的ROM)
- 上傳到Samsung Galaxy S2 1.5Ghz手機,約5秒。
- (2012-11-12)Samsung Galaxy S3,Android 4.1.1,約 4.5秒。
- (2012-11-12)Nexus 7 16GB,Android 4.1.2,約8秒。
- (2012-11-12) Kindle Fire HD (7.2.1_user_2040020),約5秒。 (竟然幹掉Nexus 7,可惜他沒有內建Google Maps,地圖相關的App是無法測試的)
再計算:
- 如果編譯時間每次節省10秒,上傳時間節省10秒,等於每改一次code節省約20秒。
- 一天debug+編譯+上傳測試,以100次計算,100x20=2000秒 / 60 = 33分鐘。
- x300次 = 300x20 = 6000 / 60 = 100分鐘 = 1.67小時。
- x500次 = 500x20 = 10000 / 60 = 167分鐘 = 2.78小時。
如果每次再快10秒,等於每次節省30秒,約5秒編譯,5秒上傳執行
- 每天編譯+上傳執行100次= 100x30 = 3000秒/60 = 50分鐘。
- 每天編譯+上傳執行300次= 300x30 = 9000秒/60 = 150分鐘 = 2.5小時。
- 每天編譯+上傳執行500次= 500x30 = 9000秒/60 = 250分鐘 = 4.167小時。
如果一天節省2小時,一個月下來約省下60小時,差不多是2.5天,一年約30天,等於多了一個月的時程,整個開發時程快了約1成的時間。
這結果看起來非常驚人!!!!尤其需要進入大量debug、compiler、upload、test的恐怖輪迴當中,可以早一點脫離輪迴悟道,也就是早一點發佈上架賺錢。
結論:
為什麼開發者需要速度最快的機器,速度最快的手機,因為 Time is Money $$$ ,電腦、螢幕、手機等設備等於開發者的硬體武力軍火,軍火強大至少能省下不少時間與製造更多機會。 難怪世界強權都在搶誰是運算速度第一個頭銜。
所以買最新的手機、最快的電腦,是為了節省時間,享受生命。 (這真是一個換機的好藉口)
- 編譯的時候,CPU的需求很高,最好是單顆CPU,多核心,頻率越高越好,編譯很吃運算資源。(OK~雲端運算在這個時候,完全沒有幫助!!浪費錢而已~ XD )
- 手機等級也很重要,因為安裝、執行、測試都需要不少時間。。
- iOS的開發環境編譯速度與流暢度,是比Android快的,尤其是iOS Smulator的運作速度,真的是無可比擬的快。
- 聽說做美術的朋友,機器效果都不錯,改天有機會借用個10分鐘測試看看,誰有i7,3.0GHz,以上的 Mac,借我跑一次阿XD,如果真的快,就可以列入「清單」了。
- 我曾經白目在Apple的展示間,直接在人家的展示機Compiler, Demo機的效率真的很差,不過那位店員真的很熱心,幫我開啟網路,又耐心的讓我下載IDE、SDK,最後編譯完成。當然,我沒買那個等級的機器。
- 這樣每年可以多出一個月的時間,好好陪老婆/女友,或者為公司省下一個月的成本。相信這樣應該可以讓太座認可,讓老闆買單。
- 老闆們,買最好的設備給RD用,省下一個月的薪水,機器都回本了吧!!
- Mac benchmarks 參考一下這個連結 http://browser.primatelabs.com/mac-benchmarks。
- 看來 2012mid的 MBP、MBPR i7 2.7GHz是不錯的選擇(Turbo Boost 可達 3.7GHz),只是是訂製品,高達NT$9.8萬。(對於專業需求速的開發者,買一台10萬元的開發機,一年省回一個月的時間,這應該是不錯的投資)
- 預算足夠的,就直接上Mac Pro 2012Mid了,2個 3.06GHz 六核心 Intel Xeon (十二核心),高達NT$20萬元。