Я тестирую, как большая коллекция может быть в .Net. Технически любой объект коллекции может увеличиться до размера физической памяти.
Затем я протестировал следующий код в терминале, который имеет 16-гигабайтную память, с сервером Windows 2003 и Visual Studio 2008. Я тестировал как код F #, так и код С# и смотрел на Диспетчер задач во время работы. Я вижу, что после роста памяти 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)
Кто-нибудь знает, почему?