中文名: 提高C++性能的编程技术 作者: [美]Dov Bulka 译者: 左飞 等 图书分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社 书号: 9787121129377 发行时间: 2011年03月 地区: 大陆 语言: 简体中文 内容简介: 很多程序员及软件设计师都认为,用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
2024-01-02 12:18:06 22.52MB 编程技术
1
UNIX环境高级编程
2024-01-02 11:02:43 13.87MB UNIX环境高级编程
1
fpga、verilog、quartus ii、2ask、2fsk、2psk的调制解调
2023-12-31 18:07:27 43.22MB fpga开发 编程语言
1
matlab编程入门培训完整.pptx
2023-12-31 14:03:17 367KB
1
PyQT数据可视化的程序,有两套源码。一套可以直接运行,一套用QTDesign编辑。
2023-12-31 03:06:29 140.51MB python 编程语言
1
两阶段鲁棒优化模型 多场景 采用matlab编程两阶段鲁棒优化程序,考虑四个场景,模型采用列与约束生成(CCG)算法进行求解,场景分布的概率置信区间由 1-范数和∞-范数约束,程序含拉丁超立方抽样+kmeans数据处理程序,程序运行可靠,有详细资料
2023-12-29 16:50:33 538KB matlab 编程语言
1
两阶段鲁棒优化模型 多场景 采用matlab编程两阶段鲁棒优化程序,考虑四个场景,模型采用列与约束生成(CCG)算法进行求解,场景分布的概率置信区间由 1-范数和∞-范数约束,程序含拉丁超立方抽样+kmeans数据处理程序,程序运行可靠,有详细资料
2023-12-29 16:41:51 538KB matlab 编程语言
1
Linux 平台下的 Xwindow 图形窗口编程工具 GTK,并给出了用 GTK 编程的基本要素和步骤。
2023-12-29 16:10:29 157KB
1
Teaching Open 2.7项目安装部署文件 win和Linux系统安装文件,打包好的,nginx模板和配置文件模板已经整理好 直接简单配置数据库和redis以及七牛启动完事 本系统是在开源项目Teaching Open2.7文档上完善来的,适配编程培训机构,支持课程,作业,作品,试卷等 目录介绍: html:前端页面 application-prod.yml:项目配置 teachingopen2.7.jar:后端jar包 nginx.conf:nginx配置,配置页面路径和证书一级后端接口访问地址 tachingopen2.7.sql:SQL文件 部署文档请CSDN搜索:Teachingopen部署安装手册Win和Linux系统保姆级教程teaching open开源少儿编程教学系统,里面已经将的很详细了 如果有别的不明白的可以留言或者私信
2023-12-26 15:27:48 243.73MB 编程语言
1
内容很详实,适合基础阶段的基础命令的查找,分享一下,搞不清基础的地方查一查,笔记和代码都在里面。 01.python基础简介与安装 02.数据类型和运算符 03.if 条件语句 04.while 和 for 循环 05.字符串的介绍和操作 06.列表的介绍和操作 07.字典的介绍和操作 08.上述三种数据类型的公共操作和列表推导式 09.函数教程一 10.函数教程二 11.根据函数做案例 12.递归、lanbda和高阶函数 13.文件的操作(读取写入什么的) 14.类和对象 15.继承 16.面向对象三大特性 17.异常 18.模块 19.最后做个案例
2023-12-26 13:48:54 42.85MB python
1