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

2024-06-23 01:18

本文主要是介绍【Rust日报】 2019-05-23:性能强悍的 blake2b_simd 和 blake2s_simd 姐妹花,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

性能强悍的 blake2b_simd 和 blake2s_simd 姐妹花

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

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

╭─────────────────────────┬────────────╮
│ 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 │
╰─────────────────────────┴────────────╯

╭─────────────────────┬────────────╮
│ 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 个小时。

做编译方面工作的朋友推荐阅读。

Repo


From 日报小组 @Mike

日报订阅地址:

独立日报订阅地址:

  • Telgram Channel
  • 阿里云语雀订阅
  • Steemit
  • GitHub

社区学习交流平台订阅:

  • Rust.cc论坛: 支持rss
  • Rust Force: 支持rss
  • 微信公众号:Rust语言学习交流

这篇关于【Rust日报】 2019-05-23:性能强悍的 blake2b_simd 和 blake2s_simd 姐妹花的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085920

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom