C++性能优化指南 - (EPUB全文下载)

文件大小:1.16 mb。
文件格式:epub 格式。
书籍内容:

版权信息
书名:C++性能优化指南
作者:[美] Kurt Guntheroth
译者:杨文轩
ISBN:978-7-115-47139-0
本书由北京图灵文化发展有限公司发行数字版。版权所有,侵权必究。
您购买的图灵电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
图灵社区会员 天绝弑杀(shichonggao1234@qq.com) 专享 尊重版权
版权声明
O'Reilly Media, Inc. 介绍
业界评论
前言
为本书中的代码致歉
示例代码的使用
排版约定
第 1 章 优化概述
1.1 优化是软件开发的一部分
1.2 优化是高效的
1.3 优化是没有问题的
1.4 这儿一纳秒,那儿一纳秒
1.5 C++ 代码优化策略总结
1.5.1 用好的编译器并用好编译器
1.5.2 使用更好的算法
1.5.3 使用更好的库
1.5.4 减少内存分配和复制
1.5.5 移除计算
1.5.6 使用更好的数据结构
1.5.7 提高并发性
1.5.8 优化内存管理
1.6 小结
第 2 章 影响优化的计算机行为
2.1 C++ 所相信的计算机谎言
2.2 计算机的真相
2.2.1 内存很慢
2.2.2 内存访问并非以字节为单位
2.2.3 某些内存访问会比其他的更慢
2.2.4 内存字分为大端和小端
2.2.5 内存容量是有限的
2.2.6 指令执行缓慢
2.2.7 计算机难以作决定
2.2.8 程序执行中的多个流
2.2.9 调用操作系统的开销是昂贵的
2.3 C++ 也会说谎
2.3.1 并非所有语句的性能开销都相同
2.3.2 语句并非按顺序执行
2.4 小结
第 3 章 测量性能
3.1 优化思想
3.1.1 必须测量性能
3.1.2 优化器是王牌猎人
3.1.3 90/10 规则
3.1.4 阿姆达尔定律
3.2 进行实验
3.2.1 记实验笔记
3.2.2 测量基准性能并设定目标
3.2.3 你只能改善你能够测量的
3.3 分析程序执行
3.4 测量长时间运行的代码
3.4.1 一点关于测量时间的知识
3.4.2 用计算机测量时间
3.4.3 克服测量障碍
3.4.4 创建 stopwatch 类
3.4.5 使用测试套件测量热点函数
3.5 评估代码开销来找出热点代码
3.5.1 评估独立的 C++ 语句的开销
3.5.2 评估循环的开销
3.6 其他找出热点代码的方法
3.7 小结
第 4 章 优化字符串的使用:案例研究
4.1 为什么字符串很麻烦
4.1.1 字符串是动态分配的
4.1.2 字符串就是值
4.1.3 字符串会进行大量复制
4.2 第一次尝试优化字符串
4.2.1 使用复合赋值操作避免临时字符串
4.2.2 通过预留存储空间减少内存的重新分配
4.2.3 消除对参数字符串的复制
4.2.4 使用迭代器消除指针解引
4.2.5 消除对返回的字符串的复制
4.2.6 用字符数组代替字符串
4.2.7 第一次优化总结
4.3 第二次尝试优化字符串
4.3.1 使用更好的算法
4.3.2 使用更好的编译器
4.3.3 使用更好的字符串库
4.3.4 使用更好的内存分配器
4.4 消除字符串转换
4.4.1 将 C 字符串转换为 std::string
4.4.2 不同字符集间的转换
4.5 小结
第 5 章 优化算法
5.1 算法的时间开销
5.1.1 最优情况、平均情况和最差情况的时间开销
5.1.2 摊销时间开销
5.1.3 其他开销
5.2 优化查找和排序的工具箱
5.3 高效查找算法
5.3.1 查找算法的时间开销
5.3.2 当 n 很小时,所有算法的时间开销都一样
5.4 高效排序算法
5.4.1 排序算法的时间开销
5.4.2 替换在最差情况下性能较差的排序算法
5.4.3 利用输入数据集的已知特性
5.5 优化模式
5.5.1 预计算
5.5.2 延迟计算
5.5.3 批量处理
5.5.4 缓存
5.5.5 特化
5.5.6 提高处理量
5.5.7 提示
5.5.8 优化期待路径
5.5.9 散列法
5.5.10 双重检查
5.6 小结
第 6 章 优化动态分配内存的变量
6.1 C++ 变量回顾
6.1.1 变量的存储期
6.1.2 变量的所有权
6.1.3 值对象与实体对象
6.2 C++ 动态变量 API 回顾
6.2.1 使用智能指针实现动态变量所有权的自动化
6.2.2 动态变量有运行时开销
6.3 减少动态变量的使用
6.3.1 静态地创建类实例
6.3.2 使用静态数据结构
6.3.3 使用 std::make_shared 替代 new 表达式
6.3.4 不要无谓地共享所有权
6.3.5 使用“主指针”拥有动态变量
6.4 减少动态变量的重新分配
6.4.1 预分配动态变量以防止重新分配
6.4.2 在循环外创建动态变量
6.5 移除无谓的复制
6.5.1 在类定义中禁止不希望发生的复制
6.5.2 移除函数调用上的复制
6.5.3 移除函数返回上的复制
6.5.4 免复制库
6.5.5 实现写时复制惯用法
6.5.6 切割数据结构
6.6 实现移动语义
6.6.1 非标准复制语义:痛苦的实现
6.6.2 std::swap() :“穷人”的移动语义
6.6.3 共享所有权的实体
6.6.4 移动语义的移动部分
6.6.5 更新代码以使用移动语义
6.6.6 移动语义的微妙之处
6.7 扁平数据结构
6.8 小结
第 7 章 优化热点语句
7.1 从循环中移除代码
7.1.1 缓存循环结束条件值
7.1.2 使用更高效的循环语句
7.1.3 用递减替代递增
7.1.4 从循环中移除不变性代码
7.1.5 从循环中移除无谓的函数调用
7.1.6 从循环中移除隐含的函数调用
7.1. ............

书籍插图:
书籍《C++性能优化指南》 - 插图1
书籍《C++性能优化指南》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » C++性能优化指南 - (EPUB全文下载)