Question

J'expérimente avec des objets entre domaines d'application, et a trouvé une chose assez étrange.

Quand j'appelle une méthode distante, qui alloue un objet MemoryStream et le retour de référence de (et qui est disposé immédiatement par l'appelant), l'utilisation de la mémoire est tout à fait de plus en plus significative et ne baisse pas vers le bas, même après avoir appelé GC.Collect ( ).

Sur la méthode d'appel qui retourne nouvelle chaîne ou octet [] objet à chaque fois, il n'y a pas de fuite.

Les profileurs de mémoire montre que la plupart des objets en direct sont de type Char [] et cordes (en cas de MemoryStream).

La question est - j'ai mal compris quelque chose, et les appels à distance ne sont pas si simples que héritant de MarshalByRefObject

?
Était-ce utile?

La solution

appels à distance sont aussi faciles - mais la vie de l'objet et la collecte des ordures ne sont pas aussi simples

.

Vous devriez lire un peu sur Contrats de location et de commandites .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top