Очень большая коллекция в .Net вызывает исключение нехватки памяти
Я проверяю, насколько большой может быть коллекция в .Net. Технически, любой объект коллекции может увеличиваться до размера физической памяти.
Затем я проверил следующий код на сервере, который имеет 16 ГБ памяти, работает под управлением Windows 2003 Server и Visual Studio 2008. Я протестировал код F # и C # и посмотрел на диспетчер задач во время работы. Я вижу, что после примерно 2 ГБ памяти программа вылетала с исключением из-за нехватки памяти. Я установил целевую платформу на x64 на странице свойств.
open System.Collections.Generic
let d = new Dictionary<int, int>()
for i=1 to 1000000000 do
d.Add(i,i)
Я сделал такой же тест наC5 Коллекция библиотеки. В результате словарь в C5 может занимать всю память. Код использует C5:
let d = C5.HashDictionary<int, int> ()
for i=1 to 1000000000 do
d.Add(i,i)
Кто-нибудь знает почему?