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

?
È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top