C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南现代 CMake 进阶指南 by 彭于斌( @archibate ) 往期录播: https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码: https://github.com/parallel101/course 为什么要学习现代 CMake ? • 现代 CMake 指的是 CMake 3.x 。 • 古代 CMake 指的是 CMake0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南现代 CMake 模块化项目管理指南 彭于斌( @archibate ) 课件 & 源码: https://github.com/parallel101/course 往期录播: https://space.bilibili.com/263032155 找不到头文 件怎么办呀 CMake Cookbook 小彭老师建议 : ~~-·~·~-·~ -~·-·~·- 第一章:文件 /0 码力 | 56 页 | 6.87 MB | 1 年前3
《深入浅出MFC》2/e发现该书如获至宝。数月前购买了深入浅出MFC,并利用闲暇时间翻阅学习(包括如厕 时间... )。 我的学习曲线比较不同,我比较倾向于了解事情的因,而不是该如何做事情。比方说,「应 该使用MFC 的哪个类别」或「要改写哪个虚拟函数」,对我而言还不如「CWinApp 何时何 地调用了我的什么函数」或「CDocManager 到底做了什么」来得有趣(嗯,虽说是一样重 要啦)。这些「事情的因」在您的书中有大量详细的介绍。 constructor 析构式 destructor 运算子 operator 改写 override 多载 overloading,亦有他书译为「过荷」 封装 个图素换到300dpi 上才不过两英寸多一点。 我们可以在这个版本中学习以AppWizard 制作骨干,并大量运用ClassWizard 为我 们增添消息处理函数;也可以学习如何设计Document,如何改写CView::OnDraw 和 CDocument::Serialize,这是两个极端重要之虚拟函数。 Scribble Step2-修改使用者接口(第9章):这个版本变化了菜单,使程序多0 码力 | 1009 页 | 11.08 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串的拷贝构造 函数)所以 s1 被修改时, s2 仍保持旧的值 “ hello” 不变。 • sv1 和 sv2 都是指向 s1 的弱引用,所以 s1 被改 写时, sv1 和 sv2 看到的字符串也改写了。 强弱引用の安全守则 • 强引用和弱引用都可以用来访问对象。 • 每个存活的对象,强引用有且只有一个。 • 但弱引用可以同时存在多个,也可以没有。 • 强引用销毁时,所有弱引用都会失效。如果强引用销毁以后,仍存 弱引用失效案例 • 被引用的 string 本体修改的时候,原先生成的 string_view 会失 效(因为 ptr 和 len 改变了)。 • 因此建议创建 string_view 以后,不要改写原字符串。 举例:常见容器及其相应的弱引用 强引用 弱引用 string string_view wstring wstring_view vectorspan unique_ptr 0 码力 | 162 页 | 40.20 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming不是写死的,而是动态从内存中读取出来的。 • 普通函数调用的目的地址(或偏移量)写死在指令里, CPU 可以自动预取这个地址的指令。 • 但是函数指针的调用,因为这个目的地址是需要计算得出的,或者说他存在内存中,随时可 能被改写, CPU 难以预判执行到 call [pointer] 的时候这个指针会指向哪里,无法预取。 • CPU 伺候函数指针的方法和条件跳转一样,也是根据历史记录总结经验,多次执行后 CPU 会根0 码力 | 47 页 | 8.45 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程针传入局部变量的引用,不就好了。 • 这样,在 cudaDeviceSynchronize() 以后 ,应该可以获取数据了吧? • 结果令人失望,尽管给 kernel 传了指向 ret 的指针,但 ret 的值并没有被改写成 功。 分析返回的错误代码 • CUDA 的函数,如 cudaDeviceSynchronize() 。 • 他们出错时,并不会直接终止程序,也不会抛出 C++ 的异常,而是返回一个错误代码,告诉你出的具体什么0 码力 | 142 页 | 13.52 MB | 1 年前3
现代C++ 教程:高速上手C++11/14/17/20及其相关 对字符串内容进行匹配的最常见手段就是使用正则表达式。可惜在传统 C++ 中正则表达式一直没 有得到语言层面的支持,没有纳入标准库,而 C++ 作为一门高性能语言,在后台服务的开发中,对 URL 资源链接进行判断时,使用正则表达式也是工业界最为成熟的普遍做法。 一般的解决方案就是使用 boost 的正则表达式库。而 C++11 正式将正则表达式的的处理方法纳入 标准库的行列,从语言级上提供了标准的支持,不再依赖第三方。 2:现代 C++ 的最佳实践 这篇附录我们来简单谈一谈现代 C++ 的最佳实践。总的来说,笔者关于 C++ 的最佳实践相关的 思考主要吸收自《Effective Modern C++》和 《C++ 风格指南》。在这篇附录里将简单讨论、并使用实 际例子来阐明的方法,介绍一些笔者个人的、不是随处可见的、非常识性的最佳实践,并如何保证代码 的整体质量。 常用工具 TODO: 代码风格 TODO:0 码力 | 83 页 | 2.42 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理io/) - [C++ 并发编程实战 ](https://www.bookstack.cn/read/Cpp_Concurrency_In_Action/README.md) - [ 因特尔 TBB 编程指南 ](https://www.inf.ed.ac.uk/teaching/courses/ppls/TBBtutorial.pdf) - [ 并行体系结构与编程 (CMU 15-418)](https://www0 码力 | 96 页 | 16.28 MB | 1 年前3
From Eager Futures/Promises to Lazy Continuations: Evolving an Actor Library Based on Lessons Learned from Large-Scale Deploymentsnamespace http { templatevoid Post(std::string url, std::string body, K k) { void* data = new K(std::move(k)); ... http_post(url, body, data, +[](long code, const char* body, void* data) namespace http { template void Post(std::string url, std::string body, K k) { void* data = new K(std::move(k)); ... http_post(url, body, data, +[]( long code, const char* body, void* data) namespace http { template void Post(std::string url, std::string body, K k) { void* data = new K(std::move(k)); ... http_post(url, body, data, +[](long code, const char* body, void* data) 0 码力 | 264 页 | 588.96 KB | 6 月前3
Conan 1.9 Documentationof the 1.9.0 version: $ conan inspect Poco/1.9.0@pocoproject/stable ... name: Poco version: 1.9.0 url: http://github.com/pocoproject/conan-poco license: The Boost Software License 1.0 author: None description: 606fdb601e335c2001bdf31d478826b644747077 BuildID: None Remote: conan-center=https://conan.bintray.com URL: http://github.com/conan-community/conan-openssl License: The current OpenSSL licence is an 'Apache 09378ed7f51185386e9f04b212b79fe2d12d005c BuildID: None Remote: conan-center=https://conan.bintray.com URL: http://github.com/pocoproject/conan-poco License: The Boost Software License 1.0 Recipe: Cache Binary:0 码力 | 470 页 | 3.05 MB | 1 年前3
共 91 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10













