ARM CPU与Intel x86 CPU性能比较
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性能比较的更多相关文章
- Intel X86 CPU 系列的寻址方式
Intel X86 CPU 系列的寻址方式 数据总线和地址总线要尽量相同,这个是一个地址就是一个指针.
- linux 内核源代码情景分析——Intel X86 CPU 系列的寻址方式
当我们说一个CPU是"16位"或"32"位时,指的是处理器中"算数逻辑单元"(ALU)的宽度.数据总线通常与ALU具有相同的宽度.当Inte ...
- ARM与X86 CPU架构对比区别
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言 ...
- ARM与x86 CPU架构对比
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是CISC要用最少的机器语言指令 ...
- ARM与X86 CPU架构区别
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指 ...
- [转帖]年经贴: ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器?
ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器? https://www.cnbeta.com/articles/tech/899421.htm . 之前苹果的哥们说过 谁特别在意自己的软 ...
- Intel X86 32位CPU内存管理----《Linux内核源码情景分析》笔记(一)
Intel X86 32位CPU内存管理 在X86系列中,8086和8088是16为处理器,而从80386开始为32为处理器,80286则是该系列从8088到80386,也就是16位处理器到32位处理 ...
- x86 cpu卷积网络的自动调谐
x86 cpu卷积网络的自动调谐 这是一个关于如何为x86cpu调整卷积神经网络的文档. 本文不会在Windows或最新版本的macOS上运行.要让它运行,需要将主体包装在 if __name__ = ...
- Intel系列CPU的流水线技术的发展
Intel系列CPU的流水线技术的发展 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件.对于PC而言,CPU的规格与 ...
随机推荐
- [转]bat中的特殊字符,以及需要在bat中当做字符如何处理
bat中的特殊字符,以及需要在bat中当做字符如何处理 批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @ \\隐藏命令的回显. ~ \\在for中表示使用增强的变量扩 ...
- 关于使用视图进行分页时出现当前记录集不支持书签的错误解决方法及原因(asp)
一般在使用视图进行查询时,视图中意般都关联了两个或者更多个表,一般在这种情况下才会使用视图,但是但我在使用视图来查询数据时没有问题,但是一旦在分页中使用到视图进行查询就会出现错误提示如下: ADODB ...
- RaddioButton控件
<GroupBox Margin="5"> <StackPanel> <RadioButton IsChecked="true"& ...
- Oracle物理的体系结构
体系结构图的学习: 老余服装店的故事 结构图: SQL查询语句 SGA 共享池shared pool 数据缓存区Buffer cache PGA 进程 SQL更新语句 SGA: 日志缓存区 日志文件 ...
- 从零开始学ios开发(六):IOS控件(3),Segmented Control、Switch
这次的学习还是基于上一个项目继续进行(你也可以新建一个项目)学习Segmented Control和Switch. Segmented Control Switch Segmented Control ...
- 解决VS2012新建MVC3等项目时,收到加载程序集“NuGet.VisualStudio.Interop…”的错误
vs2012来做一个mvc3的项目,哪知在创建ado数据模型时跳出这么一个东东 错 误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0 ...
- Java 8 VM GC Tuning Guide Charter3-4
第三章 Generations One strength of the Java SE platform is that it shields the developer from the compl ...
- 典型的js页面
var myurl; var mydata; var postype = "POST"; var getype = "GET"; var jsontype = ...
- android 开发:讯飞的离线命令识别器官方demo使用及demo下载
场景:使用本地构建语法,离线识别命令词. 修改文件AsrDemo.java mLocalGrammar 修改为你自己的语法 mAsr.setParameter(SpeechConstant.GRAM ...
- 16进制串hex与ASCII字符串相互转换
提供两个函数,方便十六进制串与ASCII 字符串之间的相互转换,使用函数需要注意的是返回的串是在堆上通过 calloc 分配的,所以,记得使用完返回值释放该块,并且将指向该块的指针 =NULL . c ...