卡片召唤师
精华
|
战斗力 鹅
|
回帖 0
注册时间 2019-2-13
|
如何评价Rust实现的PNG解码器比C更快
楼上几个汇编仙人和老中医似的, 承认 rustc 更先进和灭绝中医一样困难.肤浅的归功于 SIMD
好比 Rust 人用现代仪器研究了老半天, 发现了病灶, 然后你们跳出来说哎哎哎, 我用望诊问切早就发现了.
要是真的这么简单, 你大可以逐指令直接翻译成 C 去混个 PR, 你要是看不懂 Rust 那就用 ChatGPT 翻译.
从信息学第一性原理出发, 越高层的语言, 能提供越高级的语义约束, 编译器才能够做更严格, 更彻底的优化.
rust png 比 libpng 快主要就两点.
Alias Analysis, 这是编译器中核心研究问题之一, 在 C 语言中极端困难, 且阻碍多种优化。Rust 通过语义保证,可以无畏的发射 noalias,便于 LLVM 做完全优化。
Automatic Vectorization, 这是编译器研究中的前沿方向,这个其实 Rust 做的也就一般,这方面远远比不了有 staging 概念的 zig,不过打打相关语义严重缺失的 C 语言还是没问题的。
|
|