性能表现:
png crate 在 x86 上比 libpng 快 1.8 倍,在 ARM 上快 1.5 倍。png、zune-png、wuffs)在速度上全面领先于 C 的实现(libpng、spng、stb_image)。技术原理:
png crate 依赖于 Rust 编译器的自动矢量化,而不是显式的 SIMD 指令。这种方法性能跨架构表现稳定,x86 平台上还结合了 stb_image 的过滤器实现。zune-png 和 stb_image)则主要依赖手动编写的 SIMD 指令,导致其在不同架构上的表现不一致。png crate 使用了流式解压器 fdeflate,通过批量字节解码等优化策略提升性能,同时支持流式解压以实现更广泛的适用性。zune-png 和 wuffs 则采用一次性解压整个图像的策略。适用性:
png crate 已用于 image crate,显示其广泛的生产环境适用性。png crate 替代 libpng。生产就绪:
png 和 zune-png 已通过超过 10 万张图片的测试验证其稳定性。wuffs 在某些灰度图像处理上存在已知问题,但可能与配置有关。这表明,现代内存安全的实现不仅安全性高,还能在性能上赶超甚至超越传统内存不安全的 C 实现。
https://www.reddit.com/r/rust/comments/1ha7uyi/memorysafe_png_decoders_now_vastly_outperform_c/
这哥们儿用心整理了硬核版Rust学习材料,大家作为进阶可以关注。
https://security.humanativaspa.it/an-offensive-rust-encore/
--
From 日报小组 Mike
社区学习交流平台订阅:
原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。