【Rust日报】2022-04-19 Rust异步框架的性能评估

2022-06-10 14:31:40 浏览数 (1)

Cargo现已支持原生cargo add命令

Cargo now has native support for the cargo add command (from the cargo-edit crate)!

cargo现已支持原生cargo add命令,避免了从 crates.io 手动查找信息的需要,然后将其编辑为Cargo.toml。以下是使用原生cargo add功能的一些例子:

代码语言:javascript复制
cargo add regex
cargo add regex serde
cargo add regex@1
cargo add regex@~1.0
cargo add --path ../dependency

更多细节可以参见这篇书写规范的PR;

在官方原生支持cargo add命令之前,社区实现版本的cargo-edit的cargo add子命令提供类似的功能,cargo-edit提供的其他子命令包括:

代码语言:javascript复制
cargo add
cargo rm
cargo upgrade
cargo set-version

期待cargo能够早日实现类似于cargo-edit的其他原生子命令!

Rust异步框架的性能评估

A Performance Evaluation on Rust Asynchronous Frameworks

Zenoh (发音:/zeno/)是一个基于async_std的异步零开销发布/订阅、存储/查询和计算框架,Zenoh是用Rust编写的,它利用异步特性来实现高性能和可扩展性;

在这篇博客中,Zenoh官方评估了三个异步框架(async_std/Tokio/smol)在异步网络上的性能。对每一种方法进行评估,并与Rust标准库提供的等效同步原语提供的基线性能进行比较。

评估显示,async_stdsmol非常接近标准库,并且在某些工作负载上优于标准库。另一方面,Tokio似乎很快就达到了它的极限,即100 msg/s时达到18µs,并且TCP和UDP之间没有差异。此外,Tokio似乎受到CPU限制(Rust)异步任务的不利影响。

基于这些结果,Zenoh认为他们别无选择,只能继续使用async_std。也就是说,了解Tokio为什么会在比较中暴露这种行为,并改善其原始性能以缩小与async_std的差距,这将是一件有趣的事。目前,Tokio在本地主机上增加了8µs延迟,在网络上增加了10µs延迟。

作者坦言,理想情况下,他们希望看到一个异步框架成为“标准”,但要做到这一点,不能忽视原始性能。他们也期待着与社区其他人接触并共同努力,帮助实现这一目标。

systeroid: 用Rust重写sysctl(8)

Rewriting sysctl(8) in Rust: systeroid

sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下。

systeroid是“打了激素的sysctl”。与sysctl类似,它是使用procfs实现的,主要目标是管理内核参数。它有一系列特性,可以简化读取和修改值的过程,甚至可以从正式的Linux内核文档中检索有关这些值的信息。它还有一个基于文本的用户界面,用于可视化内核参数的状态,并以交互方式执行这些管理操作。


From 日报小组 odd-cat

0 人点赞