Rust 异步并发框架在移动端的应用 - 陈明煜第三届中国 Rust 开发者大会 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 本科就读加州大学圣地亚哥分校,毕业时长两年半, Rustacean 在 华为 目前正在使用 Rust 开发并行调度框架等模块。 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com #2 社区并发框架介绍以及与移动端的不适配性 Introduction to third party Runtime crates and their incompatibility with mobile environment Rust 异步机制 Asynchronous Rust 异步并发框架是许多大型应用、系统具备的底层能力。 区别于多线程编程模型,它带来以下优势: 任务调度颗粒度更小,充分利用线程资源 类似支持异步 IO ,目前已经半废弃 async-std 更轻量化的调度框架,功能被拆分 到其他多个库中, IO 密集场景性 能不如 Tokio smol Rayon 并非异步运行时。它通过同步 多线程模型提供了并行迭代器功能, 适用于处理 CPU 密集型计算任务 rayon 现有框架无法完美适配移动端(一) Core Thread Thread Worker Worker task0 码力 | 25 页 | 1.64 MB | 1 年前3
RustBelt - Rust 的形式化语义模型第三届中国 Rust 开发者大会 王俊吉 RustBelt - Rust 的形式化语义模型 Outline Background • RustBelt Project • Rust Types Overview Rust Semantics • Type System • The own Predict • Exclusive Ownership & Mutable Borrow0 码力 | 21 页 | 2.63 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 14.2. 将 crate 发布到 Crates.io . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 指针以及相关的 trait。 8/562Rust 程序设计语言 简体中文版 第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编 程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量 级并发模型。 第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP(面向对象编程)原则之间的比较。第十 九章是一个模式和模式匹配的参考,它们是在 一个高级主题大杂烩,包括不安全 Rust(unsafe Rust)、宏(macro)和更多关于生命周期、 Trait、类型、函数和闭包的内容。 第二十一章我们将会完成一个项目,实现一个底层多线程的 Web 服务端! 最后的附录包含了一些关于该语言的实用信息,其格式更像是参考资料。附录 A 涵盖了 Rust 的关键字,附录 B 涵盖了 Rust 的运算符和符号,附录 C 涵盖了标准库提供的可派生 trait,附0 码力 | 562 页 | 3.23 MB | 27 天前3
Comprehensive Rust(繁体中文)34.1.5 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 34.1.6 AIDL 用戶端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 34.1.7 改寫 API . . . . . . . . passing contributors 303 stars 28k 這個免費的 Rust 課程是由 Google 的 Android 團隊負責開發。本課程涵蓋 Rust 的全部內容,從基礎語 法到進階主題 (泛型和錯誤處理等),應有盡有。 如需最新版課程,請造訪 https://google.github.io/comprehensive-rust/。假如您是在其他 網址閱讀課程資料,別忘了查看這個連結的內容是否有更新。 communication. • 我們討論的議題,可能會超前投影片進度。 – 這完全沒問題!複習是學習的重要一環。請記得,投影片只是輔助,您可以視情況略過不需要 的部分。 第一天的規畫是說明 Rust 中能夠直接對應到其他語言的「基礎」概念。後續幾天則會介紹更進階的部分。 如果您是在教室授課,就很適合參考這裡的時間表。請注意,每個主題結束後都有練習,然後才是休息時 間。請規劃在休息後講解練習的解決方案。此處列出的0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 20240634.1.5 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 34.1.6 AIDL 用戶端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 34.1.7 改寫 API . . . . . . . . passing contributors 287 stars 27k 這個免費的 Rust 課程是由 Google 的 Android 團隊負責開發。本課程涵蓋 Rust 的全部內容,從基礎語 法到進階主題 (泛型和錯誤處理等),應有盡有。 如需最新版課程,請造訪 https://google.github.io/comprehensive-rust/。假如您是在其他 網址閱讀課程資料,別忘了查看這個連結的內容是否有更新。 communication. • 我們討論的議題,可能會超前投影片進度。 – 這完全沒問題!複習是學習的重要一環。請記得,投影片只是輔助,您可以視情況略過不需要 的部分。 第一天的規畫是說明 Rust 中能夠直接對應到其他語言的「基礎」概念。後續幾天則會介紹更進階的部分。 如果您是在教室授課,就很適合參考這裡的時間表。請注意,每個主題結束後都有練習,然後才是休息時 間。請規劃在休息後講解練習的解決方案。此處列出的0 码力 | 356 页 | 1.41 MB | 1 年前3
KCL: Rust 在编译器领域的实践与探索利用Kubernetes和云的混合能力,通过端到端的交付工作 流程,真正实现集中定义、随处交付。 KusionStack 架构 • KCL:面向应用研发者的 配置策略专用高级编程语 言,及其协议组,工具链及 IDE 插件 • Kusion:运维引擎、工具 链、服务层,IDE 工作空间 及社区技术集成套件 • Konfig:应用配置及基础 模型共享仓库,及面向 GitOps 工作流程(如 03 重写的收益 稳定性和性能提升 IDE:用户体验提升 源于 Rust 强大的编译检查和错误 处理方式, 更少的 Bug 稳定性提升 端到端编译执行性能提升了 66% 66 % 20 & 40 前端解析器性能提升 20倍 中端语义分析器性能提升40倍 稳定性和性能的巨大提升 50 % 语言编译器编译过程平均内存使用 量变为原来 Python 版本的一半 01 02 03 03 04 Case1: 单文件编译 > https://github.com/KusionStack/kcl#showcase Case2: Konfig模型 + 用户定义 > https://github.com/KusionStack/konfig/blob/ main/base/examples/native/nginx_deployment/nginx_deployment0 码力 | 25 页 | 3.50 MB | 1 年前3
Rust 语言学习笔记............... 38 3.4.1.函数传递参数和返回参数类似于 let 语句 .................................... 38 3.4.2 涉及到函数和结构体的借用检查器 ........................................... 39 第四章 面向对象编程 ........................... bin crate,且 src/main.rs 就是 crate 根。不用在写 cargo.toml 的时候精确到文 件。 ii.另一个约定如果包目录中包含 src/lib.rs,则包带有与其同名的 lib crate, 且 src/lib.rs 是 crate 根。同样不需要精确到文件。 iii. 包可以带有多个二进制 crate,默认将文件置于 src/bin 目录,但是 也可以自由配置。 (let a = 4);会返回下面的错误: variable declaration using `let` is a statement。 2.1.2 rust doc rust 提供了从注释到可浏览网页文档的生成方法,通过 cargo doc 的方式。 注释主要有三种:行注释,模块注释,文档注释。 Rust 也有特定的用于文档的注释类型,通常被称为 文档注释 (documentation0 码力 | 117 页 | 2.24 MB | 1 年前3
Comprehensive Rust(简体中文) 20241234.1.5 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 34.1.6 AIDL 客户端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 34.1.7 更改 API . . . . . . . . Rust build passing contributors 303 stars 28k 这是一门由 Android 团队开发的免费 Rust 课程。课程涵盖了 Rust 的全部内容,从基本语法到泛型和错 误处理等高级主题。 如需查看课程的最新版本,请访问 https://google.github.io/comprehensive-rust/。如果您 在其他地方阅读,请在那里查看更新。 The 及的要点,以及对课堂上可能出现的典型问题的回答。 11 第 1 部分 授课 本页供课程讲师使用。 以下是有关 Google 内部开展课程的一些相关背景。 上课时间通常是从上午 9:00 到下午 4:00,中间有 1 小时的午餐休息时间。这样上午和下午就各有 3 小时 上课时间。上下午上课时间段内都有多次休息时间和学生做练习的时间。 在授课之前,你需要完成以下事项: 1. 熟悉课程资0 码力 | 359 页 | 1.33 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Rust 版夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 www.hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.1.0 Rust版夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结0 码力 | 388 页 | 18.50 MB | 1 年前3
共 40 条
- 1
- 2
- 3
- 4













