< 返回版块

ChaosBot 发表于 2018-09-29 13:55

Tags:rustnews

C和Rust的相对性能

「谎话跑得飞快,真相在后面蹒跚而行(falsehood flies, and the truth comes limping after it)」

作者用这句话来描述基准测试,原因有二:

  • 难以量化系统的性能
  • 即使获得了正确的结果,实际上也是在系统上下文是正确的

所以作者此文并不是另一个基准测试。

测试结果简要概括:

CPU L1 缓存命中率 : Rust 96.9%, C 77.9%, L2缓存Rust表现也比较稳定,但C就不行了

作者又进一步探索了,到底是Rust语言的优势,还是数据结构的优势?

结论:

  • Rust的基础数据结构表现非常好,测试结果的差异大部分是数据结构的差异。
  • 但因为Rust的所有权机制,迫使开发者不得不仔细优化这些数据结构的实现

Rust是强大的抽象又不损失性能,这并不意味着Rust总是能胜过C,但是你可以通过这篇文章,对Rust有一个正确的看待了。

原文

[延伸阅读 ](Rust中BTreeMap实现机制 http://cglab.ca/~abeinges/blah/rust-btree-case/)


书籍预告: Programming WebAssembly with Rust

该文作者准备和https://pragprog.com/合作,正在写一本书《Programming WebAssembly with Rust》。

目前进度已完成 2/3,可以关注下

原文


Tower Web 0.3 发布

支持async/await和 Handlebars模板渲染

struct MyResource;

impl_web! {
    impl MyResource {
        #[get("/")]
        async fn index(&self) -> String {
            let data = await!(load_data());
            format!("Data = {}", data)
        }
    }
}

Tower Web当然还要准备和Warp合并,但在合并之前,作者希望达到一个完成度比较高的抽象。

原文


「专业提示」在使用cargo fmt/rustfmt的时候请使用rustfmt.toml 文件

这样方便与别人协作,直接使用你的配置。即便你使用的是rustfmt默认的配置,也需要放一个空的rustfmt.toml文件,它表示你是希望跟你协作的人也使用rustfmt。

大家怎么看? 我觉得有道理。

原文


如何在流行的Rust Crate中发现漏洞

知乎专栏


评论区

写评论

还没有评论

1 共 0 条评论, 1 页