※ 文章網址: https://www.ptt.cc/bbs/Foreign_Inv/M.1370101472.A.29B.html
[討論] IT之家:X86上的Android手機:效能與相容可否兼得?
看板 | Foreign_Inv |
---|---|
作者 | willrise (小王) |
時間 | 2013-06-01 23:44:27 |
留言 | 0則留言 (0推 0噓 0→) |
http://ppt.cc/kscn
原文為簡體字
圖表眾多
以下將簡體字轉為繁體字
出現圖表的地方
以 (圖表省略) 表示
X86上的Android手機:性能與兼容可否兼得?
2013-5-11 14:59:32
出處:愛搞機 作者:愛搞機
自從CES2012上Intel發佈了針對移動市場的Medfield平台以來,
市面上出現過一些基於X86的Android手機。
它們甚至能在部分測試中實現單核戰雙核,
雙核戰四核,
那X86手機實際應用情況又真的是這麼理想嗎?
(圖表省略)
大部分Android應用都使用基於Dalvik Java代碼開發。
理論上,由於Dalvik代碼在系統的虛擬機中執行,
在x86的ATOM平台上不會有性能損失。
但由於虛擬機執行效率的有限,
對於一些高性能追求的應用,
谷歌允許開發者使用原生的C語言代碼。
而原生代碼是針對硬體平台編譯,
x86,ARM或是MIPS都有其相應的二進制文件。
通常來說,
針對ARM平台編譯的二進制代碼,
x86的處理器是無法直接運行的。
而主流的安卓產品均採用ARM處理器,
儘管很早之前,
Google的Android NDK就引入了x86編譯的選項,
但至今還是有相當一部分應用只針對ARM平台進行了編譯,
這就造成了x86安卓平台兼容性問題。
為瞭解決這一問題,
Intel在推出Android手機系統的ATOM平台之初,
就引入了「二進制轉換」(Binary Translation)這一功能,
來解決x86無法直接運行ARM庫的問題。
針對ARM編譯的二進制代碼會被ATOM處理器翻譯成x86執行的代碼,
從而運行包含為ARM編譯的原生代碼的應用。
(圖表省略)
通過這一功能,
x86 ATOM可以兼容市面上的絕大部分應用。
最新的採用Atom Z2580處理器的聯想K900已經宣傳自己能兼容市場上的TOP 20000應用。
在解決了兼容性問題後,
加上x86 Atom單核戰雙核、
雙核秒四核的彪悍性能(跑分),
x86似乎已毫無黑點,
橫掃市場指日可待。
但遺憾的是,
x86所宣傳的「兼容」與「性能」,
由於目前的生態環境的限制,
並不能兼得。
首先我們來簡單的看一下目前x86在Android的生態環境情況:
(圖表省略)
儘管TOP 20000的應用已經可以被兼容,
但個人統計了豌豆莢市場中最熱門的250個應用,
其中31%的應用沒有使用原生代碼。
剩下的69%含有原生代碼的應用中,
只有8%包含了x86庫,
剩下61%只有ARM原生庫。
也就是說,只有這8%的應用,
x86可以發揮自己的最佳性能,
而絕大部分,
都需要進行二進制轉換去進行兼容。
進一步,
在對性能需求較高的遊戲應用中,
原生代碼的使用更加廣泛。
(圖表省略)
通過統計當樂網中最熱遊戲TOP100,
我們發現,只有6%的遊戲不含原生庫,
勝於94%的遊戲都含有原生代碼。
在這其中,只有5%的遊戲含有x86原生庫,
剩餘的將近90%的遊戲,
都需要Atom處理器通過二進制轉換運行為ARM編譯的代碼。
(圖表省略)
當然,
出於對高性能的需求,
不少遊戲都包含了armv7a的運行庫。
儘管如此,
我手上的聯想K800(Atom Z2460)手機也可以通過二進制轉換進行執行。
但是經過測試,
包含Neon SIMD代碼的原生庫則無法執行。
說了這些,
我們明白,
相當一部分數量的應用都需要x86通過二進制轉換去兼容ARM代碼運行。
那麼,x86性能如此強悍,
在兼容執行ARM代碼時,
表現又如何呢?
這是長期以來為Intel和廠商所迴避的一個問題。
本次測試對象:
聯想K800手機,
算是首款在國內上市的x86手機。
處理器為Atom Z2460 1.6GHz,單核雙執行緒,
PowerVR SGX540 400MHz GPU。
(圖表省略)
首先我們清楚安兔兔,
這是x86最喜愛的跑分之一。
(圖表省略)
儘管Z2460只有單個核心,
但其得分依舊超過了大部分低主頻的雙核ARM A9,
相比高主頻的雙核A9/Krait毫不遜色。
而採用雙核四執行緒的Z2580更是能向著三萬分衝擊,
直指目前最高端的4+4核處理器。
但是,使用ARMv7庫後,
Z2460的表現不容樂觀,
總分一下子縮水了三分之二,
CPU得分更是跟單核A8差不多…
(圖表省略)
接下來的一系列測試也顯示了同樣的情況:
當使用x86原生庫時,
我們可以發現ATOM的單執行緒性能異常強悍,
特別是內存性能
(圖表省略)
而一旦採用兼容模式,
二進制轉換運行ARM庫,
性能就大大下降,
1.6GHz的Atom甚至只有1GHz Cortex-A7的水平都不到。
(圖表省略)
CoreMark也是同樣的情況,
性能損失相當可觀
作為兼容的代價,
性能損失只是一方面。
另一方面則是功耗的增加。
在本文的前半部分已經展示過,
目前熱門遊戲很少有x86原生庫,
為了方便對比測試,
我們選取了幽靈古堡(Epic Citadel)應用作為遊戲的代表。
Epic Citadel是一個基於虛幻引擎的demo,
畫面相當精美,光影特效也不錯
(圖表省略)
本次測試我們使用Intel GPA System Analyzer來記錄CPU的佔用率和手機工作的電流
(圖表省略)
使用Epic Citadel自帶的Benchmark場景進行測試,
結果如下:
(圖表省略)
使用x86原生庫(上)獲得了平均45.9FPS的成績,
而兼容ARM原生庫成績為31.2FPS,
大概有30%的差距。
同時分析發現,
整個過程中,
通過二進制轉換執行ARM庫和原生運行x86庫相比,
CPU佔用率和手機消耗電流上,
均有一定的增加。
(圖表省略)
相比之下,
兼容運行ARM庫相比原生執行x86代碼,
成績下降了30%,
平均的CPU佔用率從58.9%提高到了73.4%,
而平均電流從621mA提高到了717mA,
增加了約100mA,
相對來說CPU的功耗增加了約400mW,
還是相當可觀的。
當然CPU佔用率只是個側面反映,
由於測試時核心頻率調節默認為Ondemand,
儘管佔用率差異不大,
但二進制轉換執行ARM代碼時,
CPU運行在高主頻的時間更長,
從而導致功耗的增加。
最後總結如下,
可以看到二進制轉換相比原生執行x86代碼,
損失的性能還是很可觀的,
在性能訴求的應用中,
損失可高達50%以上。
在一些遊戲類應用中,
也會帶來約400mW的CPU功耗的增加。
(圖表省略)
總的來說,
x86的Android之路還很漫長,
儘管通過Intel和廠商的努力解決了兼容和性能問題,
但相對惡劣的生態環境使得性能和兼容不可兼得。
但遺憾的是,
Intel在今年表示 「手機業務不圖銷量 只玩高端」
「儘管市場上銷量最大的是千元手機,
但目前還不是英特爾的方向,
英特爾旨在做出現在世界上性能最高的手機」 ,
在一定程度上,
相對較低的佔有率還是難以引起開發者的注意和調動開發者的積極性,
在生態環境的改善上還是令人擔憂。
感想:
最近 Intel(INTC) 在移動裝置的新聞不少
即使大盤回檔
Intel 股價最近都沒有大跌
而 QUALCOMM Incorporated (QCOM) 這10幾天的股價
看來是下跌的趨勢
雖然 Intel 動作頻頻
不過QUALCOMM應該沒那麼容易就被打敗
這兩檔股票
似乎都可以留意買點
--
根據 engadget 網站報導 http://ppt.cc/wPBV
南韓民眾將可在2013年底或2014年初
享受到 4K 畫質的節目
--
◆ From: 118.165.20.165
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/Foreign_Inv/M.1370101472.A.29B.html
消息來源:
IT之家
X86上的Android手機:效能與相容可否兼得?
※ 文章網址: https://www.ptt.cc/bbs/Foreign_Inv/M.1370101472.A.29B.html