Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇第三届中国 Rust 开发者大会 Await-Tree Async Rust 可观测性的灵丹妙药 赵梓淇 Bugen Zhao Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await-Tree Async Rust 可观测性的灵丹妙药0 码力 | 37 页 | 8.60 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版記憶體是所有程式的共享資源,當某塊記憶體被某個程式佔用時,則通常無法被其他程式同時使用了。因此 在資料結構與演算法的設計中,記憶體資源是一個重要的考慮因素。比如,演算法所佔用的記憶體峰值不應 超過系統剩餘空閒記憶體;如果缺少連續大塊的記憶體空間,那麼所選用的資料結構必須能夠儲存在分散的 記憶體空間內。 如圖 3‑3 所示,物理結構反映了資料在計算機記憶體中的儲存方式,可分為連續空間儲存(陣列)和分散空 型別使用 UTF‑16 編碼,每個字元佔用 2 位元組。這是因為 Java 語言設計之初,人們 認為 16 位足以表示所有可能的字元。然而,這是一個不正確的判斷。後來 Unicode 規範擴展到了超 過 16 位,所以 Java 中的字元現在可能由一對 16 位的值(稱為“代理對”)表示。 ‧ JavaScript 和 TypeScript 的字串使用 UTF‑16 編碼的原因與 Java 類似。當 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於以上程式語言對字元數量的低估,它們不得不採取“代理對”的方式來表示超過 16 位長度的 Unicode 字元。這是一個不得已為之的無奈之舉。一方面,包含代理對的字串中,一個字元可能佔用 2 位元組或 4 位 元組,從而喪失了等長編碼的優勢。另一方面,處理代理對需要額外增加程式碼,這提高了程式設計的複雜0 码力 | 388 页 | 18.82 MB | 10 月前3
新一代分布式高性能图数据库的构建 - 沈游人新一代分布式高性能图数据库的构建 北京海致星图科技有限公司 2023-06-18 沈游人 数据库与大数据专场 海致简介—企业级知识图谱开创者 专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 客户的信任 • 上线某银行反欺诈场景 业务效果提升 10%+ 灵活易用的开发平台 • AtlasML Python Library • 集成 Jupyter Notebook 超参数自动优化 • 支持超参数自动调优,解放算 法科学家生产力,避免繁杂的 手动调参 海致图神经网络平台特点 Rust 语言特性助力构建高性能图数据库 01 利用 Rust Stream 进行数据流式0 码力 | 38 页 | 24.68 MB | 1 年前3
Comprehensive Rust(繁体中文)48 • 示範如何透過存取 newtype 中的單一欄位,將“f64”值新增至 Newtons 類型。 – Rust 通常不太能接受不明確的內容,例如自動展開或使用布林值做為整數。 – 運算子超載會在第 3 天 (泛型) 討論。 • 此範例巧妙地以 Mars Climate Orbiter 的失敗經驗做為參照。 10.3 列舉 enum 關鍵字可建立具有幾個不同變體的型別: enum fn eq(&self, other: &u32) -> bool { self.id == *other } } 實務上一般會衍生這些特徵,但鮮少會實作這些特徵。 17.2 疊代器 運算子超載會透過 std::ops: 內的特徵實作: struct Point { x: i32, y: i32, } impl std::ops::Add for Point { type Output implement Add for &Point. In which situations is that useful? – 回答:Add:add 會耗用 self。如果您要超載運算子的型別 T 不是 Copy,建議您一併為 &T 超載運算子。這可避免呼叫點中出現不必要 的複製作業。 • 為什麼 Output 是關聯型別?可將其用做方法的型別參數嗎? – Short answer: Function0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 20240646 • 示範如何透過存取 newtype 中的單一欄位,將“f64”值新增至 Newtons 類型。 – Rust 通常不太能接受不明確的內容,例如自動展開或使用布林值做為整數。 – 運算子超載會在第 3 天 (泛型) 討論。 • 此範例巧妙地以 Mars Climate Orbiter 的失敗經驗做為參照。 10.3 列舉 enum 關鍵字可建立具有幾個不同變體的型別: enum fn eq(&self, other: &u32) -> bool { self.id == *other } } 實務上一般會衍生這些特徵,但鮮少會實作這些特徵。 17.2 疊代器 運算子超載會透過 std::ops: 內的特徵實作: struct Point { x: i32, y: i32, } impl std::ops::Add for Point { type Output implement Add for &Point. In which situations is that useful? – 回答:Add:add 會耗用 self。如果您要超載運算子的型別 T 不是 Copy,建議您一併為 &T 超載運算子。這可避免呼叫點中出現不必要 的複製作業。 • 為什麼 Output 是關聯型別?可將其用做方法的型別參數嗎? – Short answer: Function0 码力 | 356 页 | 1.41 MB | 1 年前3
硬件创业公司的Rust应用和转型 - 陈昱衡SDK迁移到Rust 更多行业支持 更好的ROTS 更稳定的SDK 我司目前阶段,过渡期 嵌入式Rust应用 脑立体定位仪 1um精度 超小体积 自定义类SPI同步采集协议 采集+计算+自适应滤波 全自动脑立体定位仪(在研) 电机控制移动 传感器精度增到100nm 远程控制 自动运行 关注逻辑本身不用过分关心内存安全 嵌入式项目评估0 码力 | 23 页 | 4.95 MB | 1 年前3
Rust在Substrate 开发框架中的使用孙凯超 Rust 在 Substrate 开发框架 中的使用 内容 ● Rust 简介 ● Rust 特性 ● Why blockchain ● 什么是Substrate ● Substrate Runtime 组件 ● Substrate 应用开发 Bugs from Chrome Rust 简介 Performance Safety C, C++ Java JS, Python0 码力 | 37 页 | 967.22 KB | 1 年前3
Rust 在算法交易中的实际应用与积极效应合作机构 公司结构 50% 工程师 20% 策略研究 20% 运维中台 10% 市场商务 上海 徐汇漕河泾 总部 浦东世纪汇 策略中心 北京/成都 分公司 研发中心 自建超算中心 徐州 新加坡/美国 海外 研发中心 Rust 在非凸算法交易服务中的全栈应用实践 内 部 智 能 引 擎 行情服务 总控模块 预测模型 策略模块 数据总线 智 能 特 征0 码力 | 18 页 | 3.49 MB | 1 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺GitHub 为截止 2023 年 5 月数据 TDengine 的 核 心 代 码 全 部 开 源 www.github.com/taosdata/TDengine 全球 50 多个国家安装实例超 270k | GitHub 全球趋势排行榜多次排名第一 TDengine - 数据模型 1. 设备 ID 及关联属性( Tags ) 2. 时间戳 3. 结构化采集量 STable 超级表 Table0 码力 | 29 页 | 2.26 MB | 1 年前3
Comprehensive Rust(日语) 202412rev() { value = (value << 7) | (b & 0x7f) as u64; } return (value, &data[i + 1..]); } } // 7 バイトを超える値は無効です。 panic!("Too many bytes for varint"); } /// タグをフィールド番号と WireType に変換します。 fn unpack_tag(tag: rev() { value = (value << 7) | (b & 0x7f) as u64; } return (value, &data[i + 1..]); } } // 7 バイトを超える値は無効です。 panic!("Too many bytes for varint"); } /// タグをフィールド番号と WireType に変換します。 fn unpack_tag(tag: する必要があります)。 • ツールとライブラリは、次のような一連の主要な型を処理できます。 – &[T] は、特定の ABI やメモリレイアウトを保証するものではありませんが、FFI の境界を 超えて渡すことができます。手動バインディングでは、std::span/ &[T] を手動で 分離し、ポインタと長さから再構築する必要があります。言語ごとに空のスライスの表現方 法が若干異なるため、エラーが発生しやすくなります。 0 码力 | 381 页 | 1.36 MB | 10 月前3
共 15 条
- 1
- 2













