【Rust日报】 2019-05-23:性能强悍的 blake2b_simd 和 blake2s_simd 姐妹花

2019-07-09 13:13:09 浏览数 (1)

性能强悍的 blake2b_simd 和 blake2s_simd 姐妹花

BLAKE 和 BLAKE2 是密码学哈希函数,来源于 Dan Bernstein 的 ChaCha。特点是在64位机上,性能比 SHA-3, SHA-2, SHA-1, 和 MD5 等都高。属于目前最高性能的哈希函数之一。而这两个库的实现,也在追求性能的极致。

以下是一些性能评测数据:

代码语言:javascript复制
╭─────────────────────────┬────────────╮
│ blake2s_simd many::hash │ 2.454 GB/s │
│ blake2s_simd BLAKE2sp   │ 2.421 GB/s │
│ sneves BLAKE2sp         │ 2.316 GB/s │
│ blake2b_simd many::hash │ 2.223 GB/s │
│ blake2b_simd BLAKE2bp   │ 2.211 GB/s │
│ sneves BLAKE2bp         │ 2.150 GB/s │
│ blake2b_simd BLAKE2b    │ 1.008 GB/s │
│ OpenSSL SHA-1           │ 0.971 GB/s │
│ sneves BLAKE2b          │ 0.949 GB/s │
│ libsodium BLAKE2b       │ 0.940 GB/s │
│ OpenSSL SHA-512         │ 0.666 GB/s │
│ blake2s_simd BLAKE2s    │ 0.647 GB/s │
╰─────────────────────────┴────────────╯

代码语言:javascript复制
╭─────────────────────┬────────────╮
│ b2sum --blake2sp    │ 1.727 GB/s │
│ b2sum --blake2bp    │ 1.618 GB/s │
│ b2sum --blake2b     │ 0.887 GB/s │
│ coreutils sha1sum   │ 0.854 GB/s │
│ coreutils b2sum     │ 0.713 GB/s │
│ coreutils md5sum    │ 0.632 GB/s │
│ coreutils sha512sum │ 0.620 GB/s │
│ b2sum --blake2s     │ 0.603 GB/s │
╰─────────────────────┴────────────╯

评测的环境和对比请进下面的 Repo 查看。

Blake 论文 Repo

gbdt-rs - 梯度提升决策树的Rust实现

梯度提升决策树是机器学习中的算法。这个库没有使用unsafe代码。

这个库是百度 X-Lab 实验室出的。目前不清楚他们做这个库的目的。

Repo

顺便介绍一下他们的 mesalock-linux 项目。这个项目目的是要从底至上逐步打造一个完整的安全的Linux发生版 (除内核不动外,其它绝大部分使用Rust重写)

mesalock-linux

感兴趣的可以为他们贡献代码。

为什么选择Rust - 一个视频

Buoyant CTO Oliver Gould (@olix0r) 和他的一个同事,参加了 The Open Source Show,大谈为什么选择Rust。

Buoyant 就是开发 Linkerd 这个 service mesh 产品的那个公司,懂了吧。

00:51 哪种类型的程序员使用Rust? 02:29 为什么Linkerd使用Rust? 03:12 Rust的历史 04:24 Oliver使用Rust的经历

Repo

一篇好文,教你如何在编程的过程中避免克隆

作者分享了一些技巧和经验,推荐阅读。

Read More

用Rust写编译器

其实用Rust尝试和玩儿写编译器的已经很多了。这篇文章讲得很详细。作者发现用Rust写编译器很舒服。他个人编码只花了大约 60 个小时。

0 人点赞