前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2023-11-27 鱼进化成螃蟹

【Rust日报】2023-11-27 鱼进化成螃蟹

作者头像
MikeLoveRust
发布2023-11-29 12:50:15
2430
发布2023-11-29 12:50:15
举报
文章被收录于专栏:Rust语言学习交流

wgpu提高多线程中性能

gfx-rs 是一个在 Rust 中实现跨平台图形处理的项目。该项目的最新进展是名为 "Arcanization" 的重大重构,目的是提高在多线程中使用 wgpu 时的性能。

Arcanization 重构

  • Arcanization 旨在减少 wgpu 内部的锁争用,提供更好的性能。
  • 该重构通过将资源移动到原子引用计数指针(Arc)后,显著降低了锁争用。
  • 多线程使用 wgpu 的性能显著提高,例如在测试场景中,帧时间降低了45%。

解决的问题

  • wgpu 内部存储所有资源的数组导致了锁争用和性能问题。
  • Arcanization 将资源存储方式从直接数据更改为 Arc,显著减少了锁的持有时间。

原文链接 https://gfx-rs.github.io/2023/11/24/arcanization.html

Rust中的惯用法:构造函数与转换

这篇文章讨论了从C++过渡到Rust的经验,重点关注构造函数和类型转换, 供C++开发人员参考:

  1. 初始化: 在C++中,构造函数用于初始化实例,在Rust中通过关联函数(如new)实现。
  2. 强制不变性: 构造函数有助于强制类型的不变性。在Rust中,可能失败的构造函数返回Result<Self, Error>
  3. 默认构造函数: 在C++中,默认构造对于许多操作都很重要,在Rust中通过实现Default trait实现,通常使用#[derive(Default)]进行简化。
  4. 复制构造函数: 在C++中的复制构造函数在Rust中通过实现Clone trait实现,以允许显式复制。
  5. 可平凡复制类型: C++中的可平凡复制类型概念类似于Rust的Copy trait,允许进行字节对字节的复制。
  6. 移动构造函数: Rust的移动语义消除了C++中移动构造函数的需求。
  7. 类型转换: C++中的转换构造函数在Rust中通过实现FromInto trait实现,强调了显式性,而可能失败的转换使用TryFromTryInto trait。

这篇文章强调了Rust的显式和注重安全性的编程方式,鼓励开发人员在代码中保持显式,即使编译器可以推断出某些行为。文章提供了实际示例,并比较了C++和Rust的构造。

原文链接 https://geo-ant.github.io/blog/2023/rust-for-cpp-developers-constructors/

ripgrep: 14.0.0版本发布

ripgrep 是一款面向行的搜索工具,可以递归地在当前目录中搜索正则表达式模式。默认情况下,ripgrep 将遵循 gitignore 规则并自动跳过隐藏文件/目录和二进制文件。ripgrep 在 Windows、macOS 和 Linux 上都有一流的支持,并为每个版本提供了二进制下载。

目前版本 14.0.0 的 发布了,包含了一些新功能、性能改进和大量的 bug 修复。

原文链接 https://github.com/BurntSushi/ripgrep/releases/tag/14.0.0

ts_quote: 从 Rust 中生成 typescript 代码

这个 crate 提供了一些准引用宏,用于从 Rust 内部生成 TypeScript 代码.

这让在 Rust 中编写一些 typescript 的代码生成有了个多的选择.

下面是一些例子:

代码语言:javascript
复制
let ts: String = ts_string! { const foo: number = 42; }
// 生成的 typescript代码是: "const foo: number = 42;"


let name = "foo";
let value: u32 = 7;

let ts: String = ts_string! { const #name: number = #{value + 1}; }
// 生成的 typescript代码是: "const foo: number = 8;"

github地址 https://github.com/spencerkohan/type_reflect/tree/main/ts_quote

fish-shell 进化为 Rust 项目

fish-shell 是一个用户友好的命令行 Shell. 原本是用C++编写, 在两年前开始使用 Rust 进行迁移, 目前, 整体仓库的 Rust 代码占比为 53%, 已经成功进化为 Rust 项目.

github 地址 https://github.com/fish-shell/fish-shell

--

From 日报小组 BobQ, FBI小白

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • wgpu提高多线程中性能
  • Rust中的惯用法:构造函数与转换
  • ripgrep: 14.0.0版本发布
  • ts_quote: 从 Rust 中生成 typescript 代码
  • fish-shell 进化为 Rust 项目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档