• Необработанное исключение типа "System.OutOfMemoryException" в mscorlib.dll. Что делать?

    @carbon88
    .NET developer/ORM developer
    1)Вы уверены что у вас элементов будет меньше чем int.MaxValue?
    2)Выкиньте в топку этот List, можно оставить только если вам заранее известно количество элементов и вы можете инициализировать maxCapacity сразу. если нет то выкидывайте однозначно. Дело в том, что после 4-ой вставки (если мне не изменяет память) при каждой следующей вставке элемента Capacity увеличивается вдвое, соответственно массив элементов который там внутрях тоже увеличивается вдвое и элементы перегоняются в новый. представляете с какой скоростью растет массив? то есть на i = 33554433 + 1 list.Add() будет пытаться выделить кусок под 67108866 элементов, а это нужен непрерывный кусок памяти который к тому времени наверняка не находится и все падает с OutOfMemoryException. кстати же еще нужно хранит массив с которого будем копировать в тот который копируем. это огромная трата памяти. жесть просто.

    Не знаю что у вас за код, который использует результат метода Time, но если там всего лишь перебор то этот ваш алгоритм это просто жесть, и наверняка можно вообще не использовать внутренний список, а выдавать посчитанное значение по мере необходимости через yield return и вычислять на лету.
    Ответ написан
    1 комментарий
  • Необработанное исключение типа "System.OutOfMemoryException" в mscorlib.dll. Что делать?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    - увеличить объем оперативной памяти, поставить х64 систему
    - запускать приложение в облаке со снятым ограничением на оперативную память
    - придумать алгоритм, который будет требовать меньше памяти
    Ответ написан
    Комментировать
  • Как сделать чтобы два цикла while не мешали другу другу?

    @inDeepCode
    Если оформить код, то ответ найдётся сам.
    Ответ написан
    Комментировать