我必须为skb-> data(套接字缓冲区)添加扰码器。当我尝试加扰skb-> data中的每个字节时,速度降低了10倍。

for (i = 0; i < skb->len; i++){
    skb->data[i] = skb->data[i]^lfsr[i];
}


如何才能更快地加扰skb-> data?
更新:
如何在一次迭代中加扰多个字节?

最佳答案

您可以删除指针取消引用,使用就地内存操作以及使用OpenMP并行化循环,如下所示:

//Compile with -fopenmp flag
const int len  = skb->len;
auto &data = skb->data;
#pragma omp parallel for simd
for(int i=0;i<len;i++)
    data[i] ^= lfsr[i];

关于c++ - 1Gbit以太网快速加密器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53943074/

10-12 04:49