Каков наилучший способ хранения 2D-массива в C# для оптимизации производительности при выполнении множества арифметических элементов в массиве?Арифметика большого массива в C#
У нас есть большие (около 1,5 Г) массивы, которые, например, мы хотим умножить друг на друга по элементам. Производительность имеет решающее значение. Контекст, в котором это делается, находится в C#. Есть ли какой-либо умный способ хранения массивов и итерации по ним? Можем ли мы написать эти части в неуправляемом C++, и это действительно увеличит производительность? Массивы должны быть доступны для остальной части программы C#.
В настоящее время (в) массив хранится как один длинный вектор. Мы выполняем вычисления для каждого элемента массива и перезаписываем старое значение. Вычисления обычно уникальны для каждого элемента вектора.
Временные эксперименты показывают, что сохранение и итерация по данным в виде массива в C# происходит медленнее, чем сохранение его в виде 2D-массива. Я хотел бы знать, есть ли еще лучший способ обработки данных. Конкретная выполняемая арифметика не имеет отношения к вопросу.
Я не уверен, что вы подразумеваете под бит о своих экспериментах по времени. Вы имеете в виду, что C# 2D-массив был медленнее, чем C 2D-массив? – 2008-09-21 14:17:30
Массив C# 2d был быстрее, чем массив 1d C# – AnnaR 2008-09-21 16:05:24