В цикле я добавляю миллион строк (в основном от 2 до 3 символов) до List<string>
. В конце каждой итерации список строк очищается. Большая часть итераций продолжается без проблем. Но на одной конкретной итерации список строк выдает OutOfMemoryException
даже с 700 000 строковых элементов. Я понятия не имею, почему это происходит и как его решить. Может ли кто-нибудь помочь?Список <string> throws OutOfMemoryException в C#
ответ
Поскольку у вас нету предоставил код для людей, чтобы увидеть, что будет трудно определить, однако это является причиной (ы) OutOfMemoryException:
Детали из MSDN.
Вы пытаетесь расширить объект StringBuilder за пределы длины, определенной в свойстве StringBuilder.MaxCapacity.
Общая среда исполнения не может выделить достаточную непрерывную память для успешного выполнения операции. Это исключение может быть вызвано любым присваиванием свойств или вызовом метода, для которого требуется выделение памяти.
Для получения дополнительной информации о причине, за исключением OutOfMemoryException см https://blogs.msdn.microsoft.com/ericlippert/2009/06/08/out-of-memory-does-not-refer-to-physical-memory/.
Это должно быть гораздо меньше теоретического максимального размера для списка. Однако класс List использует массив в качестве основного хранилища, поэтому он хранит все в смежных ячейках памяти. Если ваша память сильно фрагментирована, возможно, что не хватает смежных областей памяти.
- 1. ToDictionary throws OutOfMemoryException
- 2. OutOfMemoryException при заполнении Список <byte> в C#
- 3. C# Общий список foreach OutofMemoryException
- 4. Dynamic Linq where claus throws OutOfMemoryException
- 5. C# OutOfMemoryException
- 6. Ручка "OutofMemoryException" в C#?
- 7. C# OutOfMemoryException в массиве
- 8. OutOfMemoryException в C#
- 9. C# OutOfMemoryException Image.Save
- 10. OutOfMemoryException многопоточность C#
- 11. C# ThreadPool - OutOfMemoryException
- 12. C# MongoDB Driver OutOfMemoryException
- 13. OutOfMemoryException в C# MultiThreading Environment
- 14. Как решить OutOfMemoryException в C#
- 15. C# Pen выбрасывает OutOfMemoryException
- 16. Список <T> .GetRange throws аргумент exception
- 17. Список <String> в список <Object> C#
- 18. C# Листинг список <object> в список <?>
- 19. git commit throws error '[<-'
- 20. OutOfMemoryException
- 21. Как перечислять список порциями (чтобы избежать OutOfMemoryException)?
- 22. OutOfMemoryException - набор данных <-> XML <-> Dataset
- 23. Список словарю <Key, Список <Value>> - C#
- 24. C# Список <object> и Список
- 25. Список оптимизации <string>
- 26. DbContext OutOfMemoryException
- 27. C# Список <object>
- 28. OutOfMemoryException ошибка
- 29. OutOfMemoryException в C# при десериализации файла XML
- 30. C# DbDataReader populating Результат списка в OutOfMemoryException
Как насчет примеров кода? –
Возможный дубликат [C#: исключение из памяти] (http://stackoverflow.com/questions/8563933/c-sharp-out-of-memory-exception) – EJoshuaS