2013-04-13 2 views
0

Мы работаем над богатым клиентским приложением, в котором работает много потоков, а также используются сторонние элементы управления, после запуска приложения в течение 1 часа он начинает выдавать ошибку «System.OutOfMemoryException», пока и до тех пор, пока мы не перезапустим приложение, у меня есть поиск по многим сайтам для помощи, но никакой конкретной и заданной причине не предоставляется.Ошибка System.OutOfMemoryException

Спасибо.

ответ

0

Я рекомендую использовать профилировщик, чтобы идентифицировать и найти, откуда приходит высокое потребление памяти.

1

Звучит довольно понятно, у вас недостаточно памяти. Если вы все еще запускаете приложение как 32-битное, то переключение на 64-битное решение может решить проблему. У меня была именно эта проблема на сервере-2008-r2 в последнее время, и переход на 64-разрядный решает мою проблему. Но если у вас уже 64 бит, возможно, на сервере недостаточно физической памяти. В этом случае вам нужно добавить больше памяти или решить, как сделать приложение менее голодным. Могут быть объекты, которые можно отбросить, что они хранят ссылки, и т. Д., И если это так, вы должны попробовать профилировать, чтобы попытаться определить, что заставляет большую память. Кроме того, использует ли приложение любые неуправляемые библиотеки DLL, например. COM-объекты, написанные на C++ или аналогичные. Может быть, есть утечка памяти за пределами управляемой структуры?

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