【Rust日报】Rust 中字符串的优化方式

科技   2024-11-08 15:14   加拿大  

TermTrack - 终端渲染3D平台/迷宫游戏

TermTrack终端渲染3D平台/迷宫游戏库,专注于速通和自定义关卡创建。游戏需要在终端中运行,目前建议在Windows系统上使用Microsoft Store的Windows Terminal。该仓库提供了Windows和Linux版本的游戏压缩包,用户可以下载解压后直接运行。

游戏关卡是通过文本文件定义的,使用不同的字符表示不同的网格类型,如起点、终点、墙壁、地板、陷阱等。用户可以创建自定义关卡并将其放入专门的文件夹中运行。

https://github.com/TermTrack/TermTrack

rav1d - 跨平台的AV1视频解码器

rav1d是一个跨平台的AV1视频解码器,是dav1d解码器的Rust移植版本,专注于速度和正确性。它是用Rust编写的,可以使用标准的Rust工具链进行构建。

主要特点:

  1. 支持x86、x86_64和aarch64架构的稳定版本,arm和riscv64需要nightly编译器。
  2. 支持汇编优化、8位、10位和12位色深解码等特性,可通过cargo特性标志进行配置。
  3. 可跨平台编译,并提供了多种目标平台的示例编译命令。
  4. 使用Meson测试套件进行测试,提供了test.sh辅助脚本运行测试。
  5. 提供与libdav1d兼容的C API,可作为libdav1d的替代品使用。

https://github.com/memorysafety/rav1d

Rust 中字符串的优化方式

本文主要讨论了 Rust 中字符串的优化方式,以减少字符串在内存中的占用。文章围绕 spellbook 这个拼写检查库展开,该库需要在内存中存储大量单词词根及相关规则标志。作者提出使用 Box而不是 String 来表示这些不可变的短字符串,从而避免存储不必要的容量信息,节省内存。

接着作者设计实现了一个名为 UmbraString 的新类型,它在 Box的基础上进一步压缩存储,将字符串内容和相关的标志位存储在一起。这种"德语字符串"表示法能最小化内存占用。

文章还分析了一些可能会影响优化效果的缺陷,如指针对齐等问题。最后,作者总结了 UmbraString 相较于其他方案的内存节省效果,并对该项目贡献者表示感谢。

https://the-mikedavis.github.io/posts/german-string-optimizations-in-spellbook

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章