.NET Remoting и подобъекты MarshalByRef
От: Аноним  
Дата: 23.08.04 12:21
Оценка:
Добрый день.
Имеется следующая проблемма.

На сервере имется объект (назовем его RObj) наследник MarshalByRef. У этого объекта есть подобъект, тоже наследник MarshalByRef (назовем его RSubObj).

Cервер регистрирует RObj как синглетон с серверной активизацией. Клиент и сервер между собой общаются по TCP каналу в бинарном формате.

Так когда клиент получает RObj от клиента и вызывает у него всякие разные методы — все хорошо и быстро.

ROjb.SomeMethod() - Все работает хорошо


Но, если клиент попытается вызвать метод подобъекта RSubObj, то появляются тормоза. Клиент зависает примерно секунд на 10. Такие тормоза появляются только при первом вызове метода (для данного клиента). При последующих вызовах все ОК.

RObj.RSubObj.SomeMethod() - Тормозит секунд на 10 при первом вызове


Если RSubObj сделать Serializable, а не MarshalByRef, то все работает нормально.
Естественно, что конструкторы RObj и RSubObj ничего сложного не делают, кроме тривиальной инициализации.

Может кто знает ответ на вопрос: почему такие тормоза возникают и как эти тормоза обойти.
Re: .NET Remoting и подобъекты MarshalByRef
От: dimitry_dimitry  
Дата: 24.08.04 07:00
Оценка: -1
Здравствуйте, <Аноним>, Вы писали:

А>Если RSubObj сделать Serializable, а не MarshalByRef, то все работает нормально.

А>Естественно, что конструкторы RObj и RSubObj ничего сложного не делают, кроме тривиальной инициализации.
сами себе на вопрос ответили.
... << Rsdn@Home 1.1.4 beta 1 >>
Re[2]: .NET Remoting и подобъекты MarshalByRef
От: rockandroll Казахстан  
Дата: 24.08.04 10:51
Оценка:
Здравствуйте, dimitry_dimitry, Вы писали:

А>>Если RSubObj сделать Serializable, а не MarshalByRef, то все работает нормально.

А>>Естественно, что конструкторы RObj и RSubObj ничего сложного не делают, кроме тривиальной инициализации.
_>сами себе на вопрос ответили.

Между MarshalByRef и Serializable есть ощутимая разница.
Проблемы это не решает.

2 Аноним: А какая конфигурация компа?
... << RSDN@Home 1.1.4 >>
Re[3]: .NET Remoting и подобъекты MarshalByRef
От: dimitry_dimitry  
Дата: 24.08.04 10:58
Оценка:
Здравствуйте, rockandroll, Вы писали:

R>Между MarshalByRef и Serializable есть ощутимая разница.

а кто спорит?
я таких тестов не делал, но думаю что MarshalByRef в принципе медленнее должен быть.
R>Проблемы это не решает.
... << Rsdn@Home 1.1.4 beta 1 >>
Re[3]: .NET Remoting и подобъекты MarshalByRef
От: Resnick Россия  
Дата: 24.08.04 11:51
Оценка:
Здравствуйте, rockandroll, Вы писали:

R>Здравствуйте, dimitry_dimitry, Вы писали:


А>>>Если RSubObj сделать Serializable, а не MarshalByRef, то все работает нормально.

А>>>Естественно, что конструкторы RObj и RSubObj ничего сложного не делают, кроме тривиальной инициализации.
_>>сами себе на вопрос ответили.

R>Между MarshalByRef и Serializable есть ощутимая разница.

R>Проблемы это не решает.

R>2 Аноним: А какая конфигурация компа?


Быстрая. П4 2.6 и сеть 100Мб. ОС — WinXP. MarshalByRef, к сожалению, необходим.
По крайней мере, обходить очень нежелательно
Re[4]: .NET Remoting и подобъекты MarshalByRef
От: rockandroll Казахстан  
Дата: 25.08.04 02:55
Оценка:
Здравствуйте, Resnick, Вы писали:

А>>>>Если RSubObj сделать Serializable, а не MarshalByRef, то все работает нормально.

А>>>>Естественно, что конструкторы RObj и RSubObj ничего сложного не делают, кроме тривиальной инициализации.
_>>>сами себе на вопрос ответили.

R>>2 Аноним: А какая конфигурация компа?


R>Быстрая. П4 2.6 и сеть 100Мб. ОС — WinXP. MarshalByRef, к сожалению, необходим.

R>По крайней мере, обходить очень нежелательно

При создании RObj ттже тормоза?
RObj и RSubObj в одной сборке?
Что делает SomeMethod?
Есть подозоения на jit компиляцию, но 10 сек. — это много.
Может ngen прогонишь...
... << RSDN@Home 1.1.4 >>
Re: .NET Remoting и подобъекты MarshalByRef
От: Аноним  
Дата: 08.09.04 16:37
Оценка:
Здравствуйте, Аноним, Вы писали:

[skip]


Та же фигня и у меня.
Только маленькое уточнение: ето происходит при использовании TcpChannel, на HttpChannel никаких тормозов нет.

Почему — непонятно.
Re[5]: .NET Remoting и подобъекты MarshalByRef
От: Sotnich Россия  
Дата: 15.09.04 19:42
Оценка:
R>При создании RObj ттже тормоза?

Нет. Дело не в создании. Дело в вызове метода. RSubObj тоже создается быстро. А вот метод вызывается долго.

R>RObj и RSubObj в одной сборке?


Да.

R>Что делает SomeMethod?


Ничего. Единичку возвращает...

R>Может ngen прогонишь...


Врядли поможет, ведь jit не причем скорее всего. Но попробою. Спасибо за идею...
Re[5]: .NET Remoting и подобъекты MarshalByRef
От: Аноним  
Дата: 16.09.04 05:45
Оценка:
вызывая подобъект напрямую увеличивается сетевой трафик.
попробуй инкапсулировать вызов метода подобъекта в методе объекта


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.