当前位置: 首页 > news >正文

能效?性能?一个关于Windows下使用openssl speed进行速度测试的诡异问题

问题描述

最近的某个软件用到了openssl,所以就想着测试一下速度。我的电脑是惠普的,CPU是AMD Ryzen 7 PRO 6850HS,系统是Win11。我使用openssl自带的speed测试加密/解密的速度,命令大致如下:

openssl speed -evp aes-128-gcm

结果诡异的问题就出现了。结果显示,最佳能效模式的速度比最佳性能的速度还快,快了接近一倍,而且最佳能效模式下面显示的结果跟这个命令的说明不符。初步推测是因为计时的错误导致的问题。在这里记录一下,后面有时间看看具体是什么原因。

我用MSYS2使用pacman安装的预编译的openssl-3.3.0和在Cygwin下面自己编译的openssl-3.3.0(我自己编译的版本使用的优化级别是-O3,预编译的是-O2),但是这个问题都出现了。结果见下图,所有的图片里面,上面的一次测试是在最佳能效模式下测试的,下面的一次测试是在最佳性能模式下测试的。

Cygwin下测试aes-128-gcm

Cygwin下测试aes-128-gcm

Cygwin下测试aes-256-gcm
Cygwin下测试aes-256-gcm

MSYS2下测试aes-128-gcm

MSYS2下测试aes-128-gcm

MSYS2下测试aes-256-gcm
MSYS2下测试aes-256-gcm

WSL测试

关于为什么我说是这个诡异的问题是计时错误导致的。因为这个命令输出里面说是测试3 s内针对不同长度的数据加解密多少次,但是最后统计出来的时间并不是3 s,在不同性能模式下,统计的时间长度不一样。最佳性能模式下,时长比最佳能效模式下得到的时长更长。
速度 = 加密(解密)循环 ∗ 数据长度 时间 速度=\frac{加密(解密)循环* 数据长度}{时间} 速度=时间加密(解密)循环数据长度
如此算来,就算是能效模式CPU频率低,但是分母小了,所以得到的速度反而更快了。

在同一个设备下,用WSL进行测试(虽然虚拟机存在一定损耗,但是无论是最佳能效还是最佳性能模式都有损耗),发现没有出现这个问题,无论在什么模式下,最终输出中的时长都是3 s左右,且最佳性能模式下,加密/解密速度比最佳能效模式下快,这也符合我们的预期。结果见下图。
WSL下测试aes-128-gcm

WSL(Debian 12)下测试aes-128-gcm
WSL(Debian 12)下测试aes-256-gcm
WSL(Debian 12)下测试aes-128-gcm

相关文章:

能效?性能?一个关于Windows下使用openssl speed进行速度测试的诡异问题

问题描述 最近的某个软件用到了openssl,所以就想着测试一下速度。我的电脑是惠普的,CPU是AMD Ryzen 7 PRO 6850HS,系统是Win11。我使用openssl自带的speed测试加密/解密的速度,命令大致如下: openssl speed -evp aes…...

block性能考虑和线程安全

性能考虑 频繁地创建和销毁大量的 block 可能会对性能造成影响,特别是当这些 block 被拷贝到堆上时。同时,block 捕获大量数据时也会增加内存使用。 在讨论性能考虑时,主要关注的是 block 的创建、拷贝到堆上以及捕获变量的成本。以下是针对…...

没有公网ip,如何实现外网访问内网?

目前拨号上网是最广泛的上网方式,这种方式优点是价格便宜,缺点是没有固定公网ip,每次重新您拨号ip地址都会变。如果有一台服务器,需要实现外网访问,在没有固定公网ip的环境下,该如何实现呢?使用…...

Python中如何将小数转化为百分数进行输出

小数转化为百分数 Python中如何将小数转化为百分数进行输出基本概念使用字符串格式化1. 使用字符串格式化操作符 %2. 使用str.format()方法3. 使用f-string(格式化字符串字面量) **重点内容**:**无论是通过使用%格式化操作符、str.format()方…...

加入全球少儿编程运动:Scratch让每个孩子都能成为创造者(Scratch最新版客户端和初/中/高级学习资料整理分享)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 安装与使用📝 社区与资源 🎈 获取方式 🎈⚓️ 相关链接 ⚓️ 📖 介绍 📖 你知道…...

引擎:主程渲染

一、引擎发展 二、引擎使用 1.游戏渲染流程 2.3D场景编辑器操作与快捷键 3.节点的脚本组件 脚本介绍 引擎执行流程 物体节点、声音组件\物理组件\UI组件、脚本组件 暴露变量到面板 4.节点的查找 基本查找 this.node:挂载当前脚本的节点A; this.nod…...

Java 高级面试问题及答案

问题6:请解释Java中的异常处理机制。 探讨过程: 异常处理是Java程序中错误处理的关键部分。正确地处理异常可以提高程序的稳定性和健壮性。 答案: Java中的异常处理机制允许程序在出现错误时,不会导致程序立即终止,而…...

邮件的安全认证(dkim/spf/dmarc)

dkim dkim是用来识别电子邮件合法以及完整性的一种技术手段,主要方式是通过非对称加密对邮件本身进行签名,邮件接收方可以使用发送方提供的公钥对签名进行校验,来确认邮件是否伪造或者被篡改。 如何查看dkim dkim签名被放在邮件原始内容的…...

单调栈问题

原理 单调栈的核心原理是:在栈内保持元素的单调性(递增或递减) 单调递增栈: 用于处理“下一个更小的元素”问题。当新元素比栈顶元素小或等于时,直接入栈;否则,一直从栈顶弹出元素&#xff0c…...

Hexo博客重新部署与Git配置

由于电脑重装了一次,发现之前Hexo与NexT主题版本过于落后,重新部署了下。 1 Node.js与git安装 这一块安装就不赘述了。去两个官网找安装文件安装即可。 node.js git 打开git以后配置的几个关键命令行。 git config --global user.name "你的gi…...

KUKA机器人专业名词解释

1、CCU Cabinet Control Unit (控制柜控制单元) 2、CIB Cabinet Interface Board (控制柜接口板) 3、HMI Human Machine Interface (人机界面);KUKA.HMI 是 KUKA 操作界面。 4、KCB …...

阿里云 物联网平台 MQTT连接、数据传输

阿里云 物联网平台 MQTT连接、数据传输 1、设备连接阿里云 2、多设备之前的通信、数据流转 3、设备数据来源的读取。 基于C# winform 开发上位机,读取设备、仪器、MES或者电子元器件的数据,MQTT传输至阿里云平台,可视化界面构建界面&#…...

栈和队列OJ练习题及解答

前言 上一篇博客已经讲到了栈和队列的数据结构,概括一下:栈后进先出(Last In First Out)、队列先进先出(First In First Out)。那么,接下来就来讲讲,关于栈和队列的相关练习题&#…...

渗透测试-信息收集

网络安全信息收集是网络安全领域中至关重要的一环,它涉及到对目标系统、网络或应用进行全面而细致的信息搜集和分析。这一过程不仅有助于理解目标网络的结构、配置和潜在的安全风险,还能为后续的渗透测试、风险评估和安全加固提供有力的支持。 在网络安…...

电力乙级资质延伸换证:企业转型的契机

电力乙级资质延伸换证不仅是企业合规运营的必要步骤,同时也为企业转型提供了重要的契机。在这个过程中,企业可以重新审视自身的业务模式、管理体系、技术能力等方面,寻找新的增长点和发展方向。 首先,电力乙级资质延伸换证要求企业…...

基于Redis实现分布式锁——Java版本

基于Redis实现分布式锁——Java版本 版本一版本二版本三Redisson 定义分布式锁接口如下: public interface ILock {boolean tryLock(long timeoutSec);void unlock(); }版本一 设定业务超时时间,到期自动解锁。缺点是超时时间不好估计,需要…...

Qt自定义控件--提升为

为什么要自定义控件 1,有复合小控件需要组合为一个整体控件时; 2,一个复合控件需要重复使用时; 实现 自定义控件文件 新增三个文件 关联不同组的控件 关联之前的准备工作 1,在主控件选择和子控件所有控件所在控件…...

Lua 基础 01 入门

Lua 基础相关知识 第一期 注释 -- 单行注释--[[多行注释 --]]-- 多加一个横杠符号就能重新启用注释内的代码 ---[[print("Lua") --]]数据类型 Lua 是动态类型语言,变量不需要类型定义,只需要为变量赋值。 Lua 有 8 种基本类型&#xff1a…...

远程连接阿里云ECS

说明:ECS(阿里云服务器)可选择的系统镜像如下: 本文介绍基于Windows系统,对CentOS、Ubuntu、Windows这三个操作系统的连接方式,以及连接工具Windterm的使用。 CentOS & Windterm CentOS是我使用时间最…...

【C++】多态(上)超详细

封装,继承,多态不只是C的三大特性,而是面向对象编程的三大特性。 什么是多态: 不同的对象做同一件事情,结果会出现多种形态。 1.满足多态的几个条件 1.父子类完成虚函数重写(需要满足三同:函…...

拆解新客裂变与裂变率:诺云用户可直接套用的获客增长指南

在流量红利消退、公域获客成本高企的当下,“新客裂变”早已成为企业降低获客成本、实现指数级增长的核心抓手,而“裂变率”作为衡量裂变效果的核心指标,直接决定了这场获客动作的成败。今天,我们就聚焦“新客裂变”与“裂变率”这…...

如何高效掌握FDS:开源火灾模拟的完整实战指南

如何高效掌握FDS:开源火灾模拟的完整实战指南 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds Fire Dynamics Simulator(FDS)是美国国家标准与技术研究院开发的权威火灾动力学模拟软件…...

剪流AI事业大使是不是割韭菜?深度解析其真实运作细节与收益模型

近年来,“AI事业大使”成为一个热门话题,尤其是剪流AI推出的相关计划,引发了广泛讨论。其中,“AI事业大使是不是割韭菜”是许多观望者心中的核心疑问。本文将基于其公开的运作细节与权益体系,进行客观、深度的解析&…...

深度解析:三合一技术方案破解Cursor AI编辑器限制的终极指南

深度解析:三合一技术方案破解Cursor AI编辑器限制的终极指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached yo…...

试0998y测试0998y试0998y测试0998y试0998y测试0998y试0998y测试0998y

试0998y测试0998y试0998y测试0998y试0998y测试0998y...

STM32 ADS1115接口文件(HAL库+硬件IIC)

STM32 ADS1115接口文件(HAL库硬件IIC) 【下载地址】STM32ADS1115接口文件HAL库硬件IIC 本资源包专为STM32系列微控制器设计,旨在简化通过HAL库利用硬件IIC接口与ADS1115高精度模拟到数字转换器(ADC)交互的过程。ADS1115是一款高性能的16位ΔΣ…...

0502光刻机破局 第五卷:EUV光源系统(S级 长期死磕突破)第2小节:国内外技术参数差距

第五卷:EUV光源系统(S级 长期死磕突破) 第2小节:国内外技术参数差距(全量化对标,ASML vs 国产,死磕数据) 前置硬核声明 本节100%量化、100%对标、100%无修饰,直接把 ASML…...

Allegro与OrCAD联动实操:如何安全高效地完成PCB位号‘反向同步’而不飞器件?

Allegro与OrCAD协同设计中的位号反标:规避风险的全流程实战指南 在复杂电子系统设计领域,Cadence Allegro与OrCAD的协同工作流程已成为行业标准配置。当PCB布局工程师经过多轮迭代优化器件位置后,如何将最终的位号变更安全地反向同步到原理图…...

Hitboxer:免费解决游戏按键冲突的专业SOCD重映射工具

Hitboxer:免费解决游戏按键冲突的专业SOCD重映射工具 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否曾在激烈的格斗游戏中,因为同时按下左右方向键而无法准确释放必杀技&#xff…...

英雄联盟录像编辑完整教程:5分钟掌握League Director专业工具

英雄联盟录像编辑完整教程:5分钟掌握League Director专业工具 【免费下载链接】leaguedirector League Director is a tool for staging and recording videos from League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/le/leaguedirector …...