Как оптимизировать использование памяти при записи одномерных массивов в список?

Здравствуйте.

В моей программе происходит циклическая запись около миллиарда одномерных массивов в список.
List<string[]> arrList = new List<string[]>();

// Тело цикла повторяющееся много раз:
{
    string[] arr = new string[5];

    arr[0] = "некоторое целое число" + "";
    arr[1] = "некоторое целое число" + "";
    arr[2] = "некоторое целое число" + "";
    arr[3] = "некоторая строка";
    arr[4] = "некоторая строка";

    arrList.Add(arr);
}


В элементы массива я записываю как строки, так и целые числа (которые потом привожу к строковому типу). Число итераций цикла заранее не известно (число итераций меняется).

При выполнении программа занимает много оперативной памяти.

Что можно было бы сделать, чтобы уменьшить расходование оперативной памяти?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
https://www.ozon.ru/context/detail/id/23816449/
https://habrahabr.ru/post/260047/ - 2) Минимальный размер экземпляра ссылочного типа в памяти.

Массив - занимает неразрывный участок памяти.
Массив целых чисел хранит в своих ячейках значения этих чисел.
Массив строк хранит в своих ячейках адреса строк находящихся в другом месте в памяти.

Про поколения почитайте, пороги сборки.

+ https://blogs.msdn.microsoft.com/ericlippert/2010/... The Truth About Value Types
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы