Ограничение памяти .Net - PullRequest
       1

Ограничение памяти .Net

2 голосов
/ 06 апреля 2010

У меня есть приложение .Net, работающее на 32-битном компьютере.Приложение является службой Windows.Он постоянно колеблется в диапазоне 600-800 МБ.Это проблема?Если приложение пересекает 1 ГБ, это проблема с памятью?

Ответы [ 4 ]

2 голосов
/ 06 апреля 2010

Вы не столкнетесь с проблемами при пересечении 1 ГБ.

Однако, если ваше приложение предназначено для x86 напрямую или работает на 32-битной Windows, вы столкнетесь с проблемами где-то между 1.2-1.6 ГБ. Приложения .NET, работающие как 32-разрядные приложения, как правило, начинают получать ошибки нехватки памяти в этом диапазоне (а не в 2 ГБ, как это обычно и ожидается).

Тем не менее, если у вашего приложения есть веская причина для использования такого большого объема памяти и он постоянно находится в пределах 1 ГБ, это не должно иметь проблем.

2 голосов
/ 06 апреля 2010

Использование 1 Гиг должен быть в порядке. Вот ссылка на вопрос о максимальном объеме памяти, который может использовать объект .net:

.NET Max Memory Используйте 2 ГБ даже для сборок x64

2 голосов
/ 06 апреля 2010

Трудно сказать, является ли использование этой памяти проблемой.

Несколько вопросов, на которые я бы попытался ответить:

  • Ожидаются ли эти цифры?
  • Вы знаете, куда уходит вся эта память?
  • Если эти числа верны, является ли ваше решение масштабируемым с точки зрения памяти?
  • Сохраняется ли это распределение памяти постоянным, если изменяется какое-либо начальное условие?
  • Может ли ваше серверное / клиентское оборудование обеспечить всю эту память? Что делать, если у вас есть несколько казней?

Если вы найдете «Нет» в любом ответе, я начну считать это проблемой. То же самое касается выпуска объемом 1 ГБ.

РЕДАКТИРОВАТЬ: исправлены некоторые опечатки

2 голосов
/ 06 апреля 2010

Нет, это прекрасно, если на хосте достаточно памяти. Вы можете хотеть контролировать полные запуски GC однако; полная сборка мусора не должна происходить очень часто (время от времени, наверняка, не каждые несколько секунд), и если они это делают, это указывает на то, что процесс работает на пределе своей памяти и «тратит» слишком много времени на попытки восстановления памяти, что в конечном итоге сильно замедляет процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...