本书系统深入地介绍了各种代码优化编程技术。全书分为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 源代码
《GPU精粹:实时图形编程的技术技巧和技艺》汇集了当今国际上前沿开发者们经多年研究和实践得出的实用的实时图形技术成果。《GPU精
《古画新品录》内容简介:《古画新品录:一部眼睛的历史》是艺术史学者黄小峰对中国古画的品读。作者选取了流传于世的35件国画作品
《数据主权与安全:跨境电子取证》内容简介:网络时代的到来导致以领土范围为标准的管辖界限逐渐模糊,近年来各国在刑事侦查中收集
本书的构思和写作是在20世纪50年代后期,那一时期曾经被人们称为喷气机时代、清洁剂时代、第二次工业革命时期,等等。在那个阶段
《人工神经网络与微粒群优化》介绍了几类常用的和基本的人工神经网络模型,即感知机、前馈型、反馈型、随机神经网络,还介绍了比
关联数据聚类-模型.算法及应用 内容简介 《关联数据聚类——模型、算法及应用》可以作为计算机、通信、信息等相关专业高年级本科生和研究生学习数据挖掘或机器学习专题...
《大数据实践之路》内容简介:《大数据实践之路:数据中台+数据分析+产品应用》共13章,汇集了7位作者(来自多个大型互联网企业)的
內容簡介沒有令人皺眉的繪圖技巧,只是激發你對空間的探索樂趣!一門帶領所有人進入建築世界的必備基礎課10項主題X10堂練習X10年
内容简介:本书是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring开发者社区一致
本书帮助你解决API设计方面的问题,共分3个部分,分别指出学习API设计是需要进行科学的训练的、Java语言在设计方面的理论及设计和
《同时(2018年版)》内容简介:《同时》是桑坦格的“最后一部”随笔集,她的“最后一本书”。书名取自苏珊·桑坦最后一次演说的标
《善数者成》内容简介:数据自古有之,它是对万事万物的精确刻画,也是对客观世界的普遍记录。伴随着信息爆炸与技术革新,大数据正
《PHP+MySQL程序设计实例讲座》以深入浅出的讲解引导您熟悉PHP的语法,针对文件访问、GD绘图与图片处理、表单、Cookie、Session、
《中国历史文论选读》内容简介:《中国历史文论选读》是澳门大学历史系教授李凭编写的一部中国古代文论名篇选集。全书按照内容共分
基于计算机、数码及网络技术的因特网已经在设计领域营造出了一个"网页设计"的新典范。仅仅五六年时间,飞速发展的因特网促进了网
程序员2003合订本(上下) 本书特色 《程序员2003合订本》由程序员杂志社联合电子工业出版社*新推出。本合订本沿袭2001、2002年《程序员合订本》的风格...
《见证文化》内容简介:本书收录的是大型系列文化专题节目《中华文化探源》和系列专题节目《融合》的节目稿件。《中华文化探源》从
《心智社会》内容简介:人类思维是一个复杂的过程。“为什么人类下雨不想被淋湿,却愿意在卫生间沐浴”这种3岁小孩都知道的问题,计
Userexperiencedesignteamsoftensufferfromadecentralized,blankcanvasapproachtocrea...
《Python 3.8编程快速入门》内容简介:随着人工智能时代的到来,Python已经成为主流开发语言。本书针对完全零基础入门的读者,采用