Comprehensive Rust(简体中文) 202412. . . . . . . . . . . . . . . . . . . . . . . 181 IX Android 185 31 欢迎来到 Android 中的 Rust 186 32 设置 187 33 构建规则 188 33.1 Rust 二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 38 习题 219 X Chromium 220 39 Welcome to Rust in Chromium 221 40 设置 222 41 Chromium 和 Cargo 的生态对比 224 42 Chromium Rust 政策 226 43 Build rules 227 43.1 Including unsafe 开发板。每个人都需要安装多个软件包,具体如欢 迎页面中所述。 14 Rust 中的并发 深入探究 Rust 中的并发 课程为期一天,旨在介绍传统并发和 async/await 并发。 你需要设置一个新 crate,下载所需的依赖项,做好课前准备。然后,你可以将示例复制/粘贴到 src/main.rs 中,以便对以下代码进行实验: cargo init concurrency cd concurrency0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust 程序设计语言简体中文版配置文件的格式。 第一行,[package] ,是一个片段(section)标题,表明下面的语句用来配置一个包。随着我 们在这个文件增加更多的信息,还将增加其他片段(section)。 接下来的三行设置了 Cargo 编译程序所需的配置:项目的名称、项目的版本以及要使用的 Rust 版本。附录 E 会介绍 edition 的值。 最后一行,[dependencies] ,是罗列项目依赖的片段的开始。在 有用。 最后一个区别是,常量只能被设置为常量表达式,而不可以是其他任何只能在运行时计算出的 值。 下面是一个声明常量的例子: 44/600 Rust 程序设计语言 简体中文版 const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3; 常量的名称是 THREE_HOURS_IN_SECONDS ,它的值被设置为 60(一分钟内的秒数)乘以 60(一 3(我们在这个程序中要计算的小时数)的结果。Rust 对常量的命名 约定是在单词之间使用全大写加下划线。编译器能够在编译时计算一组有限的操作,这使我们 可以选择以更容易理解和验证的方式写出此值,而不是将此常量设置为值 10,800。有关声明 常量时可以使用哪些操作的详细信息,请参阅 Rust Reference 的常量求值部分。 在声明它的作用域之中,常量在整个程序生命周期中都有效,此属性使得常量可以作为多处代0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0Cargo 配置文件的格式。 第一行,[package],是一个片段 section 标题,表明下面的语句用来配置一个包。随着我们 在这个文件增加更多的信息,还将增加其他 section。 接下来的三行设置了 Cargo 编译程序所需的配置:项目的名称、项目的版本以及要使用的 Rust 版本。附录 E 会介绍 edition 的值。 最后一行,[dependencies],是罗列项目依赖的 section 需要被很多部分的代码用到时很 有用。 最后一个区别是,常量只能被设置为常量表达式,而不可以是其他任何只能在运行时计算出的 值。 下面是一个声明常量的例子: const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3; 常量的名称是 THREE_HOURS_IN_SECONDS,它的值被设置为 60(一分钟内的秒数)乘以 60(一 小时内的分钟数)再乘以 对常量的命名 40/562Rust 程序设计语言 简体中文版 约定是在单词之间使用全大写加下划线。编译器能够在编译时计算一组有限的操作,这使我们 可以选择以更容易理解和验证的方式写出此值,而不是将此常量设置为值 10,800。有关声明 常量时可以使用哪些操作的详细信息,请参阅 Rust Reference 的常量求值部分。 在声明它的作用域之中,常量在整个程序生命周期中都有效,此属性使得常量可以作为多处代0 码力 | 562 页 | 3.23 MB | 29 天前3
新一代分布式高性能图数据库的构建 - 沈游人面向分析师,提供图模型定义、数据管理、图查询分析、服务状态监控、用户管理能力 免代码,可视化定义实体、 边,设计图模型。 【亮点】 • 支持模型导入导出 • 拖拽式关系构建 • 丰富的样式配置 • 实时图结构预览 • 用户授权管理 • 中文及显示别名支持 图模型设计 WebUI—— 可视化图探索分析 【亮点】 • K 步邻居查询、属性过滤 • 最短路径、全路径分析 •0 码力 | 38 页 | 24.68 MB | 1 年前3
夏歌-使用Rust构建LLM应用Telegram 机器人 Cargo.toml "0.1.0" 基于 ChatGPT 的 Telegram 机器人 telegram 机器人的基础设置 "0.1.0" 基于 ChatGPT 的 Telegram 机器人 Open AI 的基础设置 获取 chat_id "0.1.0" 基于 ChatGPT 的 Telegram 机器人 当 Telegram 收到 规定好的 GitHub 这个机器人可以: "0.1.0" 使用 Rust 构建 PR review 机器人 Cargo.toml "0.1.0" 使用 Rust 构建 PR review 机器人 设置 OpenAI 与 GitHub 基本信息 "0.1.0" 使用 Rust 构建 PR review 机器 1. 状态为 Open 的 PR 2. 状态为 Open Telegram 机器人 Cargo.toml "0.1.0" 基于 ChatGPT 的 Telegram 机器人 telegram 机器人的基础设置 "0.1.0" 基于 ChatGPT 的 Telegram 机器人 Open AI 的基础设置 获取 chat_id "0.1.0" 基于 ChatGPT 的 Telegram 机器人 当 Telegram 收到 规定好的0 码力 | 36 页 | 38.31 MB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯协议场景浅析 从用户使用的角度出发: ➢ 下载进度:对于一些涉及上传或下载的应用软件,进度显示能够给用户及时性的反馈。 ➢ 速度和流量限制:受到资费和网络状况的影响,传输速度和流量需要提供给用户设置。 ➢ 暂停和重试:网络传输需要提供给用户控制启动和暂停的控制手段。 ➢ 功耗:网络传输需要消耗终端设备资源,需要尽可能平衡功耗和传输速度。 ➢ 性能表现:网络传输不能影响到和用户直接交互的前台应用的表现。 2023, Shanghai, China Rust 与终端 HTTP 通信场景结合 针对网络不稳定场景: ➢ 支持用户设置速度限制范围:给消息 body 读取逻辑增加速度的上下限,以及时根据网络变化做 出操作。 ➢ 支持用户设置连接和请求的超时时间:给请求的各个区间设置定时器,以及时检测网络变化。 Rust China Conf 2022 – 2023, Shanghai, China Rust0 码力 | 26 页 | 1.25 MB | 1 年前3
Hello 算法 1.1.0 Rust版字节的字符,将最高位设置为 0 ,其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 个码点。也就是说,UTF‑8 编码可以向下兼容 ASCII 码。这 意味着我们可以使用 UTF‑8 来解析年代久远的 ASCII 码文本。 ‧ 对于长度为 ? 字节的字符(其中 ? > 1),将首个字节的高 ? 位都设置为 1 ,第 ? + 1 1 位设置为 0 ; 从第二个字节开始,将每个字节的高 2 位都设置为 10 ;其余所有位用于填充字符的 Unicode 码点。 图 3‑8 展示了“Hello 算法”对应的 UTF‑8 编码。观察发现,由于最高 ? 位都设置为 1 ,因此系统可以通过 读取最高位 1 的个数来解析出字符的长度为 ? 。 但为什么要将其余所有字节的高 2 位都设置为 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 只有不可变 对象是可哈希的。 2. Q & A Q:哈希表的时间复杂度在什么情况下是 ?(?) ? 当哈希冲突比较严重时,哈希表的时间复杂度会退化至 ?(?) 。当哈希函数设计得比较好、容量设置比较 合理、冲突比较平均时,时间复杂度是 ?(1) 。我们使用编程语言内置的哈希表时,通常认为时间复杂度是 ?(1) 。 第 6 章 哈希表 hello‑algo.com 138 Q:为什么不使用哈希函数0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版字节的字符,将最高位设置为 0 ,其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 个码点。也就是说,UTF‑8 编码可以向下兼容 ASCII 码。这 意味着我们可以使用 UTF‑8 来解析年代久远的 ASCII 码文本。 ‧ 对于长度为 ? 字节的字符(其中 ? > 1),将首个字节的高 ? 位都设置为 1 ,第 ? + 1 1 位设置为 0 ; 从第二个字节开始,将每个字节的高 2 位都设置为 10 ;其余所有位用于填充字符的 Unicode 码点。 图 3‑8 展示了“Hello 算法”对应的 UTF‑8 编码。观察发现,由于最高 ? 位都设置为 1 ,因此系统可以通过 读取最高位 1 的个数来解析出字符的长度为 ? 。 但为什么要将其余所有字节的高 2 位都设置为 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 只有不可变 对象是可哈希的。 2. Q & A Q:哈希表的时间复杂度在什么情况下是 ?(?) ? 当哈希冲突比较严重时,哈希表的时间复杂度会退化至 ?(?) 。当哈希函数设计得比较好、容量设置比较 合理、冲突比较平均时,时间复杂度是 ?(1) 。我们使用编程语言内置的哈希表时,通常认为时间复杂度是 ?(1) 。 第 6 章 哈希表 www.hello‑algo.com 138 Q:为什么不使用哈希函数0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版字节的字符,将最高位设置为 0 ,其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 个码点。也就是说,UTF‑8 编码可以向下兼容 ASCII 码。这 意味着我们可以使用 UTF‑8 来解析年代久远的 ASCII 码文本。 ‧ 对于长度为 ? 字节的字符(其中 ? > 1),将首个字节的高 ? 位都设置为 1 ,第 ? + 1 1 位设置为 0 ; 从第二个字节开始,将每个字节的高 2 位都设置为 10 ;其余所有位用于填充字符的 Unicode 码点。 图 3‑8 展示了“Hello 算法”对应的 UTF‑8 编码。观察发现,由于最高 ? 位都设置为 1 ,因此系统可以通过 读取最高位 1 的个数来解析出字符的长度为 ? 。 但为什么要将其余所有字节的高 2 位都设置为 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 只有不可变 对象是可哈希的。 2. Q & A Q:哈希表的时间复杂度在什么情况下是 ?(?) ? 当哈希冲突比较严重时,哈希表的时间复杂度会退化至 ?(?) 。当哈希函数设计得比较好、容量设置比较 合理、冲突比较平均时,时间复杂度是 ?(1) 。我们使用编程语言内置的哈希表时,通常认为时间复杂度是 ?(1) 。 Q:为什么不使用哈希函数 ?(?) = ? 呢?这样就不会有冲突了。 在0 码力 | 383 页 | 17.61 MB | 1 年前3
Rust 异步并发框架在移动端的应用 - 陈明煜CFS 调度 : 线程优先级 • 设置线程的 Nice 值给予线程不同的权重 2 个线程 A 和 B 。 A 的权重是 1024 , B 的权重是 2048 。那么 A 获得 CPU 的时间比例是 1024/ (1024 + 2048) = 33.3% Task priority and quality of service 任务优先级调度 对框架内的工作线程设置优先级,使其 拥有不同权重。 • 南向调度融合:异步并行迭代器 将数据容器内的数据进行递归二分,对左 半和右半分别生成一个异步任务。最终对 单个数据执行用户业务逻辑 IO & CPU 融合 南向调度融合 IO & CPU 通过设置不同优先级,进 入不同线程池调度 线程池根据负载监控(任务平均等待 时间等数据)进行线程池动态扩缩 容。 任务窃取 Fusion of IO/CPU intensive 结构化并发0 码力 | 25 页 | 1.64 MB | 1 年前3
共 15 条
- 1
- 2













