System.OutOfMemoryException - C#
Формулировка задачи:
Данная ошибка на строке:
где
в свою очередь имеют размерность 10000 на 5.
Функции взяты из библиотеки Math.NET Numerics.
Собственно как побороть ошибку OutOfMemoryException?
var rr1 = abMatrix.MapIndexed((i, j, x) => aParcel[i] + bParcel[j] - 2 * x);
var abMatrix = aMatrix.TransposeAndMultiply(bMatrix);
aMatrix, bMatrix
MapIndexed(), TransposeAndMultiply()
Решение задачи: «System.OutOfMemoryException»
textual
Листинг программы
var abMatrix = aMatrix.TransposeAndMultiply(bMatrix); aMatrix.MapInplace(x => x * x); bMatrix=bMatrix.Transpose(); bMatrix.MapInplace(x => x * x); var aParcel = aMatrix.RowSums(); var bParcel = bMatrix.ColumnSums(); GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; GC.Collect(); var rr1 = abMatrix.MapIndexed((i, j, x) => aParcel[i] + bParcel[j] - 2 * x); // OutOfMemory var v = rr1.EnumerateRows().Sum(x => x.Min()) / abMatrix.RowCount; var v1 = rr1.EnumerateColumns().Sum(x => x.Min()) / abMatrix.ColumnCount; var resultTuple = new Tuple<double, double>(v, v1); return resultTuple;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д