Qualcomm ARM CPU与Intel x86 CPU性能比较

随着移动互联网时代的到来,Qualcomm(高通)、Texas Instruments(德州仪器)等基于ARM架构的CPU受到越来越多人的关注,而昔日王者的Intel x86架构由于功耗问题,在移动互联网似乎举步维艰。

Intel x86架构对比于ARM架构来说,性能强大,功耗较高是大家都知道的事实。那Intel x86架构的CPU性能究竟比ARM架构的强多少呢?下面我们对单个Core做一个简单的评测。

我的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环境中使用gcc编译Windows PC版本可运行程序

3、  在Linux交叉编译环境中使用arm-none-linux-gnueabi-gcc编译Android Native C版本可运行程序

4、  在Windows中运行测试程序

5、  在Android ARM Linux中运行测试程序

6、  总结运行时间

    一、下载Whetstone源码

可以在如下地址直接下载源码文件:

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

二、在MinGW环境中使用gcc编译Windows PC版本可运行程序

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

注意:使用的是-O0,不让gcc优化代码,保证对比测试的准确性

三、在Linux交叉编译环境中使用arm-none-linux-gnueabi-gcc编译Android Native C版本可运行程序

使用如下命令行,在Linux交叉编译环境中编译:arm-none-linux-gnueabi-gcc -static whetstone.c –O0 -o whetstone -lm

关于Linux交叉编译环境的建立,可见我的另一篇文章:《在Ubuntu10.04中建立ARM交叉编译环境》

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

    四、在MinGW中运行测试程序

对程序执行100000次循环,然后观察输出。

$ time ./whetstone.exe 100000

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

C Converted Double Precision Whetstones: 1250.0 MIPS

real    0m8.698s

user    0m0.000s

sys     0m0.015s

    五、在Android ARM Linux中运行测试程序

假设系统中已经配置并好adb(Android Debug Bridge)。将手机连接USB数据线,然后打开USB调试。在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交叉编译环境中编译出的whetstone程序拷贝到Android Linux中的/system文件夹中

3、  使用chmod 777 whetstone将程序设置为可执行

4、  使用time ./whetstone 100000执行程序,然后观察输出。

输出为:

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

C Converted Double Precision Whetstones: 67.6 MIPS

real    2m 28.88s

user    2m 28.25s

sys     0m 0.02s

六、总结运行时间

同样的程序,同样的循环次数,在Intel CPU上运行耗时8.698秒,而在Qualcomm CPU上运行耗时148.88秒。

可以得出结论,在浮点数运算上,Intel Pentium Dual-Core CPU E5300 2.60GHz比Qualcomm Snapdragon S2 MSM8255 1.0GHz强17倍。根据Intel的摩尔定律,每18个月,CPU性能将提升一倍,大体可以算得同等档次、同等时间产品Intel CPU要比Qualcomm CPU强大42倍。

测试可能有些不准,但也在一定程度上反应了两种不同类型CPU的性能差距,欢迎大家回帖说说自己ARM CPU、PC CPU的测试值。

--------------------------------------------------
这个比较很不科学。
主要是你运行的循环数太少。windows的那个user时间都忽略了,android的那个user时间和运行时间差不多。
加大循环才能体现差距。差距应该能接近1000倍,而不是42倍。
--------------------------------------------------
对比之下,Qualcomm MSM8255也就仅仅相当于一个 Intel Pentium III Mobile 750MHz 而已,Link:http://ark.intel.com/products/27410/Mobile-Intel-Pentium-III-Processor-750-MHz-256K-Cache-100-MHz-FSB

ARM CPU与Intel x86 CPU性能比较的更多相关文章

  1. Intel X86 CPU 系列的寻址方式

    Intel X86 CPU 系列的寻址方式 数据总线和地址总线要尽量相同,这个是一个地址就是一个指针.

  2. linux 内核源代码情景分析——Intel X86 CPU 系列的寻址方式

    当我们说一个CPU是"16位"或"32"位时,指的是处理器中"算数逻辑单元"(ALU)的宽度.数据总线通常与ALU具有相同的宽度.当Inte ...

  3. ARM与X86 CPU架构对比区别

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是  CISC要用最少的机器语言 ...

  4. ARM与x86 CPU架构对比

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是CISC要用最少的机器语言指令 ...

  5. ARM与X86 CPU架构区别

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指 ...

  6. [转帖]年经贴: ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器?

    ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器? https://www.cnbeta.com/articles/tech/899421.htm . 之前苹果的哥们说过 谁特别在意自己的软 ...

  7. Intel X86 32位CPU内存管理----《Linux内核源码情景分析》笔记(一)

    Intel X86 32位CPU内存管理 在X86系列中,8086和8088是16为处理器,而从80386开始为32为处理器,80286则是该系列从8088到80386,也就是16位处理器到32位处理 ...

  8. x86 cpu卷积网络的自动调谐

    x86 cpu卷积网络的自动调谐 这是一个关于如何为x86cpu调整卷积神经网络的文档. 本文不会在Windows或最新版本的macOS上运行.要让它运行,需要将主体包装在 if __name__ = ...

  9. Intel系列CPU的流水线技术的发展

    Intel系列CPU的流水线技术的发展 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件.对于PC而言,CPU的规格与 ...

随机推荐

  1. 一个PHP加密脚本,达到一定免杀效果

    <?php /**************************************** *author: L.N. *blog : [url]http://lanu.sinaapp.co ...

  2. PHP流程控制语句

    流程控制语句分为两种(自己学到的就有俩不过在网上看还有两种) 1:条件控制语句即(if, if else , elseif , switch case) if语句不多说了,基本上大家都知道.if el ...

  3. Jquery LigerUI框架学习(一)

    ligerUI框架是一个很丰富的后台框架模板,具有简洁大方的后台样式框架,还有很多灵活的控件,方便开发人员使用: 把昨天学习的成功拿出来供大家学习学习: 首先我们要去ligerUI官网下载Jquery ...

  4. yabeblog.me 关于Tomcat7部署 一台机器部署两个项目,一个用域名访问,一个用IP访问

    该内容来自 http://www.yabeBlog.me,转载请说明出处. 1.使用IP访问的项目放在Tomcat7 的webapps目录下面:比如:AAA 2.使用域名访问的项目放在Tomcat7的 ...

  5. ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

    测试库一条update语句报错:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction mysql> ...

  6. iOS7之定制View Controller切换效果

    在iOS5和iOS6前,View Controller的切换主要有4种: 1. Push/Pop,NavigationViewController常干的事儿 2. Tab,TabViewControl ...

  7. C#中使用SelectionStart属性指定输入框光标位置

    今天工作中遇到一个小BUG需要修改,需求为在文本框输入的过程中,如果数字是以0开头则自动消除0 如输入012,则显示12 很容易想到在textbox的text changed事件中判断,如果text是 ...

  8. OC内存管理 @property的增强

    涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了:当然@property依然强大,很好用: 1:内存管理相关参数: *:retain:  (如果是oc对象类型) ...

  9. 仅仅测试Word2016发布博客

    我来啦! 我走啦!     哈哈哈!   int main(int argc, char *argv[]) {     int mysocket; //建立一个socket后返回的值是int类型的. ...

  10. MyEclipse默认标签TODO,XXX,FIXME和自定义标签的使用

    MyEclipse默认标签TODO,XXX,FIXME和自定义标签的使用 MyEclipse中的一些特殊的注释技术包括:1.    // TODO —— 表示尚未完成的待办事项.2.    // XX ...