应用 waPC (rust) 做软件测试工具wasm • Operation 是我们要在 wasm 里注册 命名 • 以数据的长度,设置 wasm 的 linear memory 的指针 • Guest 可执行任务 • Guest 也可返回请求 host Invoke(ctx,operation,payload) WAPC 流程 • Uses Length of response and error to return result HttpPath){ } req.HttpProxyUrl = String::from(“localhost:8000"); req.HttpScheme = String::from("http"); let request = serde_json::to_string(&req)?; Ok(request.as_bytes().to_vec()) } fn do_nothing(msg: reg.insert(“\/v2\/matches\/.*\/info_fiddler_ab”.into(),do_nothing); } waPC in rust in HTTP(MITM) curl -X POST “http://$MockServer: $Port/call/$Operation?targets=\/v2\/m atches\/.*\/info" \ --header0 码力 | 30 页 | 2.50 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅并发:某互联网公司购置了一台单核处理 器的服务器,他正同时处理 4 个 HTTP 请求,如果是单线程的 listen-accept 循环 ,则在处理完 A 的请求之前, B 的请求 就无法处理,造成“无响应”现象。 C 的请 求进来,则还得继续排队…… • 每个请求开启一个线程来处理,这样处理 A 用户的同时还可以继续监听 B 用户发 来的请求,及时响应,改善用户体验。 • 并行:某图形学爱好者购置了一台0 码力 | 116 页 | 15.85 MB | 1 年前3
Rust分布式账务系统 - 胡宇API 到底层 API 的翻 译 ○ 产生转账计划 ● Marker 事务层 ○ 使用业务 id 进行路由 ○ 执行转账计划 ○ 分发账户变动请求 ● Auticuro 账户层 ○ 使用账户 id 进行分区 ○ 执行账户变动请求 ○ 更新账户余额 分布式账务系统 性能展示 8 vCPUs * 5 节点 SSD 磁盘 当 TPS = 10K 时, 延迟 P99 < 20ms 分布式账务系统 高吞吐,超低延迟 账户层: Auticuro 分布式账务系统 账户层: Auticuro ● 1. 接受转账请求,转换成 events ○ Tokio + Tonic 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ○ 共识:基于 raft-rs 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ● 3. 处理被共识的 events ,更新状态机 (账户表) ○ 去重 & 更新余额 ○ 关键路径采用无锁单线程 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 20 码力 | 27 页 | 12.60 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人LSM-Tree 容灾保障 ( BR ) 元数据层 事务管理 MVOCC 计算层 Cypher AST 优化器 图计算 内存加速引 擎 服务接口 HTTP/RPC Spark 连接器 Python UDF 执行器 索引管理 一致性存储 RAFT 分片管理 元数据 集群管理 用户权限 GNN 应用层 Atlas 图平台 starts •2023-11 – DIS ballot ends •2024-04 – International Standard 类 SQL 语言,简单易用,面向分析师友好 查询引擎:计算请求执行流程 Cypher AST Unresolved Logical Plan Logical Plan Optimized Logical Plan Physical Plan Program0 码力 | 38 页 | 24.68 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理pdf) - [ 并行体系结构与编程 (CMU 15-418)](https://www.bilibili.com/video/av48153629/) - [ 深入理解计算机原理 (CSAPP)](http://csapp.cs.cmu.edu/) - [CMake “ 菜谱” ](https://www.bookstack.cn/read/CMake-Cookbook/README.md) - [CMake 为什么很多面向对象语言,比如 Java ,都没有构造函数全家桶这些概念? • 因为他们的业务需求大多是:打开数据库,增删改查学生数据,打开一个窗口,写入一个 文件,正则匹配是不是电邮地址,应答 HTTP 请求等。 • 这些业务往往都是在和资源打交道,从而基本都是刚刚说的要删除拷贝函数的那一类,解 决这种需求,几乎总是在用 shared_ptr的模式,于是 Java 和 Python 0 码力 | 96 页 | 16.28 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程的实现背后是基于 pthread 的。 • 解决: CMakeLists.txt 里链接 Threads::Threads 即可: 有了多线程:异步处理请求 • 有了多线程的话,文件下载和用户交互分 别在两个线程,同时独立运行。从而下载 过程中也可以响应用户请求,提升了体验 。 • 可是发现一个问题:我输入完 pyb 以后, 他的确及时地和我交互了。但是用户交互 所在的主线程退出后,文件下载所在的子0 码力 | 79 页 | 14.11 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化}; • CacheEntry cache[512]; • 当 CPU 读取一个地址时: • 缓存会查找和该地址匹配的条目。如果找到,则给 CPU 返 回缓存中的数据。如果找不到,则向主内存发送请求,等读 取到该地址的数据,就创建一个新条目。 • 在 x86 架构中每个条目的存储 64 字节的数据,这个条目 又称之为缓存行( cacheline )。 • 当访问 0x0048~0x0050 当读和写创建的新条目过多,缓存快要塞不下时,他会把 最不常用的那个条目移除,这个现象称为失效( invalid )。 如果那个条目是被标记为脏的,则说明是当时打算写入的 数据,那就需要向主内存发送写入请求,等他写入成功, 才能安全移除这个条目。 • 如有多级缓存,则一级缓存失效后会丢给二级缓存。 连续访问与跨步访问 • 如果访问数组时,按一定的间距跨步访问,则效率如何? • 从 1 到 160 码力 | 147 页 | 18.88 MB | 1 年前3
Secure your microservices with istio step by stepistio sidecar ( kubectl label namespace default istio-injection=disabled/enabled ) http http http http http http http Result: can access reviews-v1, reviews-v2 and reviews-v3 Access productpage peer-authentication to enable server side mTLS mTLS in Istio - PeerAuthenticati on mTLS http http http http mTLS http #IstioCon Auto-mTLS in Istio ● Decide what type of traffic the client sidecar to productpage 1) Apply destination rule enable client side mTLS mTLS in Istio - Destination rule http http http http mTLS mTLS #IstioCon mTLS in Istio - DestinationRule Defines what type of traffic the0 码力 | 34 页 | 67.93 MB | 1 年前3
whats new in visual studioSeries1 Open Member List 29% faster Unreal Engine 4.27.1 IntelliSense Ready 18x faster Learn more at http://aka.ms/18xfaster Performance of Visual Studio Developer inner-loop Build Debug Edit Find List Open Member List 29% faster Unreal Engine 4.27.1 IntelliSense Ready 18x faster Learn more at http://aka.ms/18xfaster Performance of Visual Studio At CppCon last year Developer inner-loop List Open Member List 29% faster Unreal Engine 4.27.1 IntelliSense Ready 18x faster Learn more at http://aka.ms/18xfaster Link time 28x faster 5x faster 18x faster 1 2 3 0.00 100.00 2000 码力 | 42 页 | 19.02 MB | 6 月前3
C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型索性把坐标和值打包成 tuple ,存储在 vector 按行压缩( Compressed Row Storage ) http://www.netlib.org/linalg/html_templates/node91.html 按行压缩( Compressed Row Storage ) http://www.netlib.org/linalg/html_templates/node91.html 第 而单精度浮点数 float 的底数有 23 位,指数有 8 位(图 1 )。 • 双精度浮点数 float 的底数有 52 位,指数有 11 位(图 2 )。 double: float: http://c.biancheng.net/view/314.html 以求最大值为案例 用定点数来表示 • 刚刚说到浮点数的特性是有指数位,可表示不同数量级上的数。 • 比如 123.4 实际上是 缺点:尺寸受限,操作系统挂钩,依赖 x86 硬件机 制。 • 顺便一提, GPU 也可以搞 SPGrid ,不过 GPU 的 页大小是 2MB ,王鑫磊最近研究过这个,因为太繁 琐而放弃了。 http://pages.cs.wisc.edu/~sifakis/papers/SPGrid.pdf 今天的回家作业 • 用稀疏数据结构改良康威生命游戏 (conway’s game of life)0 码力 | 102 页 | 9.50 MB | 1 年前3
共 22 条
- 1
- 2
- 3













