[轉錄]Re: [問卦] 為什麼HTC打不過IPHONE

看板PCSH91_305作者 (圖書館我來了)時間13年前 (2011/03/06 23:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 nfsong 信箱] 作者: Freak1033 (金が信念! XD) 看板: Gossiping 標題: Re: [問卦] 為什麼HTC打不過IPHONE 時間: Wed Feb 16 12:10:08 2011 我認為你講的一般而言還蠻正確的, 幫你補充幾點. ※ 引述《Kenneth1225 ()》之銘言: : google一下就有規格了 : HTC Desire | iPhone4 : 上市時間 2010/5 | 2010/6 : CPU Qualcomm QSD8250 (Snapdragon) | Apple A4 : CPU Frequency 1 GHz | 1 GHz : L1 cache 32 KB | 32 KB Instruction+32KB Data : L2 cache 256 KB | 640 KB : RAM data bus 32 bit | 64 bit : GPU Adreno 200 | PowerVR SGX 535 : RAM 576MB | 512 MB 這邊 Apple A4 列的時脈是跑在 iPad 上面的時候才是 1GHz, 在 iPhone4 上面它沒有出全力在跑. 理由當然是為了省電, 可以跑更低的電壓. 不過那個 640KB 的 L2 cache 是真的很恐怖, 不專業的鄉民只會看時脈, 不過現在的 CPU 真的很大一部份是靠 L2 在吃飯. 一個經典的例子是 Core 2 Duo E8xx, E7xx, Pentium DC 以及 Celeron DC, 三者骨子裡其實都是一樣的東西, 就是差在 L2 是 6MB, 3MB, 2MB, 1MB 而已, 就可以差到左手邊讓 AMD 連車尾燈都看不見, 右手邊被打左臉還要把右臉也賠上. : 使用Android的手機廠商的確是大雜燴 : 但iPhone也沒你講得如此封閉...當然原po講的對了部分 : iPhone4上 Apple自己來的是CPU OS Application.... : 剩下的全部硬體 : GPU DRAM ROM 陀螺儀 Flash 通訊晶片...等等 : 全部都是別人的 : 當然你要說iPhone4因為Apple自己搞CPU跟OS 所以可以針對OS為CPU做最佳化 : 我不敢說不對 我不是做OS也不是搞CPU architecture的 : 所以也不懂該怎麼做optimization XD : 不過iPhone 3GS的CPU是samsung的....我是不知道iPhone 3GS是否因此而不流暢 我不太同意 Apple 的 CPU 是自己做的這個說法... 正確的說法是 SoC 是自己做的. 一顆 SoC 通常是包含一或多個 proceessor core 與許多的周邊硬體組成, 這些周邊硬體可能包含了 USB, SPI, I2C, UART bus controller 等等, 也可能包含了 power management, DAC, ADC, capacitive sensing 這些元件. 然而我想各位都會同意, 影響效能最大的還是那顆 processor core, 這個各家廠商都一樣, 都是跟 ARM 買來的 Cortex-A8, 架構 ARMv7-A. 至於你說 optimization 喔, 基本上大多數的工程師根本不太 care, 在 Android 上面大多數都還是寫 Java, 除非真的有效能瓶頸, 不然不會想寫 native code. iOS 這邊則是交給 XCode 決定一切, 通常也不會有什麼好結果, 真的要拚效能還是得自己寫 NEON/VFP intrinsics. 基本是半斤八兩. : 小弟我對iPhone跟OS都不算熟.... : 但是我想iPhone的流暢性應該是來自於Apple在OS上的貢獻 : Apple從1976年就開始搞OS : 眾所皆知的MAC OS則是在1984年誕生 : 更多的歷史有興趣的請參閱reference : Android由Andy Rubin在2003年創立 : 於2005年被google買走..... : 其以linux kernel為基礎設計 : 光看年資就可以發現Apple在OS上的功力與歷史 : 我與原po持不同的看法 : 我認為iPhone的流暢 並不是因為Apple搞了封閉的系統 : 並不是其他廠商搞了一個大雜燴 所以bug一堆 : 而是因為Apple對於搞OS實在太強了..... : 今天你拿iOS給其他廠商去開發application : 縱使跑了別家的硬體 我相信以Apple的功力 : 一樣可以提供一個平穩的開發平台以供使用 : 別忘了OS的定義是什麼 : 恐龍本(第六版): an operation system is a program tha acts as an intermediary : between the user of a computer and the computer hardware. The purpose of an : operating system is to provide a environment in which a user can execute : programs in convenient and efficient manner : 給定了OS "上層"的程式開發者就不需要去管下面硬體是怎麼搞的 : 當然你說你的程式要動到driver....那你原則上就不算是個"上層"的程式開發者 : 以application的開發來看 "多半"不必動到那麼下層 : (我不想講死 的確是有在OS上的程式要開socket去網卡或是其他層拿資料 : 只是這些多半在paper裡出現 但是會動到這樣通常不會叫自己是application : 這已經是system design 手機有沒有這樣的application 我就不清楚了) : 而前面提到的流暢度 多半是來自於application給使用者的觀感 : 所以Android的慢真的來自於硬體的大雜燴嗎? : 我想只是因為現在Android還沒Apple他們搞得OS強罷了 : 另外一個重點則是原po也有提到的 : Apple一年搞一隻 可以傾全手機部門之力為其設計 : 其他各家大廠 EX:HTC 每年都玩機海戰術 : 想當然而品質便隨之下降 : reference: http://en.wikipedia.org/wiki/Mac_OS : http://www.kernelthread.com/publications/appleoshistory// : 小弟才疏學淺 如有寫錯或不合理還請海函 : 並給予指正........................... 這邊你有點過度簡化問題了, 操作不順, 也就是從操作到機器做出回應中間花的時間太長, 這中間有很多可能的原因, 從 1. capacitive sensor 偵測操作的時間 2. OS scheduler 給 UI thread 排程的時間 3. UI thread 本身回應操作的時間 三者皆有可能. 電容式觸控這個東西原理其實很簡單, 只要有基礎的電子學知識就可以用鉛筆跟膠布自己做一個, 我前陣子才自己在 mbed 上面做過. 困難的是偵測操作的演算法並不是非常容易, 你會到很多所有 sensor 都會遇到的問題: 1. noise, 原因有很多種, 從宇宙射線到天線效應到電路本身漏電都有可能 2. drift, 理由也很多, 比方說溫差, 手指造成的壓力形變, 材料氧化等等 要怎麼從 signal 跟 noise 中間只取出 signal 那就是訊號處裡的範疇, 好的演算法可以用很短的 filter, 當然反應就會快, 壞的演算法可能 filter 很長, 反應慢, 要不然就是可能一天到晚誤動作. 就這點而言, 我相信 Apple 一定選了市面上最好的 controller, 要不然也可能是自己做, 這就要請內部工程師報掛了. 另外 OS scheduler 這邊卡了一段時間也很有可能. 一個好的系統應該要讓前景的 UI thread 有額外的優先權, 而且當收到 user input 的時候要能夠馬上 preempt. 就這點而言, 我沒摸過 Android 底層, iOS 則是想摸都摸不到, 所以我不知道他們做得怎樣. 不過如果是 Windows 的話我就有八卦可以爆了, Windows 的設計是一個 thread 如果在等待輸入裝置, 如滑鼠鍵盤, 當事件一觸發的時候就會馬上被提升數個優先層級, 而且可以強制分到 2 個 tick 的 CPU 時間. 聽不懂技術的鄉民可以這麼理解, 就是回應使用者的執行緒會開無雙就對了. 最後 application 本身的問題也很有可能, Android 3.0 之前的版本 UI rendering 是沒有用 GPU 加速的: http://code.google.com/p/android/issues/detail?id=6914 所以不要說做特效了, 可能連個 menu 都來不及畫完. 這點是 iOS 大勝, 也是被大多數人認為最重要的因素. 另外 Android 還有一個 Android 的原罪, 就是 kernel 用的 GPL 授權導致很多廠商不想把 driver 做在 kernel 裡面, (因為會被強迫 open source) 所以他們想盡辦法做出 user space 的 driver framework. 有些東西還好, 像是 PowerVR 的 driver 至少還是 in-process, 很多 audio driver 甚至還是 inter process, 每次傳送資料還要進 kernel, 再 reschedule, 再回 kernel, 再回來, 效能會好才有鬼. --- : : 開放的Android機只要Bug除乾淨就已經是神境了 : : 平板電腦上更是慘不忍睹,Android這個設計在手機上的OS硬改去平板上,還不成熟 : : 如果不算亞馬遜的機,以能夠兼智慧電腦用途的平板來說的話 : : 市面上除了iPad 之外,那些裝 Android 的一窩蜂平板其實都還沒有成熟,Bug飛天 : : 所以現在 iPad 是在屠宰平板市場 : : 以上是背景,而消費者看到的結果,就是在實機demo上看到的 : : 「Apple好順,Android lag」 : : 這個體驗只有一句話,但代表了很多,因為這就像打電玩時FPS的差別決定了很大的爽度 : : 在北美擁有大市佔的RIM也是封閉系統的,藍莓的機型也不多,系統自己搞 : : 一樣是封閉系統路線,藍莓的體驗也是絕佳的,順暢,速度超快,幾乎不當機 : : ** 最終還是產品本身才是戰場的關鍵 ** : : 產品本身是兵力,是實力,是硬道理,行銷只是戰術 : : 養出1000萬大軍,戰術只要不太無腦都能輕鬆取勝 : : 當然當雙方兵力相等時,戰術就是關鍵 : : 但在現在的手機市場上,我不認為雙方兵力相等,Apple的硬實力勝太多了 : : 說到潮不潮,其實也有關係,但並不是和趕流行的潮男潮女文青有關 : : 那些在拿在現的,都已經算是消費曲線裡很後進的了 : : 所謂的潮流是在業界裡面,主導潮流的人是大型軟體開發商與數量龐大的中小型開發者 : : 因為開發者願意開發 = APP 數量多 = 創意無限 = 消費者選擇多 = 勝 : : 這個公式在一定條件內會成立,所以寫程式的那一票流行往哪裡倒,哪裡就會是關鍵 : : 也就是宅中之宅的宅聖Geek是決定市場方向的人 : : 所以看都不用看就知道 WM7 和 nokia 穩死的 : : 因為Geek看到微軟的第一句心裡話就是「幹你老師」 : : 鬼才會去幫微軟寫app 其實坦白說我也不覺得這篇文有什麼不對, 講的都還挺正確的, 就是最後一段我不喜歡. Geek 不完全都是 Linux 或 Mac OS fanboy, 也不一定仇恨微軟, 事實上身為一個專業宅男我就還蠻喜歡微軟的. 另外就是你理解錯 App 的生態了, 一流的 App, 我說的是會超過十萬下載的那種, 通常都已經不是個人靠興趣能做的了, 當你有了公司, 有員工要養, 有金主要負責, 誰還管你什麼個人喜好, 哪裡有錢賺哪裡就要做. 微軟現在面臨的大問題就是雞生蛋蛋生雞的問題, 如果沒有人要買他家手機, 就沒有人要幫他寫 App, 沒有 App 可以用, 消費者就更不想買. --- 順便打一下廣告, 這是我新開的小 blog, 最近剛好在寫戰 iPhone 跟 Android 的文章, 歡迎專業非專業鄉民來討論. wwwww http://blog.trchen.tw/2011/02/iphone-android.html -- 「ふ…ふざけるな!そんあ短い咒文で、魔法を起動できるわけないだろうが! お前わマウゼルの神に逆らう氣なのか?!傲慢な~」 「失禮致しました、誠實に全力でお相手致します。 第一戰術級‧軍用攻性魔法‧出よ、武雷神〈トール〉!」 〈スクラップド‧プリンセス〉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.222.101

02/16 12:11,
end
02/16 12:11

02/16 12:11,
02/16 12:11

02/16 12:12,
看到一半之後想法跟一樓一樣= =
02/16 12:12

02/16 12:12,
cpu自己做其實是貧果自己宣稱的 但很快被打臉
02/16 12:12

02/16 12:13,
02/16 12:13

02/16 12:14,
專業推!!!
02/16 12:14

02/16 12:15,
另外貧果總是能將硬體最佳化的說法不知哪來的
02/16 12:15

02/16 12:15,
推專業
02/16 12:15

02/16 12:16,
專業推
02/16 12:16

02/16 12:16,
xcode 出來的效能和java完全不同等級阿
02/16 12:16

02/16 12:17,
我也不知到你說xcode出來部會有什麼好結果的依據在哪?
02/16 12:17
這很難講, 我沒玩過 Dalvik (Android 用的 Java VM) 我不知道效能怎樣, 不過你可以多信任一下現在的 JIT 一些... 做得好的 JIT 不見得要比 native compiler 慢, 甚至可以更快! 其中理由是因為 JIT 可以看到一些 runtime 的資料來做最佳化, 比方說 virtual function 的提取它可以直接生成 native code. 這是 static compiler 做不到的. 相較之下, ObjC 的 object model... 我還真不覺得它能快到哪裡. (它是完全 dynamic binding)

02/16 12:18,
部落格盡量寫淺顯一點吧,對這很有興趣,但不是理工科。
02/16 12:18

02/16 12:19,
推這篇文章,講得很不錯
02/16 12:19

02/16 12:19,
用java有點多餘 要靠硬體拉效能
02/16 12:19

02/16 12:20,
可以ˇ直接給我結論嘛 買哪隻比較好
02/16 12:20
如果你不在乎未來, 只在乎現在哪一個平台比較好, 我會說 iPhone 是唯一選擇. (當然啦, 還是要看個人喜好跟應用) 但是如果還得考慮未來性, 你要考慮你買了手機絕對不會只買手機, 你還會買 Apps, 然後你就會被它綁定了, 因為你以後不會想為了換平台而放棄已買的 Apps. 所以有沒有押對寶很重要. (想當年我在 PHS 全盛的時候買了 J95, 結果一下兵敗如山倒... QQ) 從現在的局面看來, 鹿死誰手還未可知, Android 的確成長得很快, 而且 Android 3.0 開始支援硬體加速, 以後會移植回 smartphone 版本, 這點很值得期待. ※ 編輯: Freak1033 來自: 140.109.222.101 (02/16 12:28)

02/16 12:32,
WINDOWS真厲害 GOOGLE應該學一學
02/16 12:32

02/16 12:33,
這篇專業很多 GJ
02/16 12:33

02/16 12:34,
咦 原PO居然回我 大感謝XD
02/16 12:34

02/16 12:34,
原PO從頭到尾就是在講apple打死HTC的理由,當然推薦唉縫啦
02/16 12:34

02/16 12:36,
可是我當初純看畫面顯示我也選哀鳳啦 QWQ
02/16 12:36

02/16 12:39,
http://tinyurl.com/4prp7kc objc 效能沒有那麼不堪
02/16 12:39
好文章! 我會好好參考這些數字的. :p

02/16 12:39,
推本篇作者 k兄有點太思維簡化了
02/16 12:39
※ 編輯: Freak1033 來自: 140.109.222.101 (02/16 12:41)

02/16 12:41,
之前工作有針對android進行效能評估,相同硬體條條件下效能
02/16 12:41

02/16 12:42,
和Qt相比有明顯差異,當然測試不敢說十分全面但是數字上表現
02/16 12:42

02/16 12:42,
還挺明顯的 XD
02/16 12:42

02/16 12:43,
部落格那篇文章真威 我好後悔推薦別人ANDROID
02/16 12:43

02/16 12:46,
不過我相信隨硬體進步效能的劣勢會越來越不重要,長久看來
02/16 12:46

02/16 12:46,
android 還是有優勢
02/16 12:46

02/16 12:49,
這篇專業
02/16 12:49

02/16 12:52,
專業推 但還是end...
02/16 12:52

02/16 12:53,
超專業的 這系列挖出好多高手
02/16 12:53

02/16 12:53,
專業推
02/16 12:53

02/16 12:53,
專業推
02/16 12:53

02/16 12:58,
湍業推
02/16 12:58

02/16 13:07,
專業推
02/16 13:07

02/16 13:10,
效能最佳化是碰到效能上的瓶頸, 才會想到的問題
02/16 13:10

02/16 13:12,
Android Kernel授權是Apache Software License吧?
02/16 13:12

02/16 13:15,
Android使用"java改"的通用性優勢似乎沒有發揮出來
02/16 13:15

02/16 13:17,
Dalvik一開始沒有JIT,因為不需JIT就跑得很快。2.2後才
02/16 13:17

02/16 13:24,
這篇太專業了 雖然我看完了 囧
02/16 13:24

02/16 13:39,
這篇才2x推而已 可見是專業的好文 XDDDDD
02/16 13:39

02/16 14:02,
越專業的文通常推文數都很少...所以這種高專業的討論串
02/16 14:02

02/16 14:02,
通常看推文數中間的就好XDD
02/16 14:02

02/16 15:31,
強者給推~
02/16 15:31

02/16 17:50,
趕快推不然別人以為我看不懂
02/16 17:50

02/16 21:15,
推J95....那時候最強的手機 後來給大眾電信玩到倒
02/16 21:15

02/16 21:54,
linux kernel就是GPL授權,android用的是linux的kernel
02/16 21:54

02/16 22:57,
喜歡你的文章
02/16 22:57

02/16 23:21,
推專業文章
02/16 23:21

02/17 00:11,
推專業文章~ 推推推~
02/17 00:11

02/17 00:12,
大推
02/17 00:12

02/17 00:50,
總算出現一篇有點水準的文章了
02/17 00:50

02/17 20:58,
推這篇
02/17 20:58

02/18 00:11,
02/18 00:11
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.161.49.103
文章代碼(AID): #1DSwUctw (PCSH91_305)