2013-05-09 1 views
0

У меня есть рабочая роль, которая запускает несколько потоков (я использовал ThreadedWorkerRole). Моя рабочая роль загружает некоторые данные, а затем изображения, связанные с этими данными. Все работает нормально локально, но когда я развертываю приложение на лазурном экране, он начинается с отображения разумного использования памяти (48 МБ), но затем он снимает до 800 МБ в течение 1 или 2 часов. Мое приложение действительно заботилось об удалении объектов с помощью большого количества «использования» операторов и правильного закрытия потоков. Но я все еще удивляюсь, что заставляет память прыгать с такой высокой ценностью. Еще одна вещь, я использовал RETSLib (библиотеку PInvoke, чтобы нанести RETS-сервер), который загружает данные и изображения. Может быть, проблема неуправляемого кода?Роль рабочего начинается с разумного использования памяти, но затем постоянно увеличивается объем использования памяти

ответ

1

Это может быть проблема неуправляемого утечки кода. Является ли RETSLib оболочкой .net на librets? Некоторые ссылки на PHP-версии librets leaking memory.

Вы упомянули, что «загружает некоторые данные, а затем изображения, связанные с этими данными». Используете ли вы Entity Framework для получения этих исходных данных или хранения в SQL? Если это так, я предполагаю, что вы распоряжаетесь ObjectContext. Были случаи, когда EF 4.0, похоже, имеет некоторые проблемы с памятью.
A link (old) что касается этого.

мог бы добавить это в качестве комментария, но StackOverflow не позволит мне сделать это из-за мои низкие точки репы

+0

спасибо за быстрый ответ. да, я использую librets (.net wrapper), и я вообще не использую EF. Еще одна вещь, я определенно не могу выгрузить неуправляемую библиотеку во время работы рабочей роли. Как я могу справиться с этой утечкой? – ZafarYousafi

+0

Выгрузка dll не решит утечку памяти, так как операция загрузки загружает dll в пространство процесса приложения. Вы можете попробовать разместить только DLL-загрузку и разгрузиться в отдельный процесс и убить этот процесс (?) – eightyeight

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

  • Нет связанных вопросов^_^