Tuesday 31 March 2015

喂,你隻App好慢喎?

作為買家,有時唔係好明,點解部部Android機都話係四核、都係1.5GHz,點解有分別,點解唔好盡信所謂「高性價比」。其實SnapDragon 400 vs 800响跑深入運算嘅工作時,真係有一倍以上嘅分別。我最近寫嘅計算車資APP,响SnapDragon 400 1.4GHz上可以跑成分鐘,而SnapDragon 800 1.5GHz只係需要幾秒鐘。(所以如果要買,就買啲過氣旗艦機,後面還有解說另一個原因。)
跑得慢因為算式複雜,咁只要改吓運算方法,一分鐘真係可以變幾秒鐘,藥箱都變首飾箱,唔洗吓吓都要好似飛機場咁淨係識增強硬件。
之但係慢,仲有一個原因:Android。Android跑app用嘅Dalvik(Java VM)就肯肯定係慢嘅元兇。事關我將同一個「慢到喊」嘅algorithm隻字不漏咁直接移植去 iOS,然後放响台年事已高、舊到冇人要嘅 iPhone 3GS 上跑,結果係:幾秒鐘。幾秒鐘!乜你唔係應該跑到hang機咩?
即係2009年iPhone 3GS單核600MHz計得仲快過台2014年Sony Xperia T2 Ultra四核1.4 GHz。你四個核1400都唔夠人哋一個核600快,你慚唔慚愧呀?
不過呢件事仲未講完。當初個algorithm係咁差點解我唔知呢?因為我作為一個Developer,梗係用部快到曉飛嘅Nexus 5做開發,但佢真係快到「離地」,所以我完全冇experience過慢,當我死黨話「好慢喎」我完全冇idea佢講緊乜。所以話,離地嘅人又點會明白人間疾苦。
由此可見,只要啲app developers响開發app時為咗工作時快手、「落機快」、「試新機」,咁佢哋開發出嚟嘅APP就只有旗艦機先「頂得順」行得順。所以,小市民如果買Android機仲想慳多些少錢,唔揀SnapDragon 800揀咗SnapDragon 400,隨時得不償失。(千萬唔好信啲大行售貨員,因為佢哋嘅工作係售貨&售貨only)
『喂,你隻App好慢喎?』「慢?唔覺喎,好順丫,你睇吓」然後他從褲袋裡施施然拿出一部Nexus 6(或者iPhone 6+)出來。秒殺!
p.s. 為了証明我已經解決無速度唔夠快同跑得慢三個問題,我重寫之後搵咗一台2009年嘅LG單核600MHz嘅Android機,然後佢都係:幾秒鐘。