ecloud
V2EX  ›  Rust

感慨一下, rust 的性能竟然这么好

  •  
  •   ecloud · Aug 2, 2022 · 10063 views
    This topic created in 1555 days ago, the information mentioned may be changed or developed.
    本公司某个业务逻辑,大体上是 redis 里面 pop 一条数据,做一个简单的业务转换,生成的新数据 push 回 redis

    纯 C 版本是 20+us ,oc ( mrc )版本是 100+us ,最新用 rust 重构的我昨天刚测试了下,19us

    也没有做什么特别的优化,只是开了 lto

    好吧,我感觉是写 C 的那个老哥 memcpy 用的太多了,如果多用指针可能会更快。但是你 TM 真的敢在 C 里面飞指针?

    还有一个可能的原因,C 版本的数据都是用 sprintf 来拼接的字符串,rust 版本直接使用的一个库,该库的底层逻辑是拼接&[u8]
    18 replies  •  2022-09-22 00:48:30 +08:00
    miniliuke
    miniliuke
    Aug 2, 2022❤️2
    1
    rust 约等于加过安全限制的 C++,由于一些限制 safe 代码的上限和 C/C++还是有一些差距,但是下限高得多
    Leviathann
    Leviathann
    Aug 2, 2022
    2
    安全抽象的威力,ripgrep 也已经展示过了
    stephenyin
    stephenyin
    Aug 2, 2022❤️2
    3
    理论上如果 C 执行慢于 Rust ,一定是 C 写得不够好。不过 Rust 确实优化的很不错。
    changnet
    changnet
    Aug 2, 2022❤️5
    4
    怎么不敢在 C 里面用指针?不用指针写什么 C

    我写 C 经常各种强转,比如把一个 int32 拷贝进一个 buffer 缓冲区,直接就把 char *类型的缓冲区强转成 int32 *来进行赋值,用 memcpy 什么的慢得跟个啥似的。只要控制好应用场景、硬件架构就不会有什么问题

    用 C 不就是这点好处么
    ecloud
    ecloud
    OP
    Aug 2, 2022
    5
    @stephenyin 道理的确是这个道理。不过在普遍低能的某行业里,我门之前的那个 C 程序的 20+us 的性能已经傲视群雄了,其实市面上大部分的 C++程序员也就会一些 boost 和 qt 罢了,双向链表不一定能写出来呢。我们上游第三方的 sdk 还一大堆 cp936/gbk 的中文 log/注释到现在都没人改
    28Sv0ngQfIE7Yloe
    28Sv0ngQfIE7Yloe
    Aug 2, 2022
    6
    看起来之前 C 的版本可优化的地方很多
    min
    min
    Aug 2, 2022
    8
    用 c 、c++不动态分配内存? 感觉是很奇怪的用法啊
    wamson
    wamson
    Aug 2, 2022 via iPhone
    9
    追性能但又不想用 cpp 的话,我会选 go 。话说最近不是出了个 carbon 么(逃
    ipwx
    ipwx
    Aug 2, 2022❤️3
    10
    我不仅敢在 C 语言里面飞指针,我还敢在 C++ 里面飞指针(逃
    novolunt
    novolunt
    Aug 2, 2022
    12
    @Morii 最近的 zig 各项性能都比 c/rust 强
    lusi1990
    lusi1990
    Aug 2, 2022 via Android
    13
    我觉得这时候瓶颈在 redis 读写上
    Nugine0
    Nugine0
    Aug 2, 2022 via Android
    14
    @changnet 强转时不考虑对齐吗?小心哪天爆炸……
    Nugine0
    Nugine0
    Aug 2, 2022 via Android
    15
    @novolunt 然而用 zig 写的 bun 正苦于修 segfault
    DonkeyBenjamin
    DonkeyBenjamin
    Aug 4, 2022
    16
    想转 carbon/zig 的赶紧去添砖加瓦啊,1.0 还没出,正需要 contributors 呢😄
    wewewefff
    wewewefff
    Sep 8, 2022
    17
    现在都是考虑用 rust 重构了
    JohnBull
    JohnBull
    Sep 22, 2022
    18
    飞指针咋了?飞指针+写时拷贝走起~~ ^0^
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1292 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    ♥ Do have faith in what you're doing.