Очень большая коллекция в .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)

Кто-нибудь знает почему?

Ответы на вопрос(3)

Ваш ответ на вопрос