C++高性能编程
书籍作者:比约恩 |
ISBN:9787519883058 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:5996 |
创建日期:2024-05-13 |
发布日期:2024-05-13 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书共分为14章,包括C++概述,C++必备技能,分析和度量性能,数据结构,算法,范围和视图,内存管理,编译时编程,Utilities基础,代理对象和惰性求值,并发,协程和惰性生成器,用协程进行异步编程和并行算法。
本书期望你具备基本的C++和计算机体系结构知识,并对提升自身专业技能真正感兴趣。希望阅读本书后,能对如何在性能和语法上改进自己的C++代码有更深入的认识。
作者简介
比约恩·安德里斯特(Bjorn Andrist),独立软件顾问,目前专注于音频应用。在过去的15年中,他一直用专业的态度使用C++工作,项目范围涵盖了从UNIX服务器应用到桌面和移动的实时音频应用等多个领域。此外,他还曾教授算法和数据结构、并发编程和编程方法等课程。Bjom拥有瑞典皇家理工学院的计算机工程学士学位和计算机科学硕士学位。
目录
序
前言
第1章 C++概述
1.1 为什么是C++
1.1.1 零成本抽象
1.1.2 可移植性
1.2 与其他语言对比
1.2.1 竞争语言和性能
1.2.2 与性能无关的C++语言特性
1.2.3 C++的局限性
1.3 本书使用的库和编译器
1.4 总结
第2章 C++必备技能
2.1 用auto关键字进行自动类型推断
2.1.1 在函数签名中使用auto
2.1.2 对变量使用auto
2.1.3 指针的常量传播
2.2 移动语义
2.2.1 拷贝构造函数,交换与移动
2.2.2 资源获取与五法则
2.2.3 具名变量和右值
2.2.4 默认移动语义和零法则
2.2.5 将&&修饰符应用于类成员函数
2.2.6 当拷贝被省略时,无论如何都不要移动
2.2.7 适时使用值传递
2.3 设计带有错误处理的接口
2.3.1 契约
2.3.2 错误处理
2.4 函数对象和lambda表达式
2.4.1 C++lambda的基本语法
2.4.2 捕获子句
2.4.3 为lambda表达式分配C函数指针
2.4.4 Lambda类型
2.4.5 lambda表达式和std::function
2.4.6 泛型lambda
2.5 总结
第3章 分析和度量性能
3.1 渐进复杂度和大O符号
3.1.1 增长率
3.1.2 均摊时间复杂度
3.2 度量什么?该如何度量?
3.2.1 性能特征
3.2.2 运行时间的提升
3.2.3 性能计数器
3.2.4 最佳实践:性能测试
3.3 了解代码和热点
3.3.1 插桩型剖析器
3.3.2 采样型剖析器
3.4 微基准测试
3.4.1 阿姆达尔定律
3.4.2 微基准测试的隐患
3.4.3 微基准测试实例
3.5 总结
第4章 数据结构
4.1 计算机内存的特性
4.2 标准库容器
4.2.1 序列式容器
4.2.2 关联式容器
4.2.3 容器适配器
4.3 使用视图
……
第5章 算法
第6章 范围和视图
第7章 内存管理
第8章 编译时编程
第9章 Utilities基础
第10章 代理对象和惰性求值
第11章 并发
第12章 协程和惰性生成器
第13章 用协程进行异步编程
第14章 并行算法