Entity Framework TypeUsage Object - PullRequest
       0

Entity Framework TypeUsage Object

6 голосов
/ 27 сентября 2011

Я запускаю профилировщик памяти в моем приложении, чтобы найти возможную утечку памяти. Число объектов System.Data.Metadata.Edm.TypeUsage постоянно растет, и, похоже, это может быть причиной проблем с памятью.

Кто-нибудь знает способ освобождения этих объектов TypeUsatge из памяти? Они выглядят как внутренние объекты Entity Framework, поскольку в моем коде нет ссылок на них. Я подтвердил, что обернул объект контекста в блок использования, и память освобождается, но использование этого типа не хочет уходить.

Любая помощь, которую вы можете оказать, будет принята с благодарностью.

1 Ответ

0 голосов
/ 06 февраля 2012

Вы, вероятно, смотрите на кэш 1-го уровня (Отслеживание изменений), который используется Entity Framework ниже.Чтобы узнать больше об этом, проверьте это.Я был бы удивлен, если есть утечка памяти здесь, более вероятно, что это просто нормальное поведение.Какой объем памяти у вас вытекает?

Чтобы освободить память, попробуйте использовать другой вариант слияния (например, NoTracking).По умолчанию это AppendOnly, которое будет удерживать типы в памяти, которые вы можете использовать снова.Опция слияния NoTracking будет каждый раз заходить в базу данных и ничего не хранить в памяти.

Надеюсь, это поможет.

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