為什麼 App 開發者需要速度最快的機器+速度最快的手機

Why APP developers need the fastest device.

編譯的專案:TWI2012Q2 (不用管這是什麼專案,下面數據比較重要,這是我要提醒我自己,未來如果有新的機器,要重新編譯測試用的)

編譯的機器:

  1. Mac Mini Server 2010Mid,10.7.4 Lion,2.66GHz Intel Core 2 Duo,8GB 1067MHz,雙核心,硬碟7200rpm,Rebuild初次編譯約48秒,二次編譯時間約24秒,CPU 約150%,每個核心約100%滿載。
  2. 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%滿載。
  3. MBP 13″ 2012Mid,10.7.4 Lion, 2.5GHz Intel Core i5, 4GB 1666MHz DDR3,四核心, Rebuild初次編譯約32秒,二次編譯時間約13秒,CPU 約250%,每個核心約80%負擔。
  4. Macbook Air 13″ 2012Mid,Mac, OSX 10.8.1,1.8GHz Intel Core i5, 8GB RAM, 四核心,Rebuild約32秒,二次編譯約16秒,CPU Max 300%, 每核心約90%。
  5. (2012-11-13) 測試 Mac Mini 2012Late, OSX 10.8.2,  2.3GHz Intel Core i7, 4GB RAM , 四核心, Rebuild約23秒 ( CPU 40%),二次編譯時間約12秒。
  6. (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秒,很驚人,而且應該速度還可以更快一點)

應該借用MBP Retina 2012Mid那台機器編譯看看的,聽朋友說,他的Project編譯都是『秒殺』,秒殺耶~~我把怪打死都要半分鐘,他竟然「秒殺」。 認識的至少2個APP開發者,1位美術設計者,已經買了MBPR,其中一位,還是用訂製16GB RAM的規格。   2012-11-13 測試到MacMini 2012Mid, Intel Core i7的機器,沒想到二次編譯還要10秒以上。

弄了遠端編譯的機器,到 Amazon EC2網咖,租了幾個等級的機器比較一下,想確認是否編譯速度可以加速,OS : Windows 2008,編譯的時候記憶體逐步往上吃,編譯完後,記憶體就釋放。

  1. 等級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)
  2. 等級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)
  3. 等級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計算,還有開錯機器,照算錢,貴桑桑)

測試手機:

  1. 上傳到HTC Sensation XL 1.5GHz手機,約需15秒開始執行。 (有HTC Sense)
  2. 上傳到HTC Sensation XL,刷CustomROM,約7秒鐘。(移除HTC Sense,乾淨的ROM)
  3. 上傳到Samsung Galaxy S2 1.5Ghz手機,約5秒。
  4. (2012-11-12)Samsung Galaxy S3,Android 4.1.1,約 4.5秒。
  5. (2012-11-12)Nexus 7 16GB,Android 4.1.2,約8秒。
  6. (2012-11-12)  Kindle Fire HD (7.2.1_user_2040020),約5秒。 (竟然幹掉Nexus 7,可惜他沒有內建Google Maps,地圖相關的App是無法測試的)

再計算:

  1. 如果編譯時間每次節省10秒,上傳時間節省10秒,等於每改一次code節省約20秒。
  2. 一天debug+編譯+上傳測試,以100次計算,100×20=2000秒 / 60 = 33分鐘。
  3. x300次 = 300×20 = 6000 / 60 = 100分鐘 = 1.67小時。
  4. x500次 = 500×20 = 10000 / 60 =  167分鐘 =  2.78小時。

如果每次再快10秒,等於每次節省30秒,約5秒編譯,5秒上傳執行

  1. 每天編譯+上傳執行100次= 100×30 = 3000秒/60 = 50分鐘。
  2. 每天編譯+上傳執行300次= 300×30 = 9000秒/60 = 150分鐘 = 2.5小時。
  3. 每天編譯+上傳執行500次= 500×30 = 9000秒/60 = 250分鐘 = 4.167小時。

如果一天節省2小時,一個月下來約省下60小時,差不多是2.5天,一年約30天,等於多了一個月的時程,整個開發時程快了約1成的時間。 

這結果看起來非常驚人!!!!尤其需要進入大量debug、compiler、upload、test的恐怖輪迴當中,可以早一點脫離輪迴悟道,也就是早一點發佈上架賺錢。

結論:

為什麼開發者需要速度最快的機器,速度最快的手機,因為 Time is Money $$$  ,電腦、螢幕、手機等設備等於開發者的硬體武力軍火,軍火強大至少能省下不少時間與製造更多機會。 難怪世界強權都在搶誰是運算速度第一個頭銜。

所以買最新的手機、最快的電腦,是為了節省時間,享受生命。  (這真是一個換機的好藉口)

  1. 編譯的時候,CPU的需求很高,最好是單顆CPU,多核心,頻率越高越好,編譯很吃運算資源。(OK~雲端運算在這個時候,完全沒有幫助!!浪費錢而已~  XD  )
  2. 手機等級也很重要,因為安裝、執行、測試都需要不少時間。。
  3. iOS的開發環境編譯速度與流暢度,是比Android快的,尤其是iOS Smulator的運作速度,真的是無可比擬的快。
  4. 聽說做美術的朋友,機器效果都不錯,改天有機會借用個10分鐘測試看看,誰有i7,3.0GHz,以上的 Mac,借我跑一次阿XD,如果真的快,就可以列入「清單」了。
  5. 我曾經白目在Apple的展示間,直接在人家的展示機Compiler, Demo機的效率真的很差,不過那位店員真的很熱心,幫我開啟網路,又耐心的讓我下載IDE、SDK,最後編譯完成。當然,我沒買那個等級的機器。
  6. 這樣每年可以多出一個月的時間,好好陪老婆/女友,或者為公司省下一個月的成本。相信這樣應該可以讓太座認可,讓老闆買單。
  7. 老闆們,買最好的設備給RD用,省下一個月的薪水,機器都回本了吧!!
  8. Mac benchmarks 參考一下這個連結 http://browser.primatelabs.com/mac-benchmarks。 
  9. 看來 2012mid的 MBP、MBPR i7 2.7GHz是不錯的選擇(Turbo Boost 可達 3.7GHz),只是是訂製品,高達NT$9.8萬。(對於專業需求速的開發者,買一台10萬元的開發機,一年省回一個月的時間,這應該是不錯的投資)
  10.  預算足夠的,就直接上Mac Pro 2012Mid了,2個 3.06GHz 六核心 Intel Xeon (十二核心),高達NT$20萬元。

不過大概沒人相信,我第一台的Android開發機,是把Window Mobile 6的 HTC Tytn II 機器,刷ROM改成 Android 1.6的,速度真的是慢到跟模擬器差不多。(另一個觀點:能省則省阿~~XD )