- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 1章
CPU与编译器概论
序 001
1.1 高速路与人行道
近年来,台式机的CPU 主频已达到2~3GHz ,就连iPhone 等智能手机
和便携式终端的CPU 主频率亦可达到0�5~ 1GHz 。
这些CPU ,有如在高速路上奔驰的跑车一样。试想一下,如果高速路
上遍布着红绿灯和人行道,那跑车的性能就不能完全发挥出来。
图1-1 高速路与人行道
无论在高速路上跑得多快,一旦遇上红绿灯和人行道那该怎么办?想
必就算是高性能跑车,在这个时候减速也会影响它的性能发挥。即使等到
了绿灯,再次加速行驶,但遇到下一个红绿灯时也不得不再次减速。实际
生活中的高速路上是没有人行道的,但计算机中的程序却是在 “有红绿灯
的高速路”上工作着。
读者在用C 或C++ 编写程序时,常常会在程序里设置很多 “红绿灯和
人行道”。虽然需要减速的原因有很多,但只要去掉其中几个主要的障碍,
程序的运行速度就会提高几十倍。
那么,哪些程序在扮演着 “高速路上的人行道”呢?我们该如何规避
它?要想解答这些问题,我们就必须了解CPU 的构造和工作原理,以及编
译器运行的相关知识。
在这一章中,我们会在探讨性能优化的具体方法之前,先对CPU 的构
造与编译器的运行原理进行简单的讲解。
002 第1章 CPU与编译器概论
1.2 编译器是如何运作的
大多数程序员在日常编程中很少会直接用到CPU 中的指令 (即机器语
言)。这主要是因为直接使用机器语言比较繁琐,所以我们选择人类更容易
理解的语言来编程,然后再通过编译器将其翻译成机器语言。但是,编译
器能否准确地将人类的逻辑思维转换为相应的机器语言呢?在这里,我们
先来研究一下编译器到底是如何运作的。
比如,使用GCC 按以下步骤将程序编译为目标代码(即汇编语言程序)。
1 读取源程序并进行解析。将字符分离出来整理成较容易统计的形式,收
�
集参数与函数名等标识符。
2� 对收集到的参数与标识符进行内存地址分配(即后文将提到的寄存器),
将内存地址与参数或函数对应起来。
3� 根据逻辑程序生成汇编语言程序。
接下来,汇编编译器将已生成的汇编语言转换成机器语言的目标程序,
链接器将目标程序和外部模块连接起来 (图1-2 )。
gcc as ld
*.c *.a *.o *.out
图1-2 从源程序到执行代码的实现过程
近代的编译器实现了在编译过程中,让所生成的程序在更短的时间内
得到相同的结果,达到更高的效率。其实现的方法多种多样,比如说,编
译器扫描程序后,将多余的操作忽略,修改指令的运行顺序以使CPU 处理
得更快等。
优化与程序的调优有着密不可分的关联,在后面的章节中将会提到。
1�2 编译器是如何运作的 003
编译后的汇编语言程序
我们来看看由GCC 生成的汇编语言程序。程序 1-1 是为检验而编写的
小程序。
程序1-1 10次加1运算的程序
#include stdio.h
int a, b;
main()
{
a = 0;
do {
b += a + 1;
a++;
} while (a 11);
}
如果在编译此程序时加上-S 选项,
您可能关注的文档
- CH16_3_项目管理及Project.ppt
- 对称中心相同的正交平衡多小波的存在性和参数化.pdf
- chap 6-4-- 类及对象.ppt
- 对单面氧化弯曲法计算氧化膜应力公式修正.pdf
- 对二纤单向通道保护环和二纤双向复用段保护环的理解.docx
- 对话框及窗口的区别.doc
- 对拷遥控器选配与使用说明.pdf
- 对外汉语词义教学中两个问题_万艺玲.pdf
- 对外汉语教学初级阶段语法项目排序问题.pdf
- Chap02_对象与类.ppt
- GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 中国国家标准 GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 《GB/T 22069-2024燃气发动机驱动空调(热泵)机组》.pdf
- GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- 《GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法》.pdf
- GB/T 1148-2024内燃机 铝活塞.pdf
- 中国国家标准 GB/T 1148-2024内燃机 铝活塞.pdf
最近下载
- ATB-25目标配合比完整版.doc
- 2024年秋季新科粤版九年级上册化学全册教案.pdf
- 初中物理:浙江省杭州市学军中学物理试题(中学自主招生)(含参考答案).pdf VIP
- 毕业设计--35kv箱式变电站设计.doc VIP
- 最新浙江省杭州市萧山中学自主招生考试数学试卷.docx VIP
- 钢制电缆桥架工程技术规程,T_CECS31-2017.docx
- 小学美术微项目化学习案例.docx VIP
- (精优教学设计+素材)六年级上册信息技术-第8课制定行驶路线图制作引导动画粤教版(B版) (8份打包).docx
- 中联QTZ100(W6013-6A)用户手册使用说明书.pdf
- (精优教学设计+素材)五年级上册信息技术-第8课 看谁算得快粤教版(B版) (6份打包).docx
文档评论(0)