我目前正在评估笔记本电脑和工作站上的AES加密和解密速度。
执行时
cryptsetup benchmark -c aes --key-size 128
如果没有AESNI扩展,我的结果几乎达到200MB / s。 当我用
加载扩展名时modprobe aesni-intel
并执行相同的基准测试我得到了完全不切实际的结果
例如解密时为68021MB / s
任何建议可能导致这些不切实际的结果的问题?
BTW:笔记本电脑上的操作系统是Ubuntu,Workstation是Gentoo卸载预定义的ubuntu软件包 从源头安装 与
make check
make脚本执行单个测试,这些结果很好 但是当我通过
安装它make install
我再次得到这些奇怪的结果
答案 0 :(得分:1)
不切实际的基准测试结果通常是由错误(完全无效)的基准测试方法引起的。
从他们的benchmark source判断,基准核心是(可怕的伪代码)
totalTime = 0
totalSize = 0
while ( totalTime < 1000 ) {
(sampleTime, sampleSize) = processSingleSample
totalTime += sampleTime
totalSize += sampleSize
}
speed = totalSize / totalTime
想象一下当processSingleSample
的执行时间接近零时的情况 - 每次迭代稳定地增加totalSize
但在某些迭代中总时间根本不会增加。最后,totalTime
为1000,totalSize
为任意大,因此产生的速度为#34}。是任意大的。
当每个单独的迭代占用大量时间时,这种基准测试方法仍然有用,但在这种特殊情况下(特别是在启用aesni
后,每次迭代的时间会减少更多),它就不是对了。