本书系统深入地介绍了各种代码优化编程技术。全书分为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 源代码
《当你自信独立,才能无所畏惧》内容简介:你有没有在某一刻认真的问过自己:到底想成为一个什么样的姑娘?自己内心真正想要的是什
《Java RESTful Web Service实战(第2版)》内容简介:迫不及待,这是我想为读者更新REST服务新发展的心情,遂有此第2版。首先,我
一本很有价值的参考图册,广泛收集了许多各种设计中经常使用的传统和现代机构以及机械装置的实例,并列举丁它们的大量应用。作为
《基于神经网络的优化设计及应用》所提出的基于神经网络的立体正交优化设计方法是在多学科知识融合的基础上进行了创新,将试验技
《不懂财报就当不好经理》内容简介:随着市场经济的快速发展,无论是企业经营者还是普通职员,读懂财务报表都是一件非常有必要的事
《TensorFlow机器学习实战指南(原书第2版)》内容简介:本书由资深数据科学家撰写,从实战角度系统讲解TensorFlow基本概念及各种应
《任弼时风采》内容简介:任弼时(1904—1950),伟大的马克思主义者,无产阶级革命家、政治家、组织家,党的第一代领导集体的重要
《如何专业做采购》内容简介:作为专业采购必须有能力回答4大核心问题: 为什么选择这家供应商? 为什么是这个价格? 如何通过合同
佐藤可士和KashiwaSato,艺术指导,创意指导,1965年生于东京。1989年毕业于多摩艺术大学,毕业后进入日本知名广告公司“博报堂”
《手机/电脑双平台剪映短视频后期编辑从新手到高手》内容简介:本书随着各大短视频平台的持续火爆,无论是视频创业者还是希望通过
你是否好奇那些艺术家们的脑子里都想些什么?《手绘的创意日志》的作者珍妮弗·纽带领读者开始一场精神旅程,进入日志作者的个人
WhenitcomestoWebdesign,styleguidesareoftentooboringandpredictabletocapturetheatt...
《100万信用卡/信用额度大咖是怎样炼成的》内容简介:本书以实现一个小目标为核心,即实现信用卡的额度为100万元,来倒推如何选择信
《纳税会计与纳税申报实训操作(第三版)》内容简介:本书以国家最新税收法规和会计准则为依据,介绍了增值税、消费税、城镇土地使
计算机审计实务操作-(附光盘) 本书特色 本书是在分析总结实际审计工作经验的基础上编写而成的。全书以计算机在审计中的应用操作为核心,全面介绍了审计实务操作的技术...
《落花生》内容简介:许地山散文是现代文学中的一方宝藏。《落花生》以他生前著作《空山灵雨》等为底稿,收集了许地山先生一生最菁
《苹果的味道:iPad商务应用每一天》是一本介绍iPad商务应用的书。编者从AppStore丰富的应用程序库中选取了MobileRSS、PocketInfo
《平面设计配色全攻略》实例讲解部分共分为四个章节,分别为广告招贴、书籍杂志、品牌形象和产品包装四个类别。再将每个类别划分
《赛雷三分钟漫画三国演义16》内容简介:专为新生代读者打造,比电影还好看的漫画三国演义!一看就会的知识点! 1000万人都在看的“
NicholasC.Zakas是一名前端开发顾问、作者和演讲家。在Yahoo!供职超过5年时间,在这期间他曾是Yahoo!首页首席前端工程师和YUI库