本公司某个业务逻辑,大体上是 redis 里面 pop 一条数据,做一个简单的业务转换,生成的新数据 push 回 redis
纯 C 版本是 20+us ,oc ( mrc )版本是 100+us ,最新用 rust 重构的我昨天刚测试了下,19us
也没有做什么特别的优化,只是开了 lto
好吧,我感觉是写 C 的那个老哥 memcpy 用的太多了,如果多用指针可能会更快。但是你 TM 真的敢在 C 里面飞指针?
还有一个可能的原因,C 版本的数据都是用 sprintf 来拼接的字符串,rust 版本直接使用的一个库,该库的底层逻辑是拼接&[u8]
纯 C 版本是 20+us ,oc ( mrc )版本是 100+us ,最新用 rust 重构的我昨天刚测试了下,19us
也没有做什么特别的优化,只是开了 lto
好吧,我感觉是写 C 的那个老哥 memcpy 用的太多了,如果多用指针可能会更快。但是你 TM 真的敢在 C 里面飞指针?
还有一个可能的原因,C 版本的数据都是用 sprintf 来拼接的字符串,rust 版本直接使用的一个库,该库的底层逻辑是拼接&[u8]
