Com+-компонент в dllhost работает очень медленно
От: ZXStyles  
Дата: 23.10.05 08:02
Оценка:
Имеется com+-компонент ( на C# ), library. При вызове его из тестового приложения test.exe, т.е. при загрузке компонента в процесс test.exe, скорость очень даже приличная. Если я меняю у компонента ( приложения ), тип активации на Server, после чего делаю запуск test.exe и компонент грузится в dllhost.exe, то скорость работы падает в десятки раз. Компонент сам по себе работает долго, при типе активации library — 4 минуты. Никаких внешних вызовов не делает (маршалингом проблему не объяснишь), только лопатит внутри себя большие объемы данных.
Re: Com+-компонент в dllhost работает очень медленно
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.10.05 17:17
Оценка:
Здравствуйте, ZXStyles, Вы писали:

ZXS>Имеется com+-компонент ( на C# ), library. При вызове его из тестового приложения test.exe, т.е. при загрузке компонента в процесс test.exe, скорость очень даже приличная. Если я меняю у компонента ( приложения ), тип активации на Server, после чего делаю запуск test.exe и компонент грузится в dllhost.exe, то скорость работы падает в десятки раз. Компонент сам по себе работает долго, при типе активации library — 4 минуты. Никаких внешних вызовов не делает (маршалингом проблему не объяснишь), только лопатит внутри себя большие объемы данных.


Ну, а что ты хотел. В одном случае используются локальные средства комуникации, а то и вообще вызов делается напрямую, а во втором происходит мепроцесная комуникация. Она завсегда медленее. Так что укрупняй вызовы делая их реже.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Com+-компонент в dllhost работает очень медленно
От: Mika Soukhov Stock#
Дата: 25.10.05 07:37
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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


ZXS>>Имеется com+-компонент ( на C# ), library. При вызове его из тестового приложения test.exe, т.е. при загрузке компонента в процесс test.exe, скорость очень даже приличная. Если я меняю у компонента ( приложения ), тип активации на Server, после чего делаю запуск test.exe и компонент грузится в dllhost.exe, то скорость работы падает в десятки раз. Компонент сам по себе работает долго, при типе активации library — 4 минуты. Никаких внешних вызовов не делает (маршалингом проблему не объяснишь), только лопатит внутри себя большие объемы данных.


VD>Ну, а что ты хотел. В одном случае используются локальные средства комуникации, а то и вообще вызов делается напрямую, а во втором происходит мепроцесная комуникация. Она завсегда медленее. Так что укрупняй вызовы делая их реже.


1) При in-proc вызов делается не напрямую;
2) При in-proc безопасность по умолчанию ниже, чем при out-of-proc.
Re[2]: Com+-компонент в dllhost работает очень медленно
От: ZXStyles  
Дата: 25.10.05 09:54
Оценка:
VD>Ну, а что ты хотел. В одном случае используются локальные средства комуникации, а то и вообще вызов делается напрямую, а во втором происходит мепроцесная комуникация. Она завсегда медленее. Так что укрупняй вызовы делая их реже.


Нету там межпроцессных коммуникаций. Я же описал, что все происходит в одном вызове
Re[3]: Com+-компонент в dllhost работает очень медленно
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.05 10:05
Оценка:
Здравствуйте, ZXStyles, Вы писали:

ZXS>Нету там межпроцессных коммуникаций. Я же описал, что все происходит в одном вызове


Если поднимается dllhost — то вызов явно межпроцессный.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Com+-компонент в dllhost работает очень медленно
От: Andrbig  
Дата: 25.10.05 10:34
Оценка:
Здравствуйте, ZXStyles, Вы писали:

VD>>Ну, а что ты хотел. В одном случае используются локальные средства комуникации, а то и вообще вызов делается напрямую, а во втором происходит мепроцесная комуникация. Она завсегда медленее. Так что укрупняй вызовы делая их реже.



ZXS>Нету там межпроцессных коммуникаций. Я же описал, что все происходит в одном вызове


test.exe — один процесс, dllhost.exe — другой процесс. Вызов проходит из одного процесса в другой — вот и межпроцессная коммуникация.

Однако если вызов один на 4 минуты работы, то эти коммуникации — крохи. Сколько работает server-активизация и сколько вызовов компонента происходит?
Re[4]: Com+-компонент в dllhost работает очень медленно
От: ZXStyles  
Дата: 25.10.05 11:12
Оценка:
A>test.exe — один процесс, dllhost.exe — другой процесс. Вызов проходит из одного процесса в другой — вот и межпроцессная коммуникация.

A>Однако если вызов один на 4 минуты работы, то эти коммуникации — крохи. Сколько работает server-активизация и сколько вызовов компонента происходит?


Сервер-активация идет доли секунды. Вызов — один. Далее долго крутится внутри этого единственного вызова
Re[5]: Com+-компонент в dllhost работает очень медленно
От: Andrbig  
Дата: 25.10.05 12:09
Оценка:
Здравствуйте, ZXStyles, Вы писали:

ZXS>Сервер-активация идет доли секунды. Вызов — один. Далее долго крутится внутри этого единственного вызова


Тогда анализировать работу самого компонента через PefrCounter
Автор: VladD2
Дата: 23.04.03
.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.