Утечка памяти в простом кросс-приложении - PullRequest
3 голосов
/ 05 сентября 2011

Я экспериментирую с кросс-объектами AppDomain и обнаружил одну довольно странную вещь.

Когда я вызываю удаленный метод, который выделяет объект MemoryStream и возвращает его ссылку (и который немедленно удаляется вызывающей стороной), использование памяти довольно значительно увеличивается и не уменьшается даже после вызова GC.Collect ).

В вызывающем методе, который каждый раз возвращает новый объект String или byte [], утечки нет.

Профилировщик памяти показывает, что большинство живых объектов имеют тип Char [] и String (в случае MemoryStream).

Вопрос в том, что я что-то неправильно понял, и удаленные вызовы не так просты, как наследование от MarshalByRefObject?

1 Ответ

3 голосов
/ 05 сентября 2011

Удаленные вызовы так же просты, но время жизни объекта и сборка мусора не так просты.

Вы должны прочитать немного о аренде и спонсорстве .

...