Perdita di memoria in oggetto semplice app croce
-
22-10-2019 - |
Domanda
Sto sperimentando con oggetti cross-AppDomain, e ha trovato una cosa abbastanza strana.
Quando chiamo un metodo remoto, che si alloca un oggetto MemoryStream e il ritorno di riferimento (e che è disposto immediatamente dal chiamante), l'utilizzo della memoria è abbastanza significativo aumento e non è caduta giù, anche dopo aver chiamato GC.Collect ( ).
Sul metodo chiamante che restituisce new String o byte [] oggetto ogni volta, non v'è alcuna perdita.
Gli spettacoli di memoria profiler che la maggior parte degli oggetti dal vivo sono di tipo char [] e String (in caso di MemoryStream).
La domanda è - ha fatto mi fraintendere qualcosa, e chiamate remote non sono così semplici come eredita da MarshalByRefObject
?Soluzione
chiamate remote sono facili - ma oggetto tutta la vita e la raccolta dei rifiuti non sono così semplici
.Si dovrebbe leggere un po 'su locazioni e sponsorizzazioni .