Frage

Ich experimentiere mit Cross-Appdomain-Objekten und fand eine ziemlich seltsame Sache.

Wenn ich eine Remote -Methode aufrufe, die ein Speicherstream -Objekt zuteilt und seine Referenz zurückgibt (und vom Anrufer sofort entsorgt wird), nimmt die Speicherverwendung erheblich zu und fällt nicht herunter, auch nachdem er gc.collect () aufgerufen hat.

Bei der Aufrufmethode, die jedes Mal ein neues Zeichenfolge oder Byte [] -Objekt zurückgibt, gibt es kein Leck.

Der Speicherprofiler zeigt, dass die meisten Live -Objekte vom Typ char [] und String (im Falle von MemoryStream) sind.

Die Frage ist: Habe ich etwas falsch verstanden und Remote -Anrufe sind nicht so einfach wie die Erben von MarshalbyrefObject?

War es hilfreich?

Lösung

Remote -Anrufe sind so einfach - aber die Lebensdauer und die Müllsammlung von Objekten sind nicht so einfach.

Sie sollten ein wenig lesen Mietverträge und Sponsoring.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top