Logo
☆☆☆☆☆
0.0
Advanced
50h

C++ 高性能编程

本课程聚焦于区分专业C++开发者与初学者的一个关键方面,即能够从上到下理解代码,并深入掌握其底层实际运行机制。通过实例和练习,我们将帮助你掌握成为顶尖C++开发者所需的技能,使你能够应对最严苛的性能挑战。 课程从性能分析、内存管理技术、高效的并发处理以及现代C++标准下的高级模板应用开始。你将学会如何对代码进行精细化调优,以满足高性能应用的需求,确保在高负载下依然保持流畅运行。 完成本课程后,你将具备编写高效、高性能代码的能力。你将获得优化内存使用和实现高级编程技巧的实战经验。这些知识将使你脱颖而出,成为一名出色的C++开发者,能够构建更高效的程序,并开拓新的职业发展机会。

15 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
C++ 高性能编程
本课程聚焦于区分专业C++开发者与初学者的一个关键方面,即能够从上到下理解代码,并深入掌握其底层实际运行机制。通过实例和练习,我们将帮助你掌握成为顶尖C++开发者所需的技能,使你能够应对最严苛的性能挑战。 课程从性能分析、内存管理技术、高效的并发处理以及现代C++标准下的高级模板应用开始。你将学会...

WHAT YOU'LL LEARN

熟练识别并解决C++代码中的性能瓶颈

Content

15 Lessons • 0 Quizzes • 0 Challenges

入门
  1. 1

    课程简介

  2. 2

    课程内容与先修要求

  3. 3

    Google Test 和 Google Benchmark 库

C++ 简介
  1. 1

    简介

  2. 2

    为什么选择C++?

  3. 3

    C++ 的重要特性

  4. 4

    C++ 与其他语言的比较

  5. 5

    非性能相关的 C++ 语言特性

  6. 6

    非性能相关的 C++ 语言特性(续)

  7. 7

    摘要:C++ 简介

  8. 8

    测验:C++入门

编译时编程
  1. 1

    简介

  2. 2

    模板元编程简介

  3. 3

    模板创建

  4. 4

    类型特性

  5. 5

    使用常量表达式编程

  6. 6

    if constexpr 语句

  7. 7

    与运行时多态的比较

  8. 8

    在编译时检查编程错误

  9. 9

    约束与概念

  10. 10

    约束与概念的语法概述

  11. 11

    元编程的实际应用案例 I

  12. 12

    元编程的现实应用案例 II

  13. 13

    总结:编译时编程

  14. 14

    测验:编译时编程

C++ 核心技术
  1. 1

    简介

  2. 2

    使用 auto 关键字进行自动类型推导

  3. 3

    使用 auto 声明变量

  4. 4

    指针的常量传播

  5. 5

    移动语义详解

  6. 6

    资源获取与五法则

  7. 7

    命名变量与右值

  8. 8

    默认移动语义与零规则

  9. 9

    将 && 修饰符应用于类成员函数

  10. 10

    尽可能使用值传递

  11. 11

    测验:核心技巧 I

  12. 12

    使用错误处理设计接口

  13. 13

    类不变式

  14. 14

    错误处理

  15. 15

    可恢复的运行时错误

  16. 16

    函数对象和lambda表达式

  17. 17

    在捕获中初始化变量

  18. 18

    修改 Lambda 成员变量

  19. 19

    将 Lambda 表达式转换为 C 函数指针

  20. 20

    实现一个简单的按钮类,使用 std::function

  21. 21

    通用lambda表达式

  22. 22

    摘要:C++ 核心技术

  23. 23

    测验:核心技巧 II

核心工具类
  1. 1

    简介

  2. 2

    使用 std::optional 表示可选值

  3. 3

    固定大小的异构集合

  4. 4

    元组解包

  5. 5

    可变模板参数包

  6. 6

    动态大小的异构集合

  7. 7

    使用 Variant 实现异构集合

  8. 8

    实际应用示例 1

  9. 9

    真实世界案例 2

  10. 10

    摘要:常用工具

  11. 11

    测验:常用工具

分析与性能度量
  1. 1

    简介

  2. 2

    渐近复杂度与大 O 表示法

  3. 3

    插入排序的时间复杂度

  4. 4

    摊销时间复杂度

  5. 5

    要测量什么以及如何测量?

  6. 6

    性能特性

  7. 7

    性能计数器

  8. 8

    了解你的代码和热点区域

  9. 9

    微基准测试

  10. 10

    一个微基准测试示例

  11. 11

    摘要:性能分析与度量

  12. 12

    测验:性能分析与度量

代理对象与延迟求值
  1. 1

    简介

  2. 2

    介绍惰性求值与代理对象

  3. 3

    使用代理对象避免创建对象(concept)

  4. 4

    推迟平方根计算

  5. 5

    实现 LengthProxy 对象

  6. 6

    创意的运算符重载与代理对象

  7. 7

    摘要:代理对象与延迟求值

  8. 8

    测验:代理对象与惰性求值

数据结构
  1. 1

    简介

  2. 2

    计算机内存的特性

  3. 3

    标准库容器

  4. 4

    双端队列、列表、前向列表和基本字符串

  5. 5

    关联容器

  6. 6

    哈希与相等性

  7. 7

    容器适配器

  8. 8

    使用视图

  9. 9

    一些性能考虑

  10. 10

    并行数组

  11. 11

    通过使用并行数组缩小需要遍历的数据量

  12. 12

    总结:数据结构

  13. 13

    测验:数据结构

并发
  1. 1

    简介

  2. 2

    理解并发的基础知识

  3. 3

    数据竞争

  4. 4

    C++中的并发编程

  5. 5

    并发编程中的高级概念

  6. 6

    并发编程中的错误处理最佳实践

  7. 7

    C++20 中的其他同步原语

  8. 8

    使用信号量进行通信和资源计数

  9. 9

    C++中的原子支持

  10. 10

    使用 shared_ptr 和原子引用的多线程编程

  11. 11

    C++ 内存模型

  12. 12

    无锁编程

  13. 13

    性能指南

  14. 14

    总结:并发

  15. 15

    测验:并发

算法
  1. 1

    简介

  2. 2

    介绍标准库算法

  3. 3

    解决日常问题

  4. 4

    更多日常问题

  5. 5

    迭代器和范围

  6. 6

    迭代器类别

  7. 7

    标准算法的特点

  8. 8

    使用C++算法的优势

  9. 9

    编写和使用泛型算法

  10. 10

    最佳实践

  11. 11

    使用标准算法替代原始的 for 循环

  12. 12

    摘要:算法

  13. 13

    测验:算法

协程与惰性生成器
  1. 1

    简介

  2. 2

    C++协程简介

  3. 3

    在CPU上执行子程序和协程

  4. 4

    无栈协程与有栈协程

  5. 5

    C++中的协程

  6. 6

    一个最小但完整的示例

  7. 7

    避免悬空引用

  8. 8

    生成器

  9. 9

    解决生成器问题

  10. 10

    使用生成器的真实世界示例

  11. 11

    总结:协程与惰性生成器

  12. 12

    测验:协程与惰性生成器

范围和视图
  1. 1

    简介

  2. 2

    范围库的提出动机

  3. 3

    理解范围库中的视图

  4. 4

    范围视图:延迟求值、非修改性迭代与实例化

  5. 5

    标准库中的视图

  6. 6

    摘要:范围与视图

  7. 7

    测验:范围与视图

使用协程进行异步编程
  1. 1

    简介

  2. 2

    可等待类型再探

  3. 3

    实现一个简单的任务类型(第一部分)

  4. 4

    实现一个基础的任务类型(第二部分)

  5. 5

    同步等待任务完成

  6. 6

    封装基于回调的 API

  7. 7

    使用 Boost.Asio 的并发服务器

  8. 8

    摘要:使用协程进行异步编程

内存管理
  1. 1

    简介

  2. 2

    计算机内存

  3. 3

    进程内存

  4. 4

    内存中的对象

  5. 5

    内存对齐

  6. 6

    填充

  7. 7

    内存所有权

  8. 8

    智能指针

  9. 9

    小对象优化

  10. 10

    自定义内存管理

  11. 11

    自定义内存分配器

  12. 12

    使用多态内存分配器

  13. 13

    摘要:内存管理

  14. 14

    测验:内存管理

并行算法
  1. 1

    简介

  2. 2

    并行性的重要性

  3. 3

    实现并行的 std::transform

  4. 4

    分治法

  5. 5

    实现并行的 std::count_if() 和 std::copy_if()

  6. 6

    方法一:使用同步写入位置

  7. 7

    方法二:将算法分为两个部分

  8. 8

    并行标准库算法

  9. 9

    无序策略

  10. 10

    并行算法的新增与改进

  11. 11

    基于索引的 for 循环并行化

  12. 12

    总结:并行算法

  13. 13

    测验:并行算法

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)