Parallel.For медленнее обычного For при записи в BitArrayC#

Место общения программистов C#
Anonymous
Parallel.For медленнее обычного For при записи в BitArray

Сообщение Anonymous »

Может ли кто-нибудь объяснить, почему Parallel.For ведет себя медленнее, чем For при записи в BitArray? Это как-то связано с блокировкой памяти?

Код: Выделить всё

float[] output = new float[100000];
BitArray bitArray = new BitArray(output.Length);
Parallel.For(0, output.Length, i =>
{
bitArray[i] = output[i] > 0.5f;
});

Код: Выделить всё

float[] output = new float[100000];
BitArray bitArray = new BitArray(output.Length);
for (int i = 0; i < output.Length; i++)
{
bitArray[i] = output[i] > 0.5f;
}
Ожидали, что Parallel.For будет быстрее, чем For, но на моей машине это заняло на два порядка больше времени, чем на другом (+10 с против 100 мс).

Подробнее здесь: https://stackoverflow.com/questions/791 ... o-bitarray

Вернуться в «C#»