易截截图软件、单文件、免安装、纯绿色、仅160KB

【C/C++相关知识】ATOM优化之GCC篇

作者: Yanqing Wang (Intel)
在ATOM程序优化利器中,笔者着重讲述了如何使用Intel Compiler对ATOM应用程序的优化,很多网友都比较感兴趣并想知道在GCC编译器下如何优化ATOM。借此,本文将重点于讨论如何使ATOM应用程序在GCC编译器下优化。
细心的网友可能发现GCC4.4.2手册没有讲述如何在ATOM平台优化,所以要通过GCC对ATOM平台优化,一定要从平台的特性出发。为了便于理解,先回顾一下ATOM平台的特点:
1. ATOM平台的指令是顺序执行的。
2. ATOM平台支持超线程技术,也就是我们通常所说的1C:2T。
3. ATOM平台支持SSE3指令集。
如果我们的GCC编译选项能够满足这基本的三大点,那么相应的应用程序性能也将会有很大提升。
讨论1:ATOM应用程序在ATOM计算机上编译。
对于本机编译而言,这种开发环境相对是比较容易优化的。我们只要关心两个基本点:
1. SSE3指令集。
2. 平台环境(32位还是64位?)。
a) 对于32位操作系统,ATOM应用程序的优化设置为:
-mtune=native -m32 -mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=sse -O3
说明:
-mtune 表示CPU类型,因为它是本地编译,所以选择native编译选项。
-m32 表示平台是32位OS。
-mmmx -msse -msse2 -msse3 -mssse3 表示它支持MMX和SSE1~3的全部指令,编译器更加代码情况优化。
-mfpmath=sse 表示使用SSE指令浮点库
-O3 表示是第3级别优化
b) 对于64位操作系统,ATOM应用程序的优化设置为:
-mtune=native -m64 -mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=sse -O3
和32位系统的唯一差别是:使用-m64替代了-m32,这个比较容易理解,不再鳌数了。
讨论2:ATOM应用程序在非ATOM计算机上编译。
相比与讨论1,这里的主要差别是编译的计算器不是ATOM平台,那么默认的本地优化必须手工设置。按照32位和64位的区别,下文还是分别展开。
a) 对于32位操作系统,ATOM应用程序的优化设置为:
-mtune=pentium -m32 -mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=sse -O3
说明
-mtune设置为pentium处理器,主要考虑它的指令是顺序执行。这个和ATOM的执行顺序十分吻合,对于程序的效率和节能方面将有很大帮助。
-m32 表示平台是32位OS。
-mmmx -msse -msse2 -msse3 -mssse3 表示它支持MMX和SSE1~3的全部指令,编译器更加代码情况优化。
-mfpmath=sse 表示使用SSE指令浮点库
-O3 表示是第3级别优化
b) 对于64位操作系统,ATOM应用程序的优化设置为:
-mtune=pentium -m64 -mmmx -msse -


相关文档:

【C\C++语言入门篇】 调试基础

通过前面两篇,相信大家已经基本了解了我们的研究思路。既然是研究,那么必须的研究工具就得熟练掌握了。这里我所指的研究工具就是VC,我所使用的VC版本是2005。本文也将根据VC2005进行探讨。可能很多朋友或者初学者还是使用的VC6.0。在这里本人不推荐使用VC6.0。原因很简单,VC6.0已经过时了,后面的版本比VC6.0更强大方便 ......

ANSI C读书笔记系列之字符集篇 第四章 字节序

"endian"这个词出自<<格列佛游记>>,小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开.我们一般将endian翻译成"字节序",将big endian和little endian称作"大端"和"小端".
在计算机科学领域中,字节序是指存放多字节数据的字节的顺序,典型的情况是整数在内存中的存放方式和 ......

C multi line macro: do/while(0) vs scope block

http://docs.google.com/View?docid=ajbgz6fp3pjh_2dwwwwt#_38239340844832237
It is not about optimization.
The whole idea of using 'do/while' version
is to make a macro which will
expand into a regular statement, not into a
compound statement. This is
done in order to make the use of function-s ......

GNU C的一大特色就是__attribute__机制

GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)
和类型属性(Type Attribute)。
__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。
__at ......

C/C++中回调函数初探

对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。
  什么是回调函数?
  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号