这里的优化——尽量保持与硬件无关,无需额外的付出即可移植到其他的操作系统!不会使开发过程(包括测试在内)的劳动强度增加15%以上!使程序性能的提高不少于20%!不会对代码修改造成困难! |
Kris Kasperskty是黑客破译、反汇编与代码优化技术的专栏作家。他一直致力于研究安全与系统程序设计方面的问题,内容涉及编译器开发、优化技术、安全机制研究、实时操作系统内核的创建以及反病毒程序的设计等多个领域。
正是因为他虽“杂”却“博”、虽“博”却“深”,才能用诙谐而轻松的话语,把严密的科技知识在谈笑间透彻地加以剖析,让读者在轻松愉快之中学习和体验科技的奥妙,这是一种特色、一种方式、一种态度,更是一种境界。 |
译者序 第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 Intel VTune 1.4.2 AMD Code Analyst 1.4.3 Microsoft的profile.exe 1.5 开发自己的剖分软件 1.6 VTune实用剖分知识 1.6.1 第一步:删除printf函数 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(FPM DRAM) 2.4.5 存储器时序 2.4.6 扩展数据输出DRAM(EDO DRAM) 2.4.7 突发式EDO DRAM(BEDO DRAM) 2.4.8 同步DRAM(SDRAM) 2.4.9 倍速SDRAM(DDR SDRAM)或者SDRAM II 2.4.10 直接Rambus DRAM(直接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章 高速缓存子系统 第4章 机器优化 |
商品评论(0条)