绕过conntrack,使用eBPF增强 IPVS优化K8s网络性能0 码力 | 24 页 | 1.90 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人生活中无处不在的图 图分析技术分类 图查询 • 使用图数据库的查询语言进行点边搜索 图算法 • 中心性算法 • 社区算法 • 路径算法 • … 图深度学习 • 图嵌入 • 图卷积 • 图注意力网络 • 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 联 当前图的典型应用场景 路径识别 群体挖掘 节点识别 之间的传递过程和传递概率 图深度学习及其应用场景 图嵌入 • 将高维的图信息映射到低维向量中 • 通过图嵌入将客户关系表示为低维向量,可以结合其 他客户行为特征进行机器学习训练 图卷积神经网络 • 对图结构数据进行卷积计算 • 通过已有的企业数据,通过 GCN 进行半监督学习和分 类,预测企业的违约概率 传统的关系型数据库的存储方式丢失了事物之间的关系信息 Relational Table Technology Landscape 2020 • 图数据库 • 图数据建模 • 图计算引擎 • 图数据集成 • 可视化分析 • 知识图谱解决方案 • 图查询语言 • 欺诈检测 • 网络安全分析 • 社交网络分析 • BI 工具 • 图分析工具集 • 图咨询服务 Source : Graph Aware 图数据库发展趋势 AtlasGraph 研发背景 • 业务对大图分析的诉求(千亿点、万亿边)0 码力 | 38 页 | 24.68 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器,内存管理与对象生命周期 10. C++ 异常处理机制的前世今生 我们都要认真鞋习哦 我们都要认真鞋习哦 第一章:读取与写入 我负责监督你鞋习 ! 我负责监督你鞋习 ! map 查找元素的两个接口 • map 提供了两个查找元素的接口,一曰 [] ,二曰 at 。 • 那么他们两个又有什么区别呢?很多新手都分不清他俩,可能只认识 [] 。 读取 map 元素 • mapm; 。而如果另一个同学是硬核的计算 机思维,相当于 C++ 的一视同仁 API ,他会以为小彭老师真的在吃答辩。 • 这是通常来说,不过万一小彭老师真的这么重口味在吃答辩呢?要怎么传达这个信息? C++ 一视同仁的接口就能处理这种罕见的情况,不过 Python 用一些 if 语句套一套一样可以。 深入理解 Python 中 [] 能自动区分是读是写的原理 • 写入要创建元素,而读取则要在元素不存在时出错,确实应该是两个不同的函数。 简单粗暴的 Java 用法 • 与 Python 和 C++ 不同, Java 放弃了花里胡哨的运算符重载,索性都采用成员函数 get put 来表示,非常明确。主要是为了把 get 和 put 作为接口函数,可以对应多个具体 实现。 错误示范 • 小彭老师说过,读取必须用 at 。 • 而这位同学却用了 [] 来读取 items 里的值。 • 乍看之下好像没错,运行结果也是正确的,但 这只是碰巧你的 0 码力 | 90 页 | 8.76 MB | 1 年前3
Go读书会第二期• 变长参数函数妙用 • 方法的本质、 receiver 参数类型选择、方法集 合 Go 程序逻辑的基本承载单元 Part5 – 语法核心:接口 践行哲学,遵循惯例,认清本质,理解原理 • 接口的内部表示 • 接口设计 • 接口与组合 接口:一切皆组合 Part6 – 语法核心:并发编程 践行哲学,遵循惯例,认清本质,理解原理 • 并发设计 vs. 并行设计 • 并发原语的原理与应用模式0 码力 | 26 页 | 4.55 MB | 1 年前3
Rust 异步并发框架在移动端的应用 - 陈明煜移动端诉求:易用性 • IO 密集性任务与 CPU 密集型任务融合 异步并发框架如 tokio 大多用于处理大量 异步 IO 场景,而 CPU 密集型任务一般 使用 rayon 。 当前单框架提供的接口无法使用户在一个 任务中同时处理 IO 任务以及 CPU 任 务。 Incompatibility of the third party Runtime with Mobile 现有框架无法完美适配移动端(二) queue task New task Global queue New task take & run take & run Worker take & run Steal & run 两种接口拥有两套割裂的调度模式和线程池 华为 Ylong 异步并发框架 Ylong Runtime 并发框架 华为 Rust 异步并发框架,近期计划在 OpenHarmony 上开源。与 Tokio 类似,同样为事 类似,同样为事 件驱动型调度框架,提供异步 IO 、定时器、同步原 语等功能。但额外提供: 任务优先级调度 异步并行迭代器 结构化并发 Ylong Runtime 对外 接口 APP/SA 调度器 提 交 任 务 Async function CPU Task CPU Task IO Task IO Task Executor 高 中 低 线程池 Reactor0 码力 | 25 页 | 1.64 MB | 1 年前3
Zadig 产品使用手册)、数 据变更、部署、冒烟测试、项目管理任务 变更 测试工程师 更新测试验证环境 project-sit-workflow • 构建、配置变更( Apollo/Nacos )、数 据变更、部署、接口测试 更新集成测试环境 project-auto-sit-workflow • 构建,部署,场景测试 发布工程师 更新预发环境 project-uat-workflow • 质量门禁、构建、配置变更( 变更发布 产品规划 需求开发 服务的调试——调整副本数量 / 重启实例 Sprint 发布 测试验证 变更发布 产品规划 测试集管理—— GitLab 仓库管理 支持冒烟测试 / 接口测试 /UI 测试 / 场景测试 / 性能测试等 1. 本地编写测试脚本并针对 sit 环境本地自测 2. 没问题后提交到 GitLab 仓库 测试验证 Sprint 发布 需求开发 变更发布 安全扫描 ->IM 通知 Sprint 发布 需求开发 变更发布 产品规划 测试验证 sit 发布——执行 sit 工作流更新环境进行集成验证 包括步骤:构建 -> 部署 sit 环境 -> 接口测试 -> IM 通知 Sprint 发布 需求开发 变更发布 产品规划 测试验证 自动化测试——测试结果分析 Sprint 发布 需求开发 变更发布 产品规划 测试验证 uat0 码力 | 52 页 | 22.95 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程std::unique_lock 或 std::lock_guard 的第二个参数,这时他们会默认 mtx 已经 上锁。 std::unique_lock 和 std::mutex 具有同样的接口 • 其实 std::unique_lock 具有 mutex 的所有成员函数: lock(), unlock(), try_lock(), try_lock_for() 等。除了他 会在解构时按需自动调用 这种只要具有某些指定名字的成员函数,就判断一个 类是否满足某些功能的思想,在 Python 称为鸭子类 型,而 C++ 称为 concept (概念)。比起虚函数和 动态多态的接口抽象, concept 使实现和接口更加解 耦合且没有性能损失。 第 4 章:死锁 同时锁住多个 mutex :死锁难题 • 由于同时执行的两个线程,他们中发生的指令不 一定是同步的,因此有可能出现这种情况:0 码力 | 79 页 | 14.11 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector况下,只用最简单的接口(首地址指针) 就完成了遍历和打印的操作。 迭代器模式 • 使用指针和长度做接口的好处是,可以通 过给指针加减运算,选择其中一部分连续 的元素来打印,而不一定全部打印出来。 • 比如这里我们选择打印前三个元素(去掉 了最后一个元素,但不必用 pop_back 修 改数组,只要传参数的时候修改一下长度 部分即可)。 迭代器模式 • 使用指针和长度做接口的好处是,可以通0 码力 | 90 页 | 4.93 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践 这样只需要写一遍 eatTwice ,就可以对猫和狗都适用,实现代码的复用( dont-repeat-yourself ), 也让函数的作者不必去关注点从猫和狗的其他具体细节,只需把握住他们统一具有的“吃”这个接口。 小知识: shared_ptr 如何深拷贝? 浅拷贝: 深拷贝: 思考:能不能把拷贝构造函数也作为虚函数? • 现在我们的需求有变,不是去对同一个对象调用两次 eatTwice ,而是先把对象复制一份 他的源码,但你的老板却要求你把 speak 变 成一个虚函数!怎么样,是不是准备好递交辞 呈了?慢着,让万能的小彭老师来救你! 类型擦除:还是以猫和狗为例 • 你还是可以照常定义一个 Animal 接口,其 具有一个纯虚函数 speak 。然后定义一个 模板类 AnimalWrapper ,他的模板参数 Inner 则是用来创建他的一个成员 m_inner 。 • 然后,给 AnimalWrapper0 码力 | 54 页 | 3.94 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串+= 、 == 等直观的运算符重载: • string(“hello”) + string(“world”) == string(“helloworld”) • string 符合 vector 的接口,例如 begin/end/size/resize…… • string 有一系列成员函数,例如 find/replace/substr…… • string 可以通过 s.c_str() 重新转换回古板的 拷贝出来,我们只需要保证原来的字符串存在于内存中, 让 substr 只是返回切片后的胖指针 [ptr, len] ,不就让新 字符串和原字符串共享一片内存,实现了零拷贝零分配嘛 ! • 于是就有了接口和 string 很相似,但是只保留胖指针,而 不掌管他所指向内存生命周期的 string_view 类。 • 因为不论子字符串多大,真正改变的只有两个变量,所以 string_view 的0 码力 | 162 页 | 40.20 MB | 1 年前3
共 18 条
- 1
- 2













