应用 waPC (rust) 做软件测试工具第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging) Microservices • Multiple backend product line with complex upstream • Common testing platform 大公司抓包工具的需求 软件测试工具 • 模拟数据规则 • 自动化测试 • Supports http/https/tcp/websocket(MITM) • Can use rust to construct own wasm API • Support websocket stand in for wasm API 抓包 - Wasm Mock Server wasm 工具 does not invent the wheel 软件测试工具 • 模拟数据规则 • 自动化测试 ModifyRequest(req *http.Request) error{ … req_,err:=wasm.Invoke(ctx0 码力 | 30 页 | 2.50 MB | 1 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺Flight 的物联网和时序数据传输及 转换工具 霍琳贺 涛思数据 Rust China Conf 2023 CONTENTS 自 我 介 绍 T D e n g i n e t a o s X R u s t 使 用 TDengine Rust • OOXML - Excel 解析库 • xlsx2csv - Excel 转 CSV 工具 • Unqlite - 单文件非关系型数据库 Multi-address DSN(Data Source Name) parser. TDengine 应用开发组 • Python/Rust/Go 连接器 • 数据可视化 • 数据库运维工具 • 第三方数据源接入 • BI 系统接入 https://taosdata.com/ https://github.com/zitsen CONTENTS 自 我 介 绍 T D e n g i n e t a o s X R u s t 使 用 Why Rust ? • 安全性 • 高性能 • 跨平台兼容 • 强大的类型系统和抽象表达能力 • 优秀的 Rust 生态和开发工具链 • C FFI 互操作能力 • async/await 异步编程 Rust - Crates Used in taosX • Async runtime: https://crates.io/crates/tokio0 码力 | 29 页 | 2.26 MB | 1 年前3
Zadig 产品使用手册效能 01 04 02 03 工程化协同:“人、技术、流 程、工具” 四维协同基线,沉 淀全流程数据,从感知到赋 能,服务于工程师 释放云基建能力:链接任何云 及自建资源(容器、主机、车 机、端等),释放云原生价值 和企业创新力 生态开放:广泛开放系统 模块和 OpenAPI ,链接 一切流程、服务、工具和 上下游伙伴 安全简单自主可控:私有化 部署,现有服务 0 迁移成本 迁移成本 、体验丝滑接入容易、学习 使用门槛极低 现存做法大多以「单点工具 + 写脚本」或运管类平台为主, Zadig 则是面向开发者视角,中立,云原生一体化价值链平台。 与现存 DevOps 方案对比: 现存方案 典型代表 方案特点分析 Zadig 优势 传统 Jenkins 方案 GitLab + Jenkins + 脚本化 运行效率低,管理维护成本高 方案局限性大,安全性风险高 多服务并行部署发布,云原生构建环境和运行 环境,基础设施对接及企业级 SSO/ 权限管理 等 运维管理类平台 蓝鲸 Rainbond KubeSphere KubeVela 面向资源管理的运维工具集 面向开发者,需结合 CI/CD 工具额外 搭建全流程能力 专门面向开发者的生产力平台,涵盖需求到开 发,测试,运维的云原生一体化技术底座支撑 云厂商 DevOps 平台 华为云 DevCloud 阿里云效0 码力 | 52 页 | 22.95 MB | 1 年前3
Zadig 面向开发者的云原生 DevOps 平台2021 年 7 月 2021 年 9 月 2021 年 11 月 2021 年 12 月 1 个月功能改造 90% 功能实现开源 技术社区雏形搭建 2022 年 3 月 生态伙伴工具 + Zadig Zadig 企业交付案例场景深化 开 发 者 场 景 挖 掘 3-5 个领域敏感型场景 建立产品发展委员会 贡献者流程优化 2022 年 9 月 场 景 深 化 进度管理:根据团队客观数据,预测和确定项目规划 迭代进度一目了然 项目从无到有可核算 管理有数据科学依据 解放管理,更多时间花在 业务创新 平台运维 业务压力大,能力建设缓慢: • 大量工作花在工具链维护 • 项目间依赖复杂,环境管理难 • 交付版本依赖工单,发布风险高 • 公共资源 / 业务资源利用率低 赋能多业务:一个平台解决了多异构项目的管理和规范 团队高效协作:定义团队角色工作流模板,随时可用云上环境 支撑云原生构建 / 运行环境,多云异构支持及企业 级登录权限支持 传统运维管理类平台 蓝鲸 Rainbond KubeSphere KubeVela 面向资源管理的运维工具集 面向开发者,需结合 CI/CD 工具额外搭建 全流程能力 专门面向开发者的生产力平台,涵盖全流程需求到 开发,测试,运维的云原生一体化技术底座支撑 云厂商 DevOps 平台 华为云 DevCloud 阿里云效0 码力 | 59 页 | 81.43 MB | 1 年前3
谈谈MYSQL那点事数据查询:编写简洁高效的 数据查询:编写简洁高效的 SQL SQL 语句 语句 应用优化 应用优化 应用优化方式 应用优化方式 应用优化 应用优化 表结构设计原则 表结构设计原则 选择字段的一般原则是保小不保大,能用占用字节 少的字段就不用大字段。比如,主键,强烈建议用 int 整型 . 不用 bigint ,为什么 ? 省空间啊。空间是什么 ? 空间就是效率!按 4 个字节和按 个字节定位一条记 录,谁快谁慢太明显了。涉及几个表做 join 时, 效果 就更明显了。更小的字段类型占用的内存就更少,占用 的磁盘空间和磁盘 I/O 也会更少,而且还会占用更少的 带宽。因此 . 在日常选择字段时必须要遵守这一规则。 应用优化 应用优化 索引建立原则(一) 索引建立原则(一) 一般针对数据分散的关键字进行建立索引,比如 一般针对数据分散的关键字进行建立索引,比如 像性别、状态值等等建立索引没有意义 MySQL Slow Log 分析工具 分析工具 mysqldumpslow - mysql mysqldumpslow - mysql 官方提供的慢查询日志分析 官方提供的慢查询日志分析 工具 工具 mysqlsla - hackmysql.com mysqlsla - hackmysql.com 推出的一款日志分析工具 推出的一款日志分析工具 ,功能 ,功能 非常强大0 码力 | 38 页 | 2.04 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector大小的容量。 • shrink_to_fit 会重新分配一段更小内存,他同样是会把元素移 动到新内存中的,因此迭代器和指针也会失效。 • size_t shrink_to_fit(); 一个小工具: mallochook • 为了追踪所有的内存分配与释放,我 们试着重写一下 malloc 和 free 函 数。 • 这样当 vector 容器分配或是释放内 存的时候,我们就能轻松看到。 过给指针加减运算,选择其中一部分连续 的元素来打印,而不一定全部打印出来。 • 比如这里我们选择打印前三个元素(去掉 了最后一个元素,但不必用 pop_back 修 改数组,只要传参数的时候修改一下长度 部分即可)。 迭代器模式 • 使用指针和长度做接口的好处是,可以通 过给指针加减运算,选择其中一部分连续 的元素来打印,而不一定全部打印出来。 • 比如这里我们选择打印后三个元素(去掉 vector 作参数,而是接受他的 两个迭代器组成的区间!好处有: 1. 可以批量插入从来自另一个不同类型的容器,例如 list,只要元素类型相等,且符合迭代器规范。 2. 我可以自由选择对方容器的一个子区间(通过迭代器加 减法)内的元素来插入,而不是死板的只能全部插入。 • template // 这里 It 可以是其他容器的迭代器类型 • iterator 0 码力 | 90 页 | 4.93 MB | 1 年前3
Rust与算法 - 谢波结算及大数据系统研发工程师 疫情下的明智选择 / 个人项目实践 学习中总结探索 2015 年发布,很多人近几年才知道 Rust , Rust 中国 大会也才第三届,期待 Rust 中国大会第十届 Rust 处于起步阶段 中文圈学习资料或书籍少,有部分是翻译国外产品,能 不能中国人向国外输出作品 Rust 缺少学习资源 Rust 未来大有可为 Rust 在操作系统,数据库,各种框架和工具上应用范围 广 写作动机 总结及学习资源 • 算法总结 • 学习资源 总结及学习资源 Rust 算法总结 • 复杂度分析及算法优化 • 别自己实现,用标准库 • 利用 Rust 特性实现高效算法 • 技术在进步,用新工具辅助学习 Rust 学习资源 # 社区/公众号 社区: Rust 语言中文社区、乐酷 Rust 技术论坛 公号:觉学社、 Rust 编程指北 # 书籍 《编程之道》、《 Rust 权威指南》、《0 码力 | 28 页 | 3.52 MB | 1 年前3
Go读书会第二期语法基础:函数与方法 践行哲学,遵循惯例,认清本质,理解原理 • Init 函数 • 成为“一等公民” • defer 的惯用法与坑 • 变长参数函数妙用 • 方法的本质、 receiver 参数类型选择、方法集 合 Go 程序逻辑的基本承载单元 Part5 – 语法核心:接口 践行哲学,遵循惯例,认清本质,理解原理 • 接口的内部表示 • 接口设计 • 接口与组合 接口:一切皆组合 践行哲学,遵循惯例,认清本质,理解原理 • Go 测试惯例与组织形式 • 模糊测试 (fuzzing test) • 性能基准测试、度量数据与 pprof 剖析 • 调试实践 聚焦编码之外的 Go 工具链使用实践 Part9 – 标准库、反射与 cgo 践行哲学,遵循惯例,认清本质,理解原理 • 高频使用的标准库包 ( net 、 http 、 strings 、 time 、 crypto com/bigwhite/ GoProgrammingFromBeginnerToMaster 读书实践与体会 第三部分 Go 技术图书阅读:从外刊到内刊 Go 中文图书 Go 外文图书 读书方法 精读 • 选择高质量图书 • 脑图 + 细节摘录 + 行动清单(输出) 泛读 • 闲书 ( 不烧脑 ) • 碎片化(快读) + 听书 小结 第四部分 小结 • 写书三要素 • Go 精进之路0 码力 | 26 页 | 4.55 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程以让当前线程休眠一段时间,然后继续。 • 而且单位也可以自己指定,比如这里是 milliseconds 表示毫秒,也可以换成 microseconds 表示微秒, seconds 表示 秒, chrono 的强类型让单位选择更自由 。 睡到时间点: std::this_thread::sleep_until • 除了接受一个时间段的 sleep_for ,还有 接受一个时间点的 sleep_until ,表示让当 std::lock_guard :符合 RAII 思想的上锁和解锁 • 根据 RAII 思想,可将锁的持有视为资源 ,上锁视为锁的获取,解锁视为锁的释放 。 • std::lock_guard 就是这样一个工具类,他 的构造函数里会调用 mtx.lock() ,解构函 数会调用 mtx.unlock() 。从而退出函数作 用域时能够自动解锁,避免程序员粗心不 小心忘记解锁。 std::unique_lock0 码力 | 79 页 | 14.11 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程一样!所以一定 要注意调对你的版本号。否则就会这样 kernel 好像没有执行过一样,只有 CPU 上的代码被执行了。 指定多个版本号 • 可以指定多个版本号,之间用分号分割。 • 运行时可以自动选择最适合当前显卡的版 本号,通常用于打包发布的时候。 • 不过这样会导致 GPU 编译器重复编译很 多遍,每次针对不同的架构,所以编译会 变得非常慢,生成的可执行文件也会变大 。 • 通常在自己的电脑上用时,同学们只要根 Segmentation Fault 差不多。 封装好了: helper_cuda.h • 其实 CUDA toolkit 安装时,会默认附带一系列案例代码, 这些案例中提供了一些非常有用的头文件和工具类,比如这 个文件: • /opt/cuda/samples/common/inc/helper_cuda.h • 把他和 helper_string.h 一起拷到头文件目录里,然后改一 下0 码力 | 142 页 | 13.52 MB | 1 年前3
共 25 条
- 1
- 2
- 3













