很多程序员及软件设计师都认为,用c++开发意味着放弃程序性能提升的可能。在很多人眼里,使用c++来开发那些效率至上的应用无疑将导致一场空前的浩劫。因此,在许多性能敏感型领域,诸如网络协议、操作系统内核、移动设备驱动等等,c++都常常处于被冷落的境地。
而本书正是对这种错误观念的最有力回击。《提高c++性能的编程技术》揭示了c++开发高效应用的潜力,向广大读者展示了大量实用的c++面向对象编程技术。通过改善普遍藏匿于设计编码过程暗处的缺陷,这些技术无一不为c++的性能提升带来最为强劲的动力。
《提高c++性能的编程技术》详细讨论了临时对象、内存管理、继承、虚函数、内联、引用计数以及stl等一切有可能提升c++效率的细节内容。最终,该书将c++性能提升的各种终极利器,完美地呈现在广大读者的面前!无论你是相关领域的从业人员,还是c++程序设计爱好者,或者是渴望突破编程瓶颈、大幅提升自我修为的程序设计爱好者,本书都必将使你获益良多。
导读 1
第1章 跟踪实例 10
1.1 初步跟踪的实现 12
1.2 要点 18
第2章 构造函数和析构函数 20
2.1 继承 20
2.2 复合 32
2.3 缓式构造 34
2.4 冗余构造 37
2.5 要点 41
第3章 虚函数 43
3.1 虚函数的构造 43
3.2 模板和继承 46
3.3 要点 51
第4章 返回值优化 52
4.1 按值返回机制 52
4.2 返回值优化 54
4.3 计算性构造函数 57
4.4 要点 58
.第5章 临时对象 59
5.1 对象定义 59
5.2 类型不匹配 60
5.3 按值传递 63
5.4 按值返回 64
5.6 使用op=()消除临时对象 66
5.7 要点 67
第6章 单线程内存池 69
6.1 版本0:全局函数new()和delete() 70
6.2 版本1:专用rational内存管理器 71
6.3 版本2:固定大小对象的内存池 76
6.4 版本3:单线程可变大小内存管理器 80
6.5 要点 87
第7章 多线程内存池 88
7.1 版本4:实现 88
7.2 版本5:快速锁定 91
7.3 要点 95
第8章 内联基础 96
8.1 什么是内联? 96
8.2 方法调用的代价 100
8.3 因何内联? 105
8.4 内联详述 105
8.5 虚方法的内联 107
8.6 通过内联提升性能 108
8.7 要点 109
第9章 内联——站在性能的角度 110
9.1 调用间优化 110
9.2 何时避免内联? 115
9.3 开发阶段及编译期的内联考虑 118
9.4 基于配置的内联 119
9.5 内联规则 123
9.6 要点 125
第10章 内联技巧 126
10.1 条件内联 126
10.2 选择性内联 127
10.3 递归内联 129
10.4 对静态局部变量进行内联 134
10.5 与体系结构有关的注意事项:多寄存器集 136
10.6 要点 137
第11章 标准模板库 138
11.1 渐近复杂度 138
11.2 插入 139
11.3 删除 146
11.4 遍历 149
11.5 查找 150
11.6 函数对象 152
11.7 比stl更好? 154
11.8 要点 157
第12章 引用计数 158
12.1 实现细节 160
12.2 已存在的类 172
12.3 并发引用计数 175
12.4 要点 179
第13章 编码优化 180
13.1 缓存 182
13.2 预先计算 183
13.3 降低灵活性 184
13.4 80-20法则:加快常用路径的速度 185
13.5 延迟计算 189
13.6 无用计算 191
13.7 系统体系结构 192
13.8 内存管理 193
13.9 库和系统调用 194
13.10 编译器优化 197
13.11 要点 198
第14章 设计优化 200
14.1 设计灵活性 200
14.2 缓存 204
14.3 高效的数据结构 208
14.4 延迟计算 208
14.5 getpeername() 209
14.6 无用计算 212
14.7 失效代码 213
14.8 要点 214
第15章 可扩展性 215
15.1 对称多处理器架构 217
15.2 amdahl定律 218
15.3 多线程和同步 220
15.4 将任务分解为多个子任务 221
15.5 缓存共享数据 222
15.6 无共享 224
15.7 部分共享 226
15.8 锁粒度 228
15.9 伪共享 230
15.10 惊群现象 231
15.11 读/写锁 233
15.12 要点 234
第16章 系统体系结构相关话题 235
16.1 存储器层级 235
16.2 寄存器:存储器之王 237
16.3 磁盘和内存结构 241
16.4 缓存效应 244
16.5 缓存抖动 246
16.6 避免跳转 247
16.7 使用简单计算代替小分支 248
16.8 线程化的影响 249
16.9 上下文切换 251
16.10 内核交叉 254
16.11 线程化选择 255
16.12 要点 257
参考文献 258
索引 260
商业数据流挖掘模型.方法及应用 本书特色 本书是商业数据流挖掘方面的一本学术专著,包括商业数据流数据管理模型、概念漂移模型、商业数据流关联规则、分类、聚类方法,...
葛列众,男,1956年出生,工学博士,浙江理工大学教授,博士生导师,心理研究所所长。现任中国心理学会工业心理学专业委员会副主
对于初学者,尤其是没有编程经验者来说,这是一本可以快速上手,真正面向应用的好教材。本书展示了Java在面向对象、事件驱动等程序设
从日常生活中孕育出独到的设计风格,日本知名服装品牌minaperhonen设计总监皆川明,一直努力制作着无法以“流行”来概括形容的特
《全球价值链、中国经济增长与碳排放》内容简介:本书将全球价值链研究的前沿成果与环境经济学、国际贸易理论的学术洞见整合在一起
MuchhaschangedinthetenyearssincethepublicationofthefirsteditionoftheHandbookofHu...
李永志管理3000人的客户服务团队,集团级内训师,承担客户运营管理、落实工作,实战经验丰富。从基层的集团客户管理员做起,到VI
《设计思维:建筑设计过程解析(原书第3版)》第二版于1990年出版,之后第三版就一直在不停的改写当中。布莱恩·劳森一直在努力了解
《走出考核困局》内容简介:不要考核下属,要激活他们。去考核式绩效管理,让你业绩倍增。目前的绩效考核存在各种陷阱和误区,管理
《战后日本能源安全保障研究》内容简介:战后以来日本在不同阶段都遇到了不同形式的能源约束问题,但是都未成为其经济发展的长期约
《微商引流爆粉实战手册:全网引流实战300招》内容简介:本书整体上以平台选择为逻辑主线,向读者推荐了诸多引流方法:集赞引流、微
《天下美食》内容简介:从美食延伸到人文历史记忆,于平淡中见真情,体现一代学者的知识分子情怀 著名学者丁帆美食人文笔记。作者从
《来世》内容简介:★2021年诺奖得主古尔纳2020年重磅新作,代表着他最新的创作成就 ★一片失落大陆上的聚散与悲欢,一部几代人的传
《数据化运营速成手册》内容简介:《数据化运营速成手册》用于提升互联网公司员工的数据应用能力,即数据化运营能力。首先,从最常
《设计模式之禅》内容简介:全书共分为四部分,第一部分从原理的角度阐述了面向对象程序设计的6大原则;第二部生动地讲解和剖析了2
《为数据而生》内容简介:在大数据概念如此流行的今天,为什么要读这本书?中国大数据领军人、大数据创新与实践一线专家、百万级畅
《松子落》内容简介:一个人有一个人的京都。九年时光,青翠转浓荫,是漫长光阴凝缩作一粒琥珀,是长镜头流转中的迅疾一瞬。苏枕书
《Ghidra权威指南》内容简介:Ghidra是美国国家安全局(NSA)开发的一套逆向工程工具套件。本书是目前市面上仅有的一本Ghidra使用指
《新能源和可再生能源发展与产业化研究》对新能源和可再生能源的含义和分类进行了理论界定,涉及类别主要包括太阳能、地热能、生
《工作一年拉开差距:逻辑思考》内容简介:刚工作一年,总是感觉思路混乱? 刚接手新的业务压力很大,对新项目的思考总觉得不够深入