Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇Await-Tree Async Rust 可观测性的灵丹妙药 赵梓淇 Bugen Zhao Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 • 组合嵌套为调度单元: Task • async fn 语法糖 Async Rust 观测与调试的痛点 Async Rust 回顾 • 特性: Future 灵活的可组合性 • 任意定制 Poll 的执行逻辑 (Join / Select / Timeout) • 动态的调用关系 • 痛点:观测与调试工具无法理解灵活的执行逻辑 • Backtrace 不够直观 ( 调用栈 -> 调用树 Async Rust 观测与调试的痛点 Async Rust 回顾 • 特性:用户态调度的无栈协程 • Pending Task 不存在栈空间 • 痛点:观测与调试工具无法还原 Pending Task 的执行状态 • 难以得知 Task 阻塞的位置和原因 • 难以调试 Async Stuck • ? 如何解决? Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree0 码力 | 37 页 | 8.60 MB | 1 年前3
Rust API可靠性分析与验证Conf 2021 – 2022, Online, China 姜剑峰 Rust API可靠性分析与验证 Rust China Conf 2021 – 2022, Online, China 主题内容 • Rust第三方库API可靠性现状 • 现用方法的局限性 • 基于程序合成+模糊测试的可靠性分析方法 Rust China Conf 2021 – 2022, Online, China 数组越界 • 整数溢出 • Unicode字符边界 Rust China Conf 2021 – 2022, Online, China Rust API 可靠性 现有的机制是否足够呢? • unsafe代码没有破坏内存安全性 • no memory leakage • panic free 在任何合法使用API的情况下 • 所有静态检查提供的保证都应该被满足(不应该被unsafe所破坏) 破坏) • 所有动态检查都不应该被违背(可以被安全的移除),除非panic是一种 允许的行为 Rust China Conf 2021 – 2022, Online, China 现有的可靠性分析方法及其局限性 模糊测试(afl.rs, libfuzzer):分支覆盖率;用例程序的构造 符号执行(klee, angr):路径爆炸;求解困难 静态分析(MirChecker, Rudra0 码力 | 13 页 | 1.68 MB | 1 年前3
刘用涛 CnosDB时序数据库的Rust实践CnosDB 架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户Quota可动态配置 • 云边端协同 • 云上生态融合 整体架构 1.2 存储引擎 version_set Vnode IndexEngine DataEngine “零设置” 的交叉编译 rust crate 它提供了一个环境、交叉工具链和交叉编译库,可以生成最便携的二进制文件 3.4 Rust 交叉编译 1. IO 异步化 平台兼容性 隔离阻塞 IO 异步化 2. io_uring 性能有40%提高 3.5 异步 IO 4. 反哺社区 4.1 DataFusion 在开发过程中,我们发现一些0 码力 | 26 页 | 3.28 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手 ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上 2 0.1 关于本书 本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初0 码力 | 387 页 | 18.51 MB | 10 月前3
Comprehensive Rust(繁体中文)22.2 借用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 22.3 內部可變性 (Interior Mutability) . . . . . . . . . . . . . . . . . . . . . . . . . 122 22.4 練習:衛生統計資料 . . . . 174 30.2 對裸指標解參考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 30.3 可變的靜態變數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 30.4 聯合體 . . . . . . 2 行內組語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 53.3 MMIO 揮發性記憶體存取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 53.4 編寫 UART 驅動程式 . . . . . .0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 20240622.2 借用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 22.3 內部可變性 (Interior Mutability) . . . . . . . . . . . . . . . . . . . . . . . . . 120 22.4 練習:衛生統計資料 . . . . 172 30.2 對裸指標解參考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 30.3 可變的靜態變數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 30.4 聯合體 . . . . . . 2 行內組語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 53.3 MMIO 揮發性記憶體存取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 53.4 編寫 UART 驅動程式 . . . . . .0 码力 | 356 页 | 1.41 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 “一本通俗易懂的資料結構與演算法入門書,引導讀者 ——鄧俊輝,清華大學計算機系教授 “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 與處理資料的理想媒介。無論是電玩遊戲的逼真畫面、自動駕駛的智慧決策,還是 AlphaGo 的精彩棋局、 ChatGPT 的自然互動,這些應用都是演算法在電腦上的精妙演繹。 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 本書旨在透過清晰易懂的動畫圖解與可執行的程式碼範例,使讀者理解演算法和資料結構的核心概念,並能 夠透過程式設計來實現它們。在此基礎上,本書致力於揭示演算法在複雜世界中的生動體現,展現演算法之 美。希望本書能夠幫助到你! i 目0 码力 | 388 页 | 18.82 MB | 10 月前3
Comprehensive Rust(日语) 20241222.3 Borrow Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 22.4 内部可変性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 22.5 演習: 健康に関する統計 . . . 157 26.2 ファイルシステム階層 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 26.3 可視性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 4 26.4 use、super、self . . . 187 30.2 生ポインタの参照外し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 30.3 可変な static 変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 30.4 共用体 . . . .0 码力 | 381 页 | 1.36 MB | 11 月前3
Hello 算法 1.1.0 Rust版来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那么本书可助你回顾与梳理算法知识体系,仓库源代码可 以当作“刷题工具库”或“算法字典”来使用。 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.0.0 Rust版来完成本书的创作。本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请 各位老师和同学批评指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那么本书可助你回顾与梳理算法知识体系,仓库源代码可 以当作“刷题工具库”或“算法字典”来使用。 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 � 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支0 码力 | 383 页 | 17.61 MB | 1 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













