Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 • ? 如何解决? Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 设计目标 Await Tree 的设计原理与实现 • 追踪关键 Future 的生命周期和控制流 • Init, First Poll, Pending, Next 基本用例 Await Tree 的设计原理与实现 基本用例 Await Tree 的设计原理与实现 设计细节 Await Tree 的设计原理与实现 • 充分理解 Future 生命周期中的控制流 Await Tree 的维护 Await Tree 的设计原理与实现 • 初始状态 Await Tree 的维护 Await Tree 的设计原理与实现 • Future 构造 Await0 码力 | 37 页 | 8.60 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 1. 阶段一:算法入门。我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效 率等方面的内容。 2. 阶段二:刷算法题。建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题 时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线”来 目,实际上同时考查数据结构和算法两方面的知识。 1.3 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 www.hello‑algo.com0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.1.0 Rust版图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 1. 阶段一:算法入门。我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效 率等方面的内容。 2. 阶段二:刷算法题。建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题 时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线”来 目,实际上同时考查数据结构和算法两方面的知识。 1.3 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 hello‑algo.com 16 许多编程语言内置了列表,例如 Java、C++、Python 等。它们的实现比较复杂,各个参数的设定也非常考 究,例如初始容量、扩容倍数等。感兴趣的读者可以查阅源码进行学习。 为了加深对列表工作原理的理解,我们尝试实现一个简易版列表,包括以下三个重点设计。 ‧ 初始容量:选取一个合理的数组初始容量。在本示例中,我们选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size ,用于记录0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.0.0 Rust版图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 1. 阶段一:算法入门。我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效 率等方面的内容。 2. 阶段二:刷算法题。建议从热门题目开刷,如“剑指 Offer”和“LeetCode Hot 100”,先积累至少 100 道题目,熟悉主流的算法问题。初 算法题目,实际上同时考查数据结构和算法两方面的知识。 1.3 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 第 1 章 初识算法 hello‑algo.com 16 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 许多编程语言内置了列表,例如 Java、C++、Python 等。它们的实现比较复杂,各个参数的设定也非常考 究,例如初始容量、扩容倍数等。感兴趣的读者可以查阅源码进行学习。 为了加深对列表工作原理的理解,我们尝试实现一个简易版列表,包括以下三个重点设计。 ‧ 初始容量:选取一个合理的数组初始容量。在本示例中,我们选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size ,用于记录0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清晰易懂、學習曲線平滑,引導初學者探索資料結構與演算法的知識地圖。 ‧ 源程式碼可一鍵執行,幫助讀者在練習中提升程式設計技能,瞭解演算法工作原理和資料結構底層實 現。 ‧ 提倡讀者互助學習,歡迎大家在評論區提出問題與分享見解,在交流討論中共同進步。 0.1.1 讀者物件 若你是演算法初學者,從未接觸過演算法,或者已經有一些刷題經驗,對資料結構與演算法有模糊的認識, 0‑7 評論區示例 0.2.5 演算法學習路線 從總體上看,我們可以將學習資料結構與演算法的過程劃分為三個階段。 1. 階段一:演算法入門。我們需要熟悉各種資料結構的特點和用法,學習不同演算法的原理、流程、用途 和效率等方面的內容。 2. 階段二:刷演算法題。建議從熱門題目開刷,先積累至少 100 道題目,熟悉主流的演算法問題。初次刷 題時,“知識遺忘”可能是一個挑戰,但請放心,這是很正 算法題目,實際上同時考查資料結構和演算法兩方面的知識。 1.3 小結 ‧ 演算法在日常生活中無處不在,並不是遙不可及的高深知識。實際上,我們已經在不知不覺中學會了許 多演算法,用以解決生活中的大小問題。 ‧ 查字典的原理與二分搜尋演算法相一致。二分搜尋演算法體現了分而治之的重要演算法思想。 第 1 章 初識演算法 www.hello‑algo.com 16 ‧ 整理撲克的過程與插入排序演算法非常類似。插入排序演算法適合排序小型資料集。0 码力 | 388 页 | 18.82 MB | 10 月前3
在Solana合约链实现IBC协议跨链互操作 - 苏胤榕以及本人对Solana平台的喜欢,优先考虑 了Solana平台,但是这套方案是可以推广到 任何的Rust智能合约平台的。 大致讲解下IBC协议的原理, 以及参与整个IBC协议活动的不同决策 IBC协议概述> 详细介绍IBC协议的基本概念和原理 Connection创建原理 Connection创建OpenInit Connection创建OpenTry Connection创建OpenAck0 码力 | 29 页 | 3.05 MB | 1 年前3
尝试用RUST写教学操作系统20181123 1 背景 • 用什么语言写操作系统? – 汇编 – C – C++ – GO – RUST – … 2 3 各位老师所教的课程信息统计 计算机组成原理 编译原理 操作系统 其他 A B C D 提交 多选题 1分 此题未设答案 面临的问题 • 教学的要求 – 简洁 • 实验环境:Nachos、XV6、ucore0 码力 | 23 页 | 1.53 MB | 1 年前3
WebAssembly 简介 - 陈思衡asyncify,它允许将同步的 WebAssembly 代码转换为异步代码。 就像 rust 对 async function 做的事情一样。 Photo / image / chart Asyncify 原理示意 Async Wasm 解决方案 执行流程 Async Wasm 解决方案 • 与 WASM 的语言无关。 • 与 CPU 汇编指令无关。 • 可以跨机器调度。 Asyncify(Binaryen)0 码力 | 24 页 | 773.46 KB | 1 年前3
王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI Desktop Server 的全平台实践经验Namespace amp-director amp-controllers … 1 2 3 4 5 6 Internet 流程图:创建 流程图:运⾏ Live Update 模式原理 开启实时更新(Live Update)模式时,当你在⼯程根 ⽬录放置 .devcontainer ⽬录时,Amphitheatre 终端软 件会识别 .devcontainer 规范,借助内置的0 码力 | 34 页 | 10.81 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0字符类型,char。 • 元组,当且仅当其包含的类型也都实现 Copy 的时候。比如,(i32, i32) 实现了 Copy,但 (i32, String) 就没有。 所有权与函数 将值传递给函数与给变量赋值的原理相似。向函数传递值可能会移动或者复制,就像赋值语句 一样。示例 4-3 使用注释展示变量何时进入和离开作用域: 文件名:src/main.rs fn main() { let s = S 在深入了解模块和路径的细节之前,这里提供一个简单的参考,用来解释模块、路径、use关 键词和pub关键词如何在编译器中工作,以及大部分开发者如何组织他们的代码。我们将在本 章中举例说明每条规则,但这是回顾模块工作原理的绝佳参考。 • 从 crate 根节点开始: 当编译一个 crate, 编译器首先在 crate 根文件(通常,对于一个库 crate 而言是 src/lib.rs,对于一个二进制 crate String::from("toe"); let s = format!("{s1}-{s2}-{s3}"); 这些代码也会将 s 设置为 tic-tac-toe。format! 与 println! 的工作原理相同,不过不同于 将输出打印到屏幕上,它返回一个带有结果内容的 String。这个版本就好理解的多,宏 format! 生成的代码使用引用因此不会获取任何参数的所有权。 索引字符串 在很多语言0 码力 | 562 页 | 3.23 MB | 1 月前3
共 13 条
- 1
- 2













