Имеется com+-компонент ( на C# ), library. При вызове его из тестового приложения test.exe, т.е. при загрузке компонента в процесс test.exe, скорость очень даже приличная. Если я меняю у компонента ( приложения ), тип активации на Server, после чего делаю запуск test.exe и компонент грузится в dllhost.exe, то скорость работы падает в десятки раз. Компонент сам по себе работает долго, при типе активации library — 4 минуты. Никаких внешних вызовов не делает (маршалингом проблему не объяснишь), только лопатит внутри себя большие объемы данных.
Re: Com+-компонент в dllhost работает очень медленно
Здравствуйте, 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 работает очень медленно
Здравствуйте, 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 работает очень медленно
VD>Ну, а что ты хотел. В одном случае используются локальные средства комуникации, а то и вообще вызов делается напрямую, а во втором происходит мепроцесная комуникация. Она завсегда медленее. Так что укрупняй вызовы делая их реже.
Нету там межпроцессных коммуникаций. Я же описал, что все происходит в одном вызове
Re[3]: Com+-компонент в dllhost работает очень медленно
Здравствуйте, ZXStyles, Вы писали:
VD>>Ну, а что ты хотел. В одном случае используются локальные средства комуникации, а то и вообще вызов делается напрямую, а во втором происходит мепроцесная комуникация. Она завсегда медленее. Так что укрупняй вызовы делая их реже.
ZXS>Нету там межпроцессных коммуникаций. Я же описал, что все происходит в одном вызове
test.exe — один процесс, dllhost.exe — другой процесс. Вызов проходит из одного процесса в другой — вот и межпроцессная коммуникация.
Однако если вызов один на 4 минуты работы, то эти коммуникации — крохи. Сколько работает server-активизация и сколько вызовов компонента происходит?
Re[4]: Com+-компонент в dllhost работает очень медленно
A>test.exe — один процесс, dllhost.exe — другой процесс. Вызов проходит из одного процесса в другой — вот и межпроцессная коммуникация.
A>Однако если вызов один на 4 минуты работы, то эти коммуникации — крохи. Сколько работает server-активизация и сколько вызовов компонента происходит?
Сервер-активация идет доли секунды. Вызов — один. Далее долго крутится внутри этого единственного вызова
Re[5]: Com+-компонент в dllhost работает очень медленно