Я делаю приложение C#, которое содержит сотни классов для моего SDK. Мне нужно сохранить управляемые объекты этих классов в моем словаре C#. Но я не знаю, сколько объектов мог бы хранить словарь? Смысл будет хорошим приемлемым решением для всех объектов с целым ключом, связанным с ним? Если есть другой способ, я буду рад этим идеям.Ограничение на словарь C#
ответ
Если ваши ключи являются целыми числами, вы ограничены общим количеством ключей, равным общему числу значений Int32
, а также limit on memory consumed by a .NET process. Конечно, до этого вы могли бы исчерпать «емкость», в зависимости от остальной части вашей системы. Вам нужно будет точно проверить, какие ограничения применяются в реальных случаях для вашего приложения, потому что мы не знаем размер ваших объектов или нагрузку на ваше приложение и т. Д.
Вы должны строго учитывать местное хранилище , даже что-то вроде SQLite, если вы беспокоитесь о том, что у вас недостаточно памяти.
+1 для предложения локальных систем хранения, таких как SQLite – jAC
Класс 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
- 1. "Словарь гнездо" на C#?
- 2. C# String заменить на словарь
- 3. C++ словарь?
- 4. C++ std :: ограничение на ограничение линии на Mac OSX
- 5. C# добавить словарь в словарь
- 6. Анти-ограничение на генераторы C#
- 7. Ограничение выделения памяти на C++
- 8. Ограничение "Lifetime" реализовано на C++?
- 9. Изменить ограничение проверки как 'C' на 'C%'
- 10. Ограничение на размер массива на языке C
- 11. Преобразование Obj-C словарь Свифт 2 Словарь
- 12. Многоязычного словарь Решение C++
- 13. C# Словарь Webspider
- 14. Разъяснение чтения и записи на C# Словарь
- 15. Перевести C++ map на словарь python
- 16. Как сделать словарь и утилиту на C#?
- 17. Добавить массив в словарь на C#
- 18. C# Многоуровневый словарь на основе класса
- 19. Как я могу заказать словарь на C#?
- 20. Словарь C# с двумя значениями на ключ?
- 21. C# JavaScriptSerializer на JSON, содержащий строку + словарь
- 22. Простой словарь в C++
- 23. C# словарь, нужен совет
- 24. Многоязычный словарь в C#?
- 25. Ограничение или ограничение размера файла в C#
- 26. C# Словарь массивов
- 27. Сортировка в словарь C#
- 28. Словарь ActionScript для C#
- 29. Сериализация словарь в C#
- 30. словарь или список C#
локальной базе данных, как SQLite может быть лучше, если вы бежите из памяти. – jAC
Если вы не знаете, проверьте это. Если вы столкнулись с проблемами производительности или нехваткой памяти, перейдите в локальное хранилище. – Alex
Вы исследовали емкость словаря C#? –