前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2023-10-21 使用 Rust 分析数据速度提高 180,000 倍

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

作者头像
MikeLoveRust
发布2023-10-25 20:29:16
2260
发布2023-10-25 20:29:16
举报

使用 Rust 分析数据速度提高 180,000 倍

假设有来自在线考试的数据,原始数据如下:

代码语言:javascript
复制
[
  {
    "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 用户体验、添加的基本功能以及持续的性能改进等。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-22,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 Rust 分析数据速度提高 180,000 倍
  • PowerDNS 开始使用 Rust
  • Yazi 终端文件管理器发布 v0.1.5
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com