C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理
分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 1.课程安排与开发环境搭建: cmake 与 git 入门 2.现代 C++ 入门:常用 STL 容器, RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 C++ 5.C++11 起的多线程编程:从 mutex 到无锁并行 6.并行编程常用框架: OpenMP 们来点(相对)简单的作为饭后甜点吧! C++98 :令人头疼的内存管理 • 在没有智能指针的 C++ 中,我们只能手 动去 new 和 delete 指针。这非常容易出 错,一旦马虎的程序员忘记释放指针,就 会导致内存泄露等情况,更可能被黑客利 用空悬指针篡改系统内存从而盗取重要数 据等。 RAII 解决内存管理的问题: unique_ptr • 似曾相识的情形……是的,和我们刚刚提 放时。比如:指向窗口中上一次被点击的元素。 5. 初学者可以多用 shared_ptr 和 weak_ptr 的组合,更安全。 shared_ptr 管理的对象生命周期,取决于所有引用中,最长寿的那一个。 unique_ptr 管理的对象生命周期长度,取决于他所属的唯一一个引用的寿命 。 那是不是只要 shared_ptr 就行,不用 unique_ptr 了? • 可以适当使用减轻初学者的压力,因为他的行为和0 码力 | 96 页 | 16.28 MB | 1 年前3新一代分布式高性能图数据库的构建 - 沈游人
新一代分布式高性能图数据库的构建 北京海致星图科技有限公司 2023-06-18 沈游人 数据库与大数据专场 海致简介—企业级知识图谱开创者 专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 高性能图计算是高性能计算、图计算两项技术融合产生的新的技术方向,满足人们对更大规模、更复 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph ,培育世界级的图计算软硬件 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 海致获得“ 2021 年 CCF 科学技术奖科技进步卓越奖” CCF 以终为始,以行为知,这一项目从图计算所面临的挑战出发,解决了大规模图数据所产生 的建模能力不足、结构知识难用、巨量数据难算等技术挑战,实现了大规模复杂异质图数 据的表示学习模型、语义推荐和风险管理关键技术,构建了完整的兼具理论指导与应用检 验的大规模图数据智能分析系统与平台,满足了大数据时代从复杂异质图数据中进行知识 发现的重要需求。最终获得国内外授权发明专利 43 项, CCF -A 类论文0 码力 | 38 页 | 24.68 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南
现代 CMake 模块化项目管理指南 彭于斌( @archibate ) 课件 & 源码: https://github.com/parallel101/course 往期录播: https://space.bilibili.com/263032155 找不到头文 件怎么办呀 CMake Cookbook 小彭老师建议 : ~~-·~·~-·~ -~·-·~·- 第一章:文件 / 1/lib/cmake/Qt5” 设置。 举例, Windows 系统, Qt5 • 例如我把 Qt5 安装到了 D:/Qt5.12.1 。 • 首先找到他里面的 Qt5Config.cmake 文件所在位置(可以用文件管理器的“搜索”功能)。 • 假如你找到该文件的位置是 D:/Qt5.12.1/msvc2017/lib/cmake/Qt5/Qt5Config.cmake ,那 么请你设置变量 Qt5_DIR 为 阶段,可以从命令行设置(注意要加引号): • cmake -B build -DQt5_DIR=”D:/Qt5.12.1/msvc2017/lib/cmake/Qt5” • (2) 全局启用。右键“我的电脑” ->“ 管理” ->“ 高级”添加一个环境变量 Qt5_DIR 值为 D:/Qt5.12.1/msvc2017/lib/cmake/Qt5 ,然后重启 Visual Studio 。这样以后你每次构建任 何项目,0 码力 | 56 页 | 6.87 MB | 1 年前3谈谈MYSQL那点事
互联网常用数据库市场占有率 互联网通用架构体制 谈谈 MySQL 数据库那些事 MySQL MySQL 基本介绍 基本介绍 MySQL MySQL 优化方式 优化方式 MySQL MySQL 技巧分享 技巧分享 Q Q & & AA MyISAM MyISAM 特点 特点 MyISAM vs MyISAM vs InnoDB InnoDB • 数据存储方式简单,使用 Windows) Windows) • 访问速度飞快,是所有 访问速度飞快,是所有 MySQL MySQL 文件引擎中速度最快的 文件引擎中速度最快的 • 不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB Space 的方式来进行数据存储 的方式来进行数据存储 (ibdata1, ib_logfile0) (ibdata1, ib_logfile0) • 支持 事务、外键约束等数据库特性 支持 事务、外键约束等数据库特性 • Rows level lock , Rows level lock , 读写性能都非常优秀 读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问0 码力 | 38 页 | 2.04 MB | 1 年前3Zadig 产品使用手册
+ Jenkins + 脚本化 运行效率低,管理维护成本高 方案局限性大,安全性风险高 无法支持敏捷交付模式 支持从需求到发布全流程敏捷交付。尤其面向 多服务并行部署发布,云原生构建环境和运行 环境,基础设施对接及企业级 SSO/ 权限管理 等 运维管理类平台 蓝鲸 Rainbond KubeSphere KubeVela 面向资源管理的运维工具集 面向开发者,需结合 CI/CD Jenkins 或 CI/CD 工具 搭建流程串接胶水平台 局限性大扩展性差 内部推广难度极高 做完后价值难被证明 通用性、可扩展性、技术先进性强,可以灵活 广泛接入各种技术和业务场景 基于代码管理的 DevOps 方案 Gitee 平台 GitLab 平台 局限性大、全流程安全性低 维护成本高 支持多个服务并行构建部署、产品级发布,可 灵活安全接入多个代码仓及周边工具链 开发 Zadig 程制定上、各方能力受限、无法 快速响应市场需求 层级越高、对产研状态越模糊 管理低效、延误战机 少量配置、快速拉起环境、稳定 性有保障、减少 90% 手工操作、 赋能开发、员工成就感高 碎片化:手工协作 + 复杂工具链 工程化:一个平台 一键发布 工作流、环境配置自动更新、高 效调试、消除手工操作、精准快 速迭代、研发生产力 / 幸福感提 升 自助运行、系统化管理、自动化 程度高、测试有效性提升、质量 有保障、横向赋能、技能提升0 码力 | 52 页 | 22.95 MB | 1 年前3基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺
转 CSV 工具 • Unqlite - 单文件非关系型数据库 • Wisecondor - 生物信息 CNV 分析 • mdsn - A Multi-address DSN(Data Source Name) parser. TDengine 应用开发组 • Python/Rust/Go 连接器 • 数据可视化 • 数据库运维工具 • 第三方数据源接入 • BI 系统接入 https://taosdata TDengine: 时序数据库 TDengine 是一款开源、云原生的时序数据库( Time Series Database ),专为物联网、工业互联网、金融、 IT 运维监控等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等 系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个极简的时序数据处理平台。 采用关系型数据库模型 需要建库、建表, 流计算 • 数据订阅 • 集群、高可用 高可靠、线性扩展 + 专业技术服务 • 边云数据复制 • 跨云 / 异地数据复制 • 增量备份 • 多级存储 • 工业数据接入 全托管时序数据 管理云服务平台 • 全托管服务 • VPC 对等连接 • 多云部署( AWS/Azure/ GCP) CONTENTS 自 我 介 绍 T D e n g i n e t a o s X0 码力 | 29 页 | 2.26 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串
表达式知多少 6. 通过实战案例来学习 STL 算法库 7. C++ 标准输入输出流 & 字符串格式化 8. traits 技术,用户自定义迭代器与算法 9. allocator ,内存管理与对象生命周期 ASCII 码 第 1 章 计算机如何表达字符 https://zh.wikipedia.org/wiki/ASCII 计算机如何表达字符 • 众所周知,计算机只能处理二进制 hex 选项。 • 但是他的输出会保存到一个字符串里。 • 调用成员函数 .str() 就能取出这个字符串了。 • 之后这个字符串就可以用作其他用途,比如 printf 打印,或者用于查询数据库,都没问题。 • 这里比较无聊,最后还是直接输出到了 cout 。 stringstream 也可以取代 stoi • 刚刚展示了 stringstream 模仿 cout 的方法。 • stringstream0 码力 | 162 页 | 40.20 MB | 1 年前3Zadig 面向开发者的云原生 DevOps 平台
部署预发环境 xN 部署生产环境 xN 部署 / 灰度上线 xN 监控 / 告警 xN 版本归档 xN 交付追踪 xN 数据度量 xN 服务、工单管理 事件、缺陷管理 想 法 用 户 运行阶段 需求阶段 研发阶段 现代软件交付挑战:开发 5 分钟,上线 2 小时 服务一:设计 | 代码编写 | 构建 | 服务全生命周期而非只关注代码 ● 每天多次提交提早验证 Zadig 采用「云原生产品级交付」设计理念 数字化产研协同 • 环境 - 统一开发者协作平面 • 工作流 - 统一交付变更通道 • 异构支持 - 统一产研运管理平面 重视开发者体验,工程师不再做脏活累活 传统 DevOps 体系 Zadig 云原生 DevOps 平台 高人效 低人效 低人效 / 低质量 / 低效率 / 高成 本: 人淹没在系统的海洋里,无数平台手工切换 研发透明化:不同项目清晰可见的效率、质量、进度 进度管理:根据团队客观数据,预测和确定项目规划 迭代进度一目了然 项目从无到有可核算 管理有数据科学依据 解放管理,更多时间花在 业务创新 平台运维 业务压力大,能力建设缓慢: • 大量工作花在工具链维护 • 项目间依赖复杂,环境管理难 • 交付版本依赖工单,发布风险高 • 公共资源 / 业务资源利用率低 赋能多业务:一个平台解决了多异构项目的管理和规范 团队高效协作0 码力 | 59 页 | 81.43 MB | 1 年前3Rust与算法 - 谢波
中国大会第十届 Rust 处于起步阶段 中文圈学习资料或书籍少,有部分是翻译国外产品,能 不能中国人向国外输出作品 Rust 缺少学习资源 Rust 未来大有可为 Rust 在操作系统,数据库,各种框架和工具上应用范围 广 写作动机 当情况不明时,抱着一个纯粹的目标干事就行了,其他 的留给时间检验。不懂就学,技术写作更像一种共创, 要反复总结和修改 ( 费曼学习法 ) 。 写作本书给我的启示0 码力 | 28 页 | 3.52 MB | 1 年前3CeresDB Rust 生产实践 任春韶
自研存储引擎 1.0.0 版本发布 查询性能优化 Prometheus 协议支持 基于 InfluxDB 单机引擎研发 分布式方案 OpenTSDB 协议 内存时序数据库 存储计算分离架构 分级存储 永久代 CeresDB 开源 2022.6 2023.3 开源版本 CeresDB 开始研 发 2023.6 1.2.2 版本发布0 码力 | 22 页 | 6.95 MB | 1 年前3
共 27 条
- 1
- 2
- 3