<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM CPU與Intel x86 CPU性能比較

          ARM CPU與Intel x86 CPU性能比較

          作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          隨著移動互聯(lián)網(wǎng)時代的到來,Qualcomm(高通)、Texas Instruments(德州儀器)等基于ARM架構(gòu)的CPU受到越來越多人的關(guān)注,而昔日王者的Intel x86架構(gòu)由于功耗問題,在移動互聯(lián)網(wǎng)似乎舉步維艱。

          Intel x86架構(gòu)對比于ARM架構(gòu)來說,性能強大,功耗較高是大家都知道的事實。那Intel x86架構(gòu)的CPU性能究竟比ARM架構(gòu)的強多少呢?下面我們對單個Core做一個簡單的評測。

          本文引用地址:http://www.ex-cimer.com/article/201611/317551.htm

          我的PC機CPU:Intel Pentium Dual-Core CPU E5300 2.60GHz(Launched 2008Q1 x86)

          我手機的CPU:Qualcomm Snapdragon S2 MSM8255 1.0GHz(Launched 2010Q2 ARMv7)

          從上述說明可見,Intel CPU比Qualcomm CPU早兩年推出。

          我們采用Whetstone benchmark(Whetstone: floating-point arithmetic performance)來測試CPU的性能。大體步驟如下:

          1、下載Whetstone源碼

          2、在MinGW環(huán)境中使用gcc編譯Windows PC版本可運行程序

          3、在Linux交叉編譯環(huán)境中使用arm-none-linux-gnueabi-gcc編譯Android Native C版本可運行程序

          4、在Windows中運行測試程序

          5、在Android ARM Linux中運行測試程序

          6、總結(jié)運行時間

          一、下載Whetstone源碼

          可以在如下地址直接下載源碼文件:

          http://www.netlib.org/benchmark/whetstone.c

          二、在MinGW環(huán)境中使用gcc編譯Windows PC版本可運行程序

          使用如下命令行,在MinGW中編譯:gcc -static whetstone.c –O0 -o whetstone -lm

          注意:使用的是-O0,不讓gcc優(yōu)化代碼,保證對比測試的準(zhǔn)確性

          三、在Linux交叉編譯環(huán)境中使用arm-none-linux-gnueabi-gcc編譯Android Native C版本可運行程序

          使用如下命令行,在Linux交叉編譯環(huán)境中編譯:arm-none-linux-gnueabi-gcc -static whetstone.c –O0 -o whetstone -lm

          關(guān)于Linux交叉編譯環(huán)境的建立,可見我的另一篇文章:《在Ubuntu10.04中建立ARM交叉編譯環(huán)境》

          http://blog.csdn.net/xt_xiaotian/article/details/6836739

          四、在MinGW中運行測試程序

          對程序執(zhí)行100次循環(huán),然后觀察輸出。

          $ time ./whetstone.exe 100

          Loops: 100, Iterations: 1, Duration: 8 sec.

          C Converted Double Precision Whetstones: 1250.0 MIPS

          real0m8.698s

          user0m0.s

          sys0m0.015s

          五、在Android ARM Linux中運行測試程序

          假設(shè)系統(tǒng)中已經(jīng)配置并好adb(Android Debug Bridge)。將手機連接USB數(shù)據(jù)線,然后打開USB調(diào)試。在cmd窗口中輸入adb shell便可以進入Android adb shell了。然后進行如下配置:

          1、使用mount –o remount,rw /system將/system目錄掛接為可寫入。Ctrl + C跳出Android adb shell,回到剛才的cmd窗口

          2、使用adb push C:whetstone /system,將在Linux交叉編譯環(huán)境中編譯出的whetstone程序拷貝到Android Linux中的/system文件夾中

          3、使用chmod whetstone將程序設(shè)置為可執(zhí)行

          4、使用time ./whetstone 100執(zhí)行程序,然后觀察輸出。

          輸出為:

          Loops: 100, Iterations: 1, Duration: 148 sec.

          C Converted Double Precision Whetstones: 67.6 MIPS

          real2m 28.88s

          user2m 28.25s

          sys0m 0.02s

          六、總結(jié)運行時間

          同樣的程序,同樣的循環(huán)次數(shù),在Intel CPU上運行耗時8.698秒,而在Qualcomm CPU上運行耗時148.88秒。

          可以得出結(jié)論,在浮點數(shù)運算上,Intel Pentium Dual-Core CPU E5300 2.60GHz比Qualcomm Snapdragon S2 MSM8255 1.0GHz強17倍。根據(jù)Intel的摩爾定律,每18個月,CPU性能將提升一倍,大體可以算得同等檔次、同等時間產(chǎn)品Intel CPU要比Qualcomm CPU強大42倍。

          測試可能有些不準(zhǔn),但也在一定程度上反應(yīng)了兩種不同類型CPU的性能差距,歡迎大家回帖說說自己ARM CPU、PC CPU的測試值。

          --
          這個比較很不科學(xué)。
          主要是你運行的循環(huán)數(shù)太少。windows的那個user時間都忽略了,android的那個user時間和運行時間差不多。
          加大循環(huán)才能體現(xiàn)差距。差距應(yīng)該能接近1倍,而不是42倍。
          --
          對比之下,Qualcomm MSM8255也就僅僅相當(dāng)于一個 Intel Pentium III Mobile 750MHz 而已,Link:http://ark.intel.com/products/27410/Mobile-Intel-Pentium-III-Processor-750-MHz-256K-Cache-100-MHz-FSB



          關(guān)鍵詞: ARMCPUIntelx8

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();