现代C++ 教程:高速上手C++11/14/17/20
现代 C++ 教程:高速上手 C++11/14/17/20 欧长坤 (hi[at]changkun.de) 最后更新 2023 年 5 月 7 日- ff6ee89 注意 此 PDF 的内容可能过期,请检查本书网站以及 GitHub 仓库以获取最新内容。 版权声明 本书系欧长坤著,采用“知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND)”进 行许可 的黑魔法,但这些魔法毕竟有限,不适合希望进阶学习现代 C++ 的读者,本书的定位系现代 C++ 的快速上手。当然,希望进阶学习的读者可以使用本书来 回顾并检验自己对 现代 C++ 的熟悉度。 本书目的 本书号称『高速上手』,从内容上对二十一世纪二十年代之前产生 C++ 的相关特性做了非常相对全 面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容。这些 特性并不需要全部掌握,0 码力 | 83 页 | 2.42 MB | 1 年前3QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+
业务高速发展下的 互联网金融系统架构演变 演讲者/张现双� 自我介绍 张现双,宜人贷研发架构师,移动后台负责人,负责 移动后台的技术研发和系统架构设计,并随着业务增长持续 不断的进行性能优化和系统架构升级。 从事过研发、运维、dba等工作,在应对互联网系统流 量、并发、安全、一致性问题等方面有一些经验。 翻译出版专著:《可伸缩架构:面向增长应用的高可用》0 码力 | 42 页 | 19.96 MB | 1 年前3openEuler 22.03-LTS 技术白皮书
框架,提供基础的边云协同推理、联邦学习、增量学习等能力,并 实现了基础的模型管理、数据集管理等,使能开发者快速开发边云 AI 协同特性,以及提升用户边云 AI 特性的训练 与部署效率。 应用场景 可应用智能制造、城市交通、高速收费稽查、智慧加油站、医疗影像识别、智慧园区等广泛的边云协同场景。 openEuler 22.03-LTS 技术白皮书 13 openEuler 22.03-LTS 技术白皮书 12 05/ 内核创新 度学习场景同时需要算力和内存的支持。内存容量成为了制约业务和算力的问题。 内存分级扩展通过 DRAM 和低速内存介质,如 SCM、AEP,以及 RDMA 远端内存等形成多级内存,通过内存自动调度 让热数据在 DRAM 高速内存区中运行,让冷数据交换到低速内存区,从而增加内存容量,保证核心业务高效平稳运行。该特 性适用于内存使用量大,且使用相对不频繁的应用进程上,在这些场景中的效果好、收益大,实测等成本条件下 MySQL Data Plane Development Kit,是 Intel 提供的一套用户态库,为用户在多个平台提供一套高速处理数据 报文的编程接口,为通信领域,云数据中心等网络或存储应用场景提供高性能加速。 上图绿框部分为 DPDK 在软件栈中所处位置。 DPDK 提供 lib 库为用户提供高速转发报文接口,PMD 是各个厂家网卡 的用户态驱动(鲲鹏芯片板载网口对应 hns3 PMD)。 APP openss0 码力 | 17 页 | 6.52 MB | 1 年前3Greenplum数据库架构分析及5.x新功能分享
先进的查询优化器 多态存储系统 客户端访问 ODBC, JDBC, OLEDB, etc. 核心MPP 架构 并行数据流引擎 高速软数据交换机制 MPP Scatter/Gather 流处理 在线系统扩展 任务管理 服务 加载 & 数据联邦 高速数据加载 近实时数据加载 任意系统数据访问 存储 & 数据访问 混合存储引擎(行存&列存) 多种压缩,多级分区表 索引(B树,位图,GiST) 主节点和从主节点,主节点负责协调整个集群 • 一个数据节点可以配置多个节点实例(Segment Instances) • 节点实例并行处理查询(SQL) • 数据节点有自己的CPU、磁盘和 内存(Share nothing) • 高速Interconnect处理持续 数据流(Pipelining) Interconnect Segment Host Segment Instance Segment Instance Segment Parquet 格式 6月 5月 10月 9月 8月 用户自定义数据存储格式 14 Pivotal Confidential–Inter nal Use Only 大规模并行数据加载 • 高速数据导入和导出 – 主节点不是瓶颈 – 10+ TB/小时/Rack – 线性扩展 • 低延迟 – 加载后立刻可用 – 不需要中间存储 – 不需要额外数据处理 • 导入/导出 到&从: –0 码力 | 44 页 | 8.35 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化
针对不同数据量大小的带宽测试(续) • 可见数据量较小时,实际带宽甚至超过了 理论带宽极限 42672 MB/s ! • 而数据量足够大时, 才回落到正常的带宽 。 • 这是为什么? CPU 内部的高速缓存 • 原来 CPU 的厂商早就意识到了内存延迟高,读写效率低 下的问题。因此他们在 CPU 内部引入了一片极小的存储 器——虽然小,但是读写速度却特别快。这片小而快的 存储器称为缓存( cache 如果有,则直接使用缓存中的数据。 • 这样一来,访问的数据量比较小时,就可以自动预先加 载到这个更高效的缓存里,然后再开始做运算,从而避 免从外部内存读写的超高延迟。 缓存的分级结构 查看高速缓存大小: lscpu • 可以看到我们 x86 电脑的缓存结构分为三级。 • 一级缓存分为数据缓存和指令缓存,其中数据缓存有 32 KB , 6 个物理核心每个都有一个,总共 192 KB + 1 。 • 因为执行完 a[i] = a[i] * 2 后不会立即被写回主内存,仍储存在 高速缓存里一段时间。这时紧接着执行的 a[i] = a[i] + 1 又用到 了 a[i] ,所以能够直接从缓存里获取 a[i] 的值。计算出 a[i] + 1 后又存到 a[i] ,这次也是先存到高速缓存里,不过当访问到 a[i + 12*1024*1024] 时,我们的缓存装不下了,不得不把之前存储0 码力 | 147 页 | 18.88 MB | 1 年前32021 中国开源年度报告
20 too”,2022 年 1 月,也不过是 2020 年第 25 月。看起来一切都没有变化,我们 依然在 COVID 之中。但是,从另一个角度来看,世界正在发生巨变, 我们所处的世界,正在高速朝着某个未知的方向前进。 对于中国开源而言,2021 年的关键词,应该是“助跑”。迹象已经 非常明显,工信部信息技术发展司发布了《“十四五”软件和信息技 术服务业发展规划》,就是一个典型的信号,开源领域即将起飞了。 6 Tex / LaTex 80.68% 7 R 69.64% 8 汇编语言 60.9% 9 PowerShell 60.65% 10 Kotlin 59.96% Rust 连续三年保持高速增长,增长率均超过 110%。 2021 年基础软件在国内热度持续走高,Verilog 也连续两年出现在了增速最快语言榜单中。 TypeScript 连续三年入选增速最快语言,其在 Gitee 新增开源项目领域分布的前五名与 2020 年相同,值得关注的是鸿蒙相关开源项目在 2021 年飞速增长, 新增项目数量占比在所有领域中排在了第六位,OpenHarmony 生态在开源两年后已经初具雏形并保持 了高速增长,后续的发展值得开发者们关注。 2021 中国开源年度报告 67 2.5 年度最受开发者关注的用户 排名 用户 用户主页 用户介绍 1 狂神说 https://gitee.com/kuangstudy0 码力 | 132 页 | 14.24 MB | 1 年前3Krita 5.2 マニュアル
JPG や WebP に代表される 非可逆圧縮形式 はデータが小さくて済みますが、 品質は低めで、特定の用途に向いています。非可逆すなわちファイル形式 がファイルサイズを小さくするために画像を劣化させ高速にしています。 PNG や GIF、BMP のような 可逆圧縮形式 は対照的でディスク上はかなり大き いですが、品質を維持するのに向いています。 それから、作業用に使うファイル形式である、Krita 新しいドキュメントを作る Pre-installed Python plugins ドッカー Dr. MinGW Debugger Filters HDR Display 画像分割 Import Animation 高速プレビュー Krita 4 プリセットバンドル概要 レイヤーとマスク Linux コマンドライン The List of Supported Tablets メインメニュー 数式入力 ポップアップパレット 描く速度による描線の太さの変化 マウス速度に"拡大縮小"機能を対応づけるために、グラフィックタブレット で圧力をシミュレートします。 スケールの決定には"2つのマウスイベント間の距離"を使用していま す。より高速に描画するほど、距離は大きくなります。 これは他の操作による"筆圧"入力には影響を与えない(拡大縮小・透明 度・回転など)ので、これらに関しては個別に対応づける必要がありま す。 しきい値 こ0 码力 | 1591 页 | 79.16 MB | 1 年前3Debian リファレンス v2.124
file is /usr/bin/file 上記で、ls は最近探索されましたが”file” は最近探索されていませので、”ls” は” ハッシュされた” つまりシェ ルには”ls” コマンドの場所を高速アクセスのために内部記録していると表示されます。 ティップ 項9.3.6を参照下さい。 1.6 Unix 的テキスト処理 Unix 的作業環境では、テキスト処理はテキストを標準テキスト処理ツールの連鎖パイプを通す行います。これは決 は”/lib/systemd/systemd” にシムリンクされて います。 ティップ あなたのシステム上の実際の init コマンドは”ps --pid 1 -f” コマンドで確認できます。 ティップ ブートプロセスを高速化する最新のティップは Debian wiki: BootProcessSpeedup を参照下さい。 Debian リファレンス 87 / 259 パッケージ ポプコン サイ ズ 説明 systemd 現代的な高帯域でレイテンシーの大きな WAN では、TCP のスループットは TCP バッファーサイズパラメーター を”TCP tuning” にある手順で調整することで最大化できます。今のところ現在の Debian のデフォールトは高速の 1G bps の FTTP サービスでつながっている私の LAN でも十分機能しています。 5.7 Netfilter インフラ Netfilter はLinux カーネルのモジュール (項30 码力 | 287 页 | 1.60 MB | 1 年前3鸟哥的 Linux 私房菜:基础学习篇 第四版
到输出单元。 Tips 为什么我们都会说,要加快系统性能,通常将内存容量加大就可以获得相当好的成效? 如同下图以及上面的说明,因为所有的数据都要经过内存的传输, 所以内存的容量如果太 小,数据高速缓存就不足~影响性能相当大啊!尤其针对 Linux 作为服务器的环境下!这点 要特别记忆喔! 综合上面所说的,我们会知道其实电脑是由几个单元所组成的,包括输入单元、 输出单元、 CPU 内部的控制单元、算数逻辑单元与内存五大部分。 因为CPU读取数据量有限制,因 此能够从内存中读写的数据也就有所限制。所以,一般32位的CPU所能读写的最大数据量, 大概就是4GB左右。 那么不同的x86架构的CPU有什么差异呢?除了CPU的整体结构(如第二层高速缓存、每次运 行可执行的指令数等)之外, 主要是在于微指令集的不同。新的x86的CPU大多含有很先进 的微指令集, 这些微指令集可以加速多媒体程序的运行,也能够加强虚拟化的性能,而且某 些微指令集更能够增加能源效率, 作费用也最高!主要是用于需要有高速计算的计划中。 例如:国防军事、气象预测、太 空科技,用在仿真的领域较多。详情也可以参考: 国家高速网络与计算中心 http://www.nchc.org.tw的介绍! 至于全世界最快速的前500大超级计算机,则请参 考:http://www.top500.org。 大型计算机(Mainframe Computer) 大型计算机通常也具有数个高速的CPU,功能上虽0 码力 | 1158 页 | 13.73 MB | 1 年前3鸟哥的Linux私房菜:基础学习篇 第四版
传输到输出单元。 Tips 为什么我们都会说,要加快系统性能,通常将内存容量加大就可以获得相当好的成效?如同下图以及上面的说 明,因为所有的数据都要经过内存的传输, 所以内存的容量如果太小,数据高速缓存就不足~影响性能相当大啊!尤 其针对 Linux 作为服务器的环境下!这点要特别记忆喔! 综合上面所说的,我们会知道其实电脑是由几个单元所组成的,包括输入单元、 输出单元、CPU 内部的控制单元、 CPU 的架构 2.1. 0.1 电脑:辅助人脑的好工具 - 23 - 本文档使用 书栈(BookStack.CN) 构建 那么不同的x86架构的CPU有什么差异呢?除了CPU的整体结构(如第二层高速缓存、每次运行可执行的指令数等)之 外, 主要是在于微指令集的不同。新的x86的CPU大多含有很先进的微指令集, 这些微指令集可以加速多媒体程序的 运行,也能够加强虚拟化的性能,而且某些微指令集更能够增加能源效率, !主要是 用于需要有高速计算的计划中。 例如:国防军事、气象预测、太空科技,用在仿真的领域较多。详情也可以参 考: 国家高速网络与计算中心http://www.nchc.org.tw的介绍! 至于全世界最快速的前500大超级计算 机,则请参考:http://www.top500.org。 大型计算机(Mainframe Computer)大型计算机通常也具有数个高速的CPU,功能上虽不及超级计算机,但0 码力 | 1057 页 | 14.60 MB | 1 年前3
共 265 条
- 1
- 2
- 3
- 4
- 5
- 6
- 27