2011-09-27 23 views
6

Sto eseguendo un profiler di memoria sulla mia applicazione per trovare una possibile perdita di memoria. Il numero di oggetti System.Data.Metadata.Edm.TypeUsage è in costante aumento e sembra che questo potrebbe essere causa dei miei problemi di memoria.Entity Framework TypeUsage Oggetto

Qualcuno conosce un modo per rilasciare questi oggetti TypeUsatge dalla memoria? Sembrano essere oggetti Entity Framework interni poiché non ho alcun riferimento a loro nel mio codice. Ho confermato di aver avvolto l'oggetto contesto in un blocco using e la memoria è stata rilasciata, ma questo tipo di utilizzo non vuole scomparire.

Qualsiasi aiuto tu possa fornire sarebbe molto apprezzato.

risposta

0

Probabilmente stai guardando la cache di primo livello (Change Tracker) che Entity Framework utilizza sotto. Per saperne di più, controlla questo. Sarei sorpreso se ci fosse una perdita di memoria qui, più probabilmente questo è solo un comportamento normale. Quanta memoria vedi trapelare?

Per rilasciare la memoria, provare a utilizzare un'altra opzione di unione (come NoTracking). L'impostazione predefinita è AppendOnly, che manterrà i tipi in memoria che è possibile utilizzare di nuovo. L'opzione di unione NoTracking andrà nel database ogni volta e non manterrà nulla in memoria.

Spero che questo aiuti.

Problemi correlati