前些时候做过对大数据文件的解密,总结下来就三个字,“去拷贝”。
涉及到"去拷贝"的修改如下:
- 读文件时大块数据去读,减少用户态和内核态间频繁的数据拷贝
- 分配一块固定大小的buff循环使用,去接解密后的数据,循环使用时不用每次进行memset为0,以此减少拷贝开销,只需要保证每次从头开始循环覆盖buff即可。
- 如果软解的话,尽可能大的利用openssl的解密能力,可通过openssl speed -evp aes-128-ecb来查看openssl的解密能力,可以看到输入数据为16K的block_size下,解密能力是最强的。
- 如果有硬件chiper的话,第3步中的openssl解密可替换为硬件解密接口,速度会更快。
在下经过以上1-3步骤的操作后解密速度提升有将近100倍,收益非常明显。
声明:图文原创,码字不易,版权必究,编辑转载请注明链接出处与原作者。