2013-06-07 5 views
-2

Я делаю приложение C#, которое содержит сотни классов для моего SDK. Мне нужно сохранить управляемые объекты этих классов в моем словаре C#. Но я не знаю, сколько объектов мог бы хранить словарь? Смысл будет хорошим приемлемым решением для всех объектов с целым ключом, связанным с ним? Если есть другой способ, я буду рад этим идеям.Ограничение на словарь C#

+0

локальной базе данных, как SQLite может быть лучше, если вы бежите из памяти. – jAC

+0

Если вы не знаете, проверьте это. Если вы столкнулись с проблемами производительности или нехваткой памяти, перейдите в локальное хранилище. – Alex

+0

Вы исследовали емкость словаря C#? –

ответ

3

Если ваши ключи являются целыми числами, вы ограничены общим количеством ключей, равным общему числу значений Int32, а также limit on memory consumed by a .NET process. Конечно, до этого вы могли бы исчерпать «емкость», в зависимости от остальной части вашей системы. Вам нужно будет точно проверить, какие ограничения применяются в реальных случаях для вашего приложения, потому что мы не знаем размер ваших объектов или нагрузку на ваше приложение и т. Д.

Вы должны строго учитывать местное хранилище , даже что-то вроде SQLite, если вы беспокоитесь о том, что у вас недостаточно памяти.

+0

+1 для предложения локальных систем хранения, таких как SQLite – jAC

0

Класс Dictionary имеет верхний предел в размере 2^31 элемента, если вы используете .NET 4.5 на 64-битной платформе и используете <gcAllowVeryLargeObjects> element.

Если вы не включили gcAllowVeryLargeObjects, а для более ранних версий .NET количество элементов, которые вы можете хранить в словаре, несколько меньше. С ключом Int32 и ссылочным типом для значения словарь может содержать не более 89,4 миллиона элементов на 64-битной платформе и 61,7 миллиона элементов на 32-битной платформе. Предполагая, конечно, что у вас достаточно памяти для хранения словаря и значений.

Смотрите мою статью о словарных ограничениях на http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=665

Смежные вопросы