C程序性能优化
C程序性能优化封面图

C程序性能优化

(日) 片山善夫, 著

出版社:人民邮电出版社

年代:2012

定价:29.0

书籍简介:

本书主要介绍了C语言高效编程的20个技巧,并将这些技巧通过实验的方式进行讲解,简明易懂,使人印象深刻。本书适合有一定基础的C语言编程人员。书中带有大量的代码实例,使读者不仅能够从理论上得以提高,而且还能够轻松地在实践中应用。

书籍目录:

目 录

第1章 CPU与编译器概论

1.1 高速路与人行道 002

1.2 编译器是如何运作的 003

编译后的汇编语言程序 004

添加优化选项后的结果 007

1.3 CPU是如何运作的 008

指令集架构与微架构 008

如何执行指令 009

指令流水线 011

高速缓存 012

深入探讨高速缓存 013

缓存块的替换算法 015

超标量指令执行 015

第1章 是不是偏离了主题 017

第2章 执行成本

2.1 两程序的执行成本 020

2.2 计·测·谋 020

书中的探讨 020

2.3 防止基准测试程序被优化 023

防止操作“归并” 023

防止变量在初始化时被优化 024

防止重复单一指令被优化 025

本书中的基准测试程序 026

2.4 验证——哪一步操作导致执行速度缓慢 029

2.5 基础加法与赋值运算 031

单一的赋值操作(寄存器间的传送) 032

单一的赋值操作(数据相互关联的情况) 032

常量赋值 033

变量间的加法运算 033

变量与常量相加 034

2.6 耗时的乘法运算 036

变量间的乘法运算 037

变量与常量相乘 037

2.7 更为耗时的除法运算 040

变量的除法(寄存器间的计算) 040

除数为2、4的除法运算 042

除数不是2的乘方的除法运算 042

无符号整数除法运算 042

除数为2的乘方时除法运算使用低成本移位指令 043

2.8 内存读取 045

小数组的读取(小范围内的内存操作) 045

大数组的读取(大范围内的内存操作) 047

与台式机的CPU进行比较 049

2.9 造成执行时间差别的判断语句 051

无else节点的if语句 051

带else节点的if语句 053

2.10 32/64位环境中不同的函数调用 053

2.11 实验总结 055

若想被爱则先爱 055

第3章 寻找性能瓶颈

3.1 使用gprof命令进行分析 058

gprof的使用方法 058

3.2 哪个环节在消耗时间 058

获取库函数的评测信息 060

耗时的函数 062

显示库函数的调用次数 063

3.3 函数的调用关系 063

3.4 进行数据分析的原理 066

3.5 其他性能分析器 067

培养高水平人才的教育系统 068

第4章 达人方法论

4.1 达人的关注点 072

硬件篇 072

编译器/中间件篇 074

算法篇 075

4.2 【硬件篇】数组和缓存的有效利用 076

矩阵的乘法运算 076

调整数组操作的顺序 077

展开循环的方式 078

矩阵的分块 079

4.3 【库函数篇】缓慢函数的迂回战术 080

strcmp函数为何缓慢 080

优化的陷阱 081

4.4 【硬件篇】使用SIMD进行字符串对比 083

4.5 【库函数篇】对比各种输入输出方法 085

行输入函数的对比 085

输出方法 089

管道输入输出的特殊案例 091

管道输入输出与文件输入输出 092

4.6 【算法篇】二分法查找与平衡二叉树 092

海量数据的分类 093

真要做到如此地步? 097

第5章 进一步研究编译器

5.1 不同级别的优化选项 100

GCC的优化选项 100

“零优化”对调试有效 100

以不出现未定义行为为前提的2级以上优化选项 101

5.2 优化·寄存器·外部变量 102

5.3 删除公共子表达式为程序瘦身 104

5.4 指针与复杂运算简化 105

5.5 将用户函数进行内联展开 106

和别人拉开差距! 108

第6章 给办公系统的一些启示

6.1 排序与字符串操作 112

6.2 小数点数的计算与字符串/数字的换算 112

块数据输入输出和字段分割 113

统计带小数部分的数 113

整数转换成字符串 115

性能优化的效果 116

6.3 半角字符转换为全角字符 117

判定字符的字节数 118

ASCII字符与半角片假名字符的判定 119

ASCII字符转换为全角字符 123

半角字符转换为全角字符 124

性能优化的效果 127

判定字符字节数的其他方法 127

有关UTF-8 130

6.4 探索具有某种数据特性的数组 132

数据的特性 133

二分法查找与线性查找相结合 135

性能优化的效果 138

后记 139

内容摘要:

作者精通高效编程,其开发的C编译器,不仅适用于16位及32位系统,还能在GPU中对视频数据进行实时编译。作者将C高效编程的心得浓缩于20个技巧,并将这些技巧通过实验的方式进行讲解,简明易懂,使人印象深刻。书中带有大量的代码实例,使读者不仅能够从理论上得以提高,而且还能够轻松地在实践中应用。《C程序性能优化:20个实验与达人技巧》从CPU与编译器的运行机制讲起,带领读者一步步了解程序的执行成本、编译器的优化选项等,总结出许多C程序性能优化的技巧,并以实验的方式进行了讲解,简明易懂,使人印象深刻。书中带有大量的代码实例,使读者不仅能够了解代码优化的原理,还能够轻松地在实践中应用。  《C程序性能优化:20个实验与达人技巧》适合有一定基础的C语言编程人员阅读。【作者简介】片山善夫:具有近二十年的C语言编译器和解释器开发经验。现从事对SPARC、VisionChip等体系结构的研究。译者介绍:何本华,日语专业翻译,擅长IT类、工程技术类、新闻稿件类翻译,曾担任奥特曼之父中田幸和的口译。居福国,毕业于复旦大学计算机科学与技术专业,精通C语言和Java,具有丰富的编程经验。

书籍规格:

书籍详细信息
书名C程序性能优化站内查询相似图书
丛书名图灵程序设计丛书
9787115300003
如需购买下载《C程序性能优化》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位人民邮电出版社
版次1版印次1
定价(元)29.0语种简体中文
尺寸21 × 15装帧平装
页数 76 印数 4000

书籍信息归属:

C程序性能优化是人民邮电出版社于2012.12出版的中图分类号为 TP312 的主题关于 C语言-程序设计 的书籍。