从语法的繁琐到内存管理的复杂性,C++ 似乎从来都不是一门让人省心的语言。虽然争议不断,但开发者似乎对它总是情(爱)有(恨)独(交)钟(加)。
如果你想深入了解 C++,掌握其精髓,不妨来看看由高端 IT 教育平台 Boolan 打造的 C++经典课程《C++性能优化高端培训》全直播课程即将开班,届时将由知名 C++技术专家吴咏炜老师亲自授课。
课程简介
周末班:共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++ 内存管理和对象的生命周期:栈、堆、RAII、其他生命周期
性能测试中的问题 时间测量 编译器的干扰 处理器的干扰 防优化技巧
性能分析器 gprof 和 gperftools 两种性能测试方法 perf 火焰图
函数、虚函数和函数对象 string 栈上对象、堆上对象和移动语义 标准容器的性能:序列容器-vector、deque、list、forward_list 标准容器的性能:关联容器-map、multimap、set、multiset 标准容器的性能:无序关联容器-unordered_map、unordered_multimap、unordered_set、unordered_multiset
模板:基本语法概念、泛型算法、内联和排序、二进制膨胀问题 智能指针: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++性能常见的坑等让我印象很深,让我更进一步地把握一些调优技巧。