本书系统深入地介绍了各种代码优化编程技术。全书分为4章。第1章集中介绍如何确定程序中消耗CPU时钟最多的热点代码的所谓程序剖析技术以及典型部分工具的实用知识。第2,3章分别全面介绍RAM了系统与高速缓存子系统的代码优化知识。第4章主要介绍了机器代码优化技术。各章在讨论基本原理的同时详细给出了代码实例,并对优化性能进行了定量的分析。
该书特别适合于作为应用程序员及系统程序员的学习与开发之用。同时,本书对在硬件方面的专业人员与技术工作者有一定的参考价值。
第1章 程序剖分
1.1 剖分的目标与目的
1.1.1 总执行时间
1.1.2 执行时间的类型
1.1. 3 处罚信息
1.1.4 调用次数
1.1.5 覆盖层次
1.2 微剖分的基本问题
1.2.1 流水作业或者吞吐量与等待时间
1.2.2 测不准
1.2.3 硬件优化
1.2.4 低分辨率
1.3 宏剖分的基本问题
1.3.1 运行时间的不一致性
1.3.2 度运行问题
1.3.3 负面效应
1.3.4 单台机器的代码优化问题
1.4 最新剖分软件概述
1.4.1 intelvtune
1.4.2 amdcodeanalyst
.1.4.3 microsoft的profile.exe
1.5 开发自己的剖分软件
1.6 vtune实用剖分知识
1.6.1 第一步:删除prinff函数
1.6.2 第二步:将strlen函数体移出循环
1.6.3 第三步:对齐数据
1.6.4 第四步:删除strlen函数
1.6.5 第五步:删除除法操作
1.6.6 第六步:删除性能监测代码
1.6.7 第七步:函数组合
1.6.8 第八步:减少内存访问操作的次数
1.6.9 第九步:把vtune当做私人教练
1.6.10 第十步:下结论
1.6.11 结果与预测
第2章 ram子系统
2.1 ram概述
2.2 ram的层次结构
2.3 随机存取存储器
2.4 ram的设计与工作原理
2.4.1 内核部分
2.4.2 传统dram(页面模式的dram)
2.4.3 dram的发展
2.4.4 快速页面模式的dram(fpmdram)
2.4.5 存储器时序
2.4.6 扩展数据输出dram(edodram)
2.4.7 突发式edodram(bedodram)
2.4.8 同步dram(sdram)
2.4.9 倍速sdram(ddrsdram)或者sdramⅱ
2.4.10 直接rambusdram(直接rdram)
2.4.11 不同存储器类型的比较
2.5 存储器与处理器之间的交互操作
2.5.1 计算全存取时间
2.6 dram物理地址到逻辑地址的映射
2.7 内存优化操作
2.7.1 建议
2.7.2 展开循环
2.7.3 消除数据相关性
2.7.4 数据并行处理
2.7.5 优化引用数据结构
2.7.6 减小数据结构的尺寸
2.7.7 dram板块上的数据分布策略
2.7.8 规划数据流
2.7.9 按字节、双字与四字进行内存处理
2.7.10 数据对齐
2.7.11 内存访问与计算的组合
2.7.12 读写操作的组合
2.7.13 只在必要时才访问内存
2.7.14 内置c内存处理函数的优化
2.7.15 内存处理函数的优化质量
2.7.16 c字符串库函数的优化
2.7.17 字符串处理函数的质量优化
2.7.18 块处理算法的优化
2.7.19 大型数组排序的优化
2.8 ram测试问题
第3章 高速缓存子系统
3.1 sram的工作原理
3.1.1 历史概况
3.1.2 内核
3.1.3 触发器的设计
3.1.4 逻辑非元件(取反器)的设计
3.1.5 sram阵列的设计
3.1.6 封装接口的设计
3.1.7 读写时序图
3.1.8 静态存储器的类型
3.2 高速缓存的工作原理
3.2.1 起源
3.2.2 高速缓存的目标与任务
3.2.3 高速缓存的组织
3.3 高速缓存与存储器存取的优化
3.3.1 处理数据的尺寸对性能的影响
3.3.2 可执行代码的尺寸对性能的影响
3.3.3 数据对齐效率
3.3.4 数据在高速缓存板块上的分布
3.3.5 使用有限联合数目的高速缓存
3.3.6 维数组的处理
3.3.7 写缓冲机制的详细说明
3.3.8 新一代x86处理器的高速缓存管理
3.3.9 预取机制的实际应用
3.3.10 内存拷贝内幕或者pentiumⅲ与pentium4的新命令
第4章 机器优化
4.1 c/c++编译器的比较分析
4.1.1 常量表达式
4.1.2 代数表达式
4.1.3 算术运算
4.1.4 分支语句
4.1.5 switch运算符
4.1.6 循环
4.1.7 函数调用
4.1.8 变量分布
4.1.9 字符串初始化
4.1.10 死码
4.1.11 常量条件
4.1.12 确定优胜者
4.2 汇编器与编译器的对决
4.2.1 历史回顾--汇编语言使春天永驻
4.2.2 评价机器优化质量的指标
4.2.3 评价机器优化质量的方法
4.2.4 对主要编译器进行比较分析
4.2.5 测试结果的讨论
4.2.6 机器优化质量的示例
4.2.7 用汇编语言创建保护代码
4.2.8 用汇编语言编程是一种创造性活动
4.2.9 结束语
4.2.10 源代码
《二战经典战役系列丛书:鏖兵瓜岛(图文版)》内容简介:瓜岛战役是日本继中途岛战役后的又一次大败,此次战役后,日本战略优势不
本书指导读者使用Ajax、PHP及其他相关技术建立快速响应的网页。本书不仅从Ajax的客户端和服务器端技术两个方面指导读者逐步掌握A
AlistairCockburn是用例方面的一位著名专家。他是HumansandTechnology公司的资深顾问,在那里他负责帮助客户在面向对象项目上获得
《15分钟!铅笔素描练习册(风景篇)》内容简介:对于素描初学者来说,素描入门最难跨过的那道坎就是在有了满肚子理论基础和一大堆
《手把手教你学:剪发技术超精图解(上)》内容简介:想要成为一名优秀的发型师,首先要掌握扎实的剪发基础技能。只有摸清骨骼要点
《从西湖到瓦尔登湖》内容简介:课堂与世界何以融汇贯通,答案或在“越读”之中:越,翻越也,亦翻阅也;读,岂独诵书也哉,焉能不
天亮了一只鸟落在船上蝴蝶从水面飞过湖畔边的蜘蛛网里,一只蜘蛛正在和天牛扭打野鸭悠然自得地从水面游走傍晚了月亮倒映在湖面上
◆腾讯P4专家产品经理倾力推荐!◆揭开腾讯内部亿级产品的“产品内功”。◆解密腾讯如何成为“产品经理的黄埔军校”。◆向腾讯学
《刘慈欣中英双语科幻经典(青少版)1:流浪地球》内容简介:科幻短篇小说集,包含2篇短篇《赡养人类》和《吞食者》,《赡养人类》
《现代C:概念剖析和编程实践》内容简介:这本书按级别组织,编号从0到3。初始级别0,名为“邂逅”,它将总结使用C进行编程的基础知
群体研讨支持系统及其文本分析方法 内容简介 本书分上下两部分, 上半部分重点介绍了群体研讨支持系统研究的*近进展, 主要涉及群体决策中相关的任务类型, 群体支持...
……美术编辑要读懂书的内容,把握书的性格,这是设计的前提。范用热爱简洁、大方、韵味深远的设计,他力避繁复,深知“减法”之
《LTE移动通信术语与缩略词词典》,本书简介:作为3G标准的后续演进,LTE系统以及其演进技术,引入新的OFDM多址方式,支持灵活的带
《ATT&CK与威胁猎杀实战》内容简介:本书主要介绍ATT&CK框架与威胁猎杀。第1部分为基础知识,帮助读者了解如何收集数据以及如何通过
"TechnicsandCivilization"firstpresenteditscompellinghistoryofthemachineandcritic...
《移动互联网时代文化产业商业模式》内容简介:这是一本面向大众,将国家社科基金重大项目"我国文化产业发展战略研究”之子课题"中
ASP.NET是由Microsoft公司推出的新一代Web开发构架。开发人员可以通过ASP.NET实现动态网站的开发,包括开发Web应用程序和Web服务
《汽车维修电工实战28天》内容简介:本书主要讲解汽车维修电工入门的相关知识及操作技能,内容包括汽车维修电工入门,汽车电源系统
Whatdoesittaketobecomeadoctor,andhowdotheykeepushealthy?Learnhowlongdoctorshavet...
开源软件是当今计算机工业界最具活力的领域,例如Linux这个公开了源代码的UNIX操作系统在服务器市场上已经与许多大公司的产品分庭