getrandom()将在新内核中得到80倍以上的性能提升

rayylee rayylee     2023-03-09     772

关键词:

随机数生成器代码最近在 WireGuard 的创建者 Jason Donenfeld 领导下进行了多项改进。在 Linux 5.17 中,SHA1 在随机代码中被替换为 BLAKE2,使其性能和安全性得到很大提升。

在 Linux 5.18 中他对随机代码作出了更多的改进。Donenfeld 一直在进行更多随机数生成器增强功能,目标是在今年3月底内核合并窗口引入到 Linux 5.18。

一个有趣的变化是 getrandom() 系统调用在新内核下可以更快。获取随机数的函数 getrandom() 使用正在开发的最新代码提供了更快的性能。英特尔内核测试机器人在 stress-ng getrandom() 基准测试中得到了 8450% 的改进。是的,提高了 8450%。

此次更改基本上会将之前的全局结构(实际上是 per-numa 节点结构)更改为 per-cpu 结构,这意味着快速路径上的许多锁都会消失。因此,当在具备多核的 CPU 上同时尝试 getrandom() 时,毫无疑问性能会出现提升。

除此之外,当从 per-numa 更改为 per-cpu 后,也将不再需要被推迟到工作队列后才能进行。此次改进将会为高核心数的PC和服务器带来巨大收益。

原文:
https://mp.weixin.qq.com/s/bG9GgdMrxf9C1K0X76SIeA

markdown商家可以选择将在新标签页中打开的特定导航项(代码片段)

查看详情

同一函数中的异常处理会使编译时间减慢 2 倍以上,为啥?

】同一函数中的异常处理会使编译时间减慢2倍以上,为啥?【英文标题】:Exceptionhandlinginthesamefunctionslowscompiletimesby>2x,why?同一函数中的异常处理会使编译时间减慢2倍以上,为什么?【发布时间】:2014-07-2100:24:14【问题描述】... 查看详情

来自 json 的原型反序列化将在新字段或未知枚举值上失败

】来自json的原型反序列化将在新字段或未知枚举值上失败【英文标题】:Protodeserializationfromjsonwillfailonnewfieldsorunknownenumvalues【发布时间】:2016-05-3104:47:34【问题描述】:proto旨在引入新字段不会破坏您在旧版本上运行的代码。但... 查看详情

CUDA - 子网格将在哪个流中?

】CUDA-子网格将在哪个流中?【英文标题】:CUDA-Whichstreamwillchildgridbein?【发布时间】:2022-01-1403:03:33【问题描述】:如果我使用动态并行,子网格将在哪个流中运行?例如,我有一个叫A的内核,另一个叫B的内核。B是由A启动的... 查看详情

SOLR中Max Score的80%及以上(请检查正文)限制结果数量

】SOLR中MaxScore的80%及以上(请检查正文)限制结果数量【英文标题】:LimitnumberofresultsbyMaxScore\'s80%andabove(PleaseCheckBody)inSOLR【发布时间】:2021-03-1004:16:43【问题描述】:假设我的MaxScore是500。那么我只想要500的80%及以上分数的结... 查看详情

Jupyter:如何在新内核中实现图像查看功能

】Jupyter:如何在新内核中实现图像查看功能【英文标题】:Jupyter:howtoimplementimageviewingfunctionalityinnewkernel【发布时间】:2017-09-0818:58:42【问题描述】:我目前正在使用Cling(C++解释器),它是jupyter内核,我想使用类似于IPython.displ... 查看详情

USB-Serial 在新的 linux(内核 4.12.14)中立即失去连接

】USB-Serial在新的linux(内核4.12.14)中立即失去连接【英文标题】:USB-Seriallosesconnectionimmediatelyinnewlinux(kernel4.12.14)[closed]【发布时间】:2019-02-0803:43:15【问题描述】:我升级了我的Linux(Opensuse从42.3到15)但遇到了新的错误。当我... 查看详情

错误:需要一个“String”类型的值,但在新的 note.Note.fromJson 中得到一个“Null”类型的值

】错误:需要一个“String”类型的值,但在新的note.Note.fromJson中得到一个“Null”类型的值【英文标题】:Error:Expectedavalueoftype\'String\',butgotoneoftype\'Null\'atnewnote.Note.fromJson【发布时间】:2021-10-3114:06:50【问题描述】:我正在观看一... 查看详情

使用apachespark对mysql调优查询速度提升10倍以上

在这篇文章中我们将讨论如何利用ApacheSpark来提升MySQL的查询性能。介绍  在我的前一篇文章 ApacheSparkwithMySQL 中介绍了如何利用ApacheSpark实现数据分析以及如何对大量存放于文本文件的数据进行转换和分析。瓦迪姆还做... 查看详情

性能提升1400+倍,快来看mysqlvolcano模型迭代器的谓词位置优化详解(代码片段)

...词位置优化详解。本文分享自华为云社区《华为云数据库内核专家为您揭秘MySQLVolcano模型迭代器性能提升千倍的秘密》,作者:GaussDB数据库。20年以上数据库内核研发经验。原IBMDB2数据库内核专家,专长数据库内核性... 查看详情

使用 Xcode 11 构建 iOS 应用程序后,速度要慢 20 倍以上

】使用Xcode11构建iOS应用程序后,速度要慢20倍以上【英文标题】:iOSAppis>20xslowerafterbuildingwithXcode11【发布时间】:2019-12-1623:31:40【问题描述】:我有一个为iOS12(使用Xcode10、Swift4.2)开发的应用程序(Xcode项目),现在我想使... 查看详情

为啥用 innerText 替换 InnerHTML 会导致性能下降 15 倍以上

】为啥用innerText替换InnerHTML会导致性能下降15倍以上【英文标题】:whydoesreplacingInnerHTMLwithinnerTextcauses>15Xdropinperformance为什么用innerText替换InnerHTML会导致性能下降15倍以上【发布时间】:2013-10-1522:00:14【问题描述】:这个问题来... 查看详情

phpunit --path-coverage(分支覆盖)需要 100 倍以上的时间

】phpunit--path-coverage(分支覆盖)需要100倍以上的时间【英文标题】:phpunit--path-coverage(branchcoverage)takes100xmoretime【发布时间】:2021-11-1007:09:40【问题描述】:我有一个包含大量测试的Laravel项目。我正在使用pcov计算代码覆盖率,... 查看详情

如何在geo数据库中比较两个子集我想在两组芯片数据之间比较存在表达差异4倍以上的基因应该怎么操作

参考技术A你好,本公司是专门做生物信息数据处理的。差异表达基因的筛选(阀值)以及后面的生物信息分析都可以做的。差异表达基因筛选步骤:选择GEO数据——下载芯片数据——差异分析(方法有很多:SAM法,R包处理,T-te... 查看详情

华为开发者贡献linux内核补丁,将核心内核函数速度提升715倍

...x6.2近日合并了一个重要补丁,该补丁能够将一个核心内核函数速度提升715倍。从合并的注释可知,贡献此补丁的维护者ZhenLei来自华为,他将kallsyms_lookup_name()的平均查找性能提高了715倍,从而使内核里面旧实现的... 查看详情

MPI:如何启动三个将在不同线程中执行的函数

】MPI:如何启动三个将在不同线程中执行的函数【英文标题】:MPI:Howtostartthreefunctionswhichwillbeexecutedindifferentthreads【发布时间】:2012-10-1800:26:27【问题描述】:我有3个功能和4个核心。我想使用MPI和C++在新线程中执行每个函数我... 查看详情

对象散布在新数组内

...用MongoDB驱动程序中的Aggregate函数。为了进行搜索,用户将在URL的查询参数中传递搜索查询。话虽如此,我正在尝试根据查询参数是否存在来构建搜索对象。为了构建搜索对象,我目前正在使用对象扩展语法和参数短路,如 查看详情

alijdk8.1.1的优化使ssl性能提升2倍以上

...如果你的java容器提供https服务的,性能可以提升两倍以上,这是一个非常非常非常非常非常值得升级的提升。在jdk8.0时摸高压测qps到3000时再也上不去,主要是ssl里面的一个锁效率低,优化后qps达到 8000也很稳定。... 查看详情