倒计时两天!70多个代码示例揭秘,C++高级课程即将启动

发表时间: 2024-01-18 20:17

从语法的繁琐到内存管理的复杂性,C++ 似乎从来都不是一门让人省心的语言。虽然争议不断,但开发者似乎对它总是情(爱)有(恨)独(交)钟(加)。

如果你想深入了解 C++,掌握其精髓,不妨来看看由高端 IT 教育平台 Boolan 打造的 C++经典课程《C++性能优化高端培训》全直播课程即将开班,届时将由知名 C++技术专家吴咏炜老师亲自授课。

该课程包含了超过 70 个示例程序,全面展示了 C++的各个方面,能够帮助学员提升 C++性能方面的能力,通过实际代码解决如容器的查找开销、伪共享、内存池等实际性能问题。

课程简介

C++, 作为一门多范式的通用编程语言,适用的领域非常广泛。要对 C++ 程序进行性能优化,牵涉到的方方面面也非常多。本课程就是以现代 C++ 程序为中心,讨论如何对 C++程序进行优化。课程中有跟语言强相关的内容,也有跟语言关系较少、但在实践中经常伴随C++ 程序出现的问题。
总课时20课时(每课时50分钟)
  • 周末班:共10天,每天2课时,每周六、日 晚20:00-21:40
  • 具体日期:2024年1月20日、21日、27日、28日;2月3日、4日、24日、25日;3月2日、3日

培训讲师

国内知名 C++专家,曾任英特尔亚太研发中心资深系统架构师,近 30 年 C/C++系统级软件开发和架构经验。专注于 C/C++ 语言(包括 C++98/C++11/14/17/20)、软件架构、性能优化、设计模式和代码重用。对于精炼、易于维护的代码和架构有着不懈的追求,对开源平台(GNU/Linux)有深入的理解。长期担任资深技术教练,涉及 C++、软件架构、安全软件开发、开源软件等多方面。

课程大纲


基础概念部分——计算机体系架构和性能

  • 硬件:存储层次体系、处理器的乱序执行和流水线、并发(锁)
  • 软件:系统调用开销、编译器优化、语言抽象性
基本概念——C++简介
  • 为什么要使用 C++
  • 如何学习 C++
  • 内存管理和对象的生命周期:栈、堆、RAII、其他生命周期
测试方法——性能测试基础
  • 性能测试中的问题
  • 时间测量
  • 编译器的干扰
  • 处理器的干扰
  • 防优化技巧
测试方法——性能测试方法
  • 性能分析器
  • gprof 和 gperftools
  • 两种性能测试方法
  • perf
  • 火焰图
测试方法-性能分析和性能优化
C++ 基本构件分析
  • 函数、虚函数和函数对象
  • string
  • 栈上对象、堆上对象和移动语义
  • 标准容器的性能:序列容器-vector、deque、list、forward_list
  • 标准容器的性能:关联容器-map、multimap、set、multiset
  • 标准容器的性能:无序关联容器-unordered_map、unordered_multimap、unordered_set、unordered_multiset
array
C++ 高级技巧和性能分析
  • 模板:基本语法概念、泛型算法、内联和排序、二进制膨胀问题
  • 智能指针:unique_ptr、shared_ptr
  • 视图类型:string_view、span、ranges
  • 编译期计算:利用模板参数进行计算、编译期类型推导、SFINAE、constexpr变量和 constexpr函数、if constexpr、变参模板
  • 返回对象和异常:返回对象、返回值优化、异常的好处和开销
  • “替换”类型和错误处理:any、optional、variant、标准库的错误处理、outcome
  • 并发:进程和线程、thread 和 future、mutex、内存模型、atomic、多线程优化、并发对接口的冲击、并行、异构计算
  • 异步编程和协程:消息循环和异步编程初探、网络程序和异步编程、生成器、常见协程库
通用优化方法
  • 工程和构建:编译选项、内联、PGO 和 LTO
  • 反汇编:编译器、godbolt.org
  • 循环优化:对象传递的方式
  • 控制流优化:减少不必要的虚函数调用
  • 内存优化:结构体、不要不必要地使用堆上内存、分配优化(内存池、缓存问题)
  • 算术表达式优化
  • 输入输出优化
  • 算法优化
  • 不写无必要的优化
  • 开源软件:大教堂和小市集
  • 结束语

客户好评


吴咏炜老师的《C++性能优化高端培训》课程是 Boolan技术赋能培训的品牌课程,在华为、博世西门子、银科、大疆等很多著名企业内训都获得高度认可,得到参训学员一致好评。


吴老师讲的一些实践案例可以让我在性能调优方面少走弯路,对性能和代码简洁有更深的理解。

这门课给了我们很好的优化方法、参考模板和技巧,可以应用到实际工作中,相信对我们正在开发的系统性能提升77有很大帮助。

吴老师对C++的理解非常深入,性能优化讲得也很透彻,尤其是内存优化、编译器优化、C++性能常见的坑等让我印象很深,让我更进一步地把握一些调优技巧。