我有一个结构(类),它在数组中保存大量数字( float 、 double 、整数、字节)。
现在我想用非常高性能的方法在这个数组上应用一些原始操作(加/减/除/乘以常数)。
这个数组在一 block 连续的内存上,所以我使用 Buffer.BlockCopy 来复制它。
但是加一个常数或乘以一个常数呢?
第一个选择是使用指针遍历数组。为此,您还建议采用哪些其他方法?
最佳答案
使用指针(不安全)不一定能提高性能。
你为什么不从一个普通的for(int index = 0; index < data.Lenght; index++)
开始呢?循环看看是否满足你的要求。
当然,下一步是并行处理:
Parallel.For(0, data.Length, i => data[i] *= myFactor);
关于c# - 在 C# 中用常量乘/加大量数字的高性能方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6734870/