【Rust日报】2023-10-21 使用 Rust 分析数据速度提高 180,000 倍

原文约1100字,阅读约需3分钟。发表于:

使用 Rust 分析数据速度提高 180,000 倍 假设有来自在线考试的数据,原始数据如下: [ { "user": "5ea2c2e3-4dc8-4a5a-93ec-18d3d9197374", "question": "7d42b17d-77ff-4e0a-9a4d-354ddd7bbc57", "score": 1 }, { "user": "b7746016-fdbf-4f8a-9f84-05fde7b9c07a", "question": "7d42b17d-77ff-4e0a-9a4d-354ddd7bbc57", "score": 0 }, /* ... more data ... */ ] 给定大小 k,哪个 k 问题与整体表现的相关性最高? 我们称为 k-CorrSet 问题。Python 程序在 k=5 时需要 2.9 年才能完成。Rust 程序在同一数据集上只需要 8 分钟。 这大约是 180,000 倍的加速。关键优化: 使用 Rust 的编译器优化 对数值而不是字符串做哈希 使用索引向量代替 HashMap 使用位集进行有效的成员资格测试 使用 SIMD 实现高效的位集 使用多线程将工作分配给多个核心 使用批处理来避免工作分配中的瓶颈 GitHub 链接,https://github.com/willcrichton/corrset-benchmark PowerDNS 开始使用 Rust PowerDNS Recursor发布 v5.0 的第 2 个 alpha 版本。其处理 YAML 文件的代码是用 Rust 实现的。 详细信息,https://mailman.powerdns.com/pipermail/pdns-announce/2023-October/001284.html Yazi 终端文件管理器发布 v0.1.5 Yazi 是一个 Rust 实现的终端文件管理器,基于非阻塞异步 I/O。 它旨在提供高效、用户友好且可定制的文件管理体验。这是有史以来最大,周期最长的更新。 该版本带来了许多有意义的变化,包括新的主题系统、改进的 Windows 用户体验、添加的基本功能以及持续的性能改进等。 GitHub 链接,https://github.com/sxyazi/yazi From 日报小组 洋芋 社区学习交流平台订阅: Rust.cc论坛: 支持rss 微信公众号:Rust语言学习交流

一篇文章介绍了使用 Rust 分析数据的速度提高了 180,000 倍,关键优化包括使用 Rust 的编译器优化、对数值而不是字符串做哈希、使用索引向量代替 HashMap 等。PowerDNS Recursor发布 v5.0 的第 2 个 alpha 版本,其处理 YAML 文件的代码是用 Rust 实现的;Yazi 终端文件管理器发布 v0.1.5,该版本带来了许多有意义的变化,包括新的主题系统、改进的 Windows 用户体验、添加的基本功能以及持续的性能改进等。

相关推荐 去reddit讨论