|
|
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Простая функция на тестовом сервере: принять строку текста 20 символов, вернуть её обратно - для клиента это цикл послать/принять. Замеры по 10000 циклов в локальной сети 100Mb дали результаты: DCOM на VFP9 - 400 циклов/сек, Winsock на VC++6 - 5000/сек. Насколько типичны эти результаты, или я напортачил с реализацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 07:06 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Так а в чем вопрос. DCOM при этом кучу работы сделал дополнительной: преобразование данных произвел, типы проверил, пересылку по RPC, авторизовал пользователя, права доступа. Если тебе это не надо, то почему-бы и не WinSock, а если будешь все делать сам - может у тебя и больше получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 09:23 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Немного непонятно, зачем Вы это делаете. Читал неплохую статью на сайте компании West Wind там приводились результаты чего-то аналогичного, выиграл специально разработанный модуль на C++... Посмотрите сами по указанной ссылке, может найдете эту или другую статью... Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 12:47 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Уточняю, хотя и не совсем понятно, что такое "это нехорошее", что я делаю. Фокс система не только SQL-ская, но и "записийная". Для обработки данных в режиме навигации по записям существенно время исполнения мелких операций, запрашиваемых клиентом сервера. И это даже если основная работа выполняется на сервере "хранимыми процедурами" с представлением клиенту результатов в виде небольшх наборов данных. Например, надо подставлять в редактируемое поле значения по прокручиваемому списку из очень большого справочника, хранимого на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 19:36 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Rostislav D. KudryashovПростая функция на тестовом сервере: принять строку текста 20 символов, вернуть её обратно - для клиента это цикл послать/принять. Замеры по 10000 циклов в локальной сети 100Mb дали результаты: DCOM на VFP9 - 400 циклов/сек, Winsock на VC++6 - 5000/сек. Насколько типичны эти результаты, или я напортачил с реализацией? А код того и того можно глянуть? Методика замера? Локальная сеть общая или специально ворганизованная (из 2 машин)? И еще, что мешает тот же самый Winsock на VFP сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 05:45 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Для w3d: тексты в приложении, в них и методика замера, а сеть - локалка бщая Ethernet 100Mb, но разные запуски не слишком разнятся по скорости, так что влиянием чужого трафика можно пренебречь. Вся идея состоит в Фоксовском COM-сервере для таблиц DBF. Он должен быть доступен для Java-клиентов и не мешать старым файл-серверным DOS-задачам. Для этого нужен еще к-то прокси. Он может быть на DCOM (IBM Bridge2Java или свой JNI) или на Winsocket. Писать Winsocket прокси на Фоксе нет смысла. Я так понимаю, чтоб клиентские запросы обрабатывались Fox-м многопоточно, с квантованием времени, надо чтоб обращения к FOX-COM (и VFP9t) шли из разных потоков на хосте, создаваемых в Winsocket-прокси для каждого клиента. Сам же Fox не умеет создавать потоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 09:58 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Все равно не понятно, что Вы делаете... Неужели нельзя уже использовать что-то стандартное, быстрое и готовое, например Web Services? Тогда данные из FoxPro можно использовать хоть на Java (так как обмен будет вестись на чистом XML)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 10:14 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
авторСам же Fox не умеет создавать потоки. Так их умеет делать DCOM или COM+ подсистема Windows. Ты же на WinSock фактически тоже самое будешь делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 10:24 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Для Sergey Ch. WebServices звучит заманчиво, но тут у меня пробел. Действительно ли, что Web будет реагировать на частые и малые запросы быстрее DCOM (400 циклов/сек по сравнению с 5000 из Winsocket на сети 100Mb удручают, а ведь реальная работа пойдёт на 2Mb)? Например, при правке полей надо проверять допустимость значений с прокруткой большого объёма данных на сервере. И ещё вопрос в том, что дистрибуты заказчикам я могу передавать только по e-mail. Даже если я сам подкуюсь по части Web, сумею ли я разъяснить заказчикам, что им надо у себя устроить? Можно ли воткнуть в дистрибут инстолятор Web-сервера? Скажите "да", я тогда уж постараюсь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 19:35 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Rostislav D. KudryashovДля Sergey Ch. WebServices звучит заманчиво, но тут у меня пробел. Действительно ли, что Web будет реагировать на частые и малые запросы быстрее DCOM (400 циклов/сек по сравнению с 5000 из Winsocket на сети 100Mb удручают, а ведь реальная работа пойдёт на 2Mb)? Например, при правке полей надо проверять допустимость значений с прокруткой большого объёма данных на сервере. И ещё вопрос в том, что дистрибуты заказчикам я могу передавать только по e-mail. Даже если я сам подкуюсь по части Web, сумею ли я разъяснить заказчикам, что им надо у себя устроить? Можно ли воткнуть в дистрибут инстолятор Web-сервера? Скажите "да", я тогда уж постараюсь! 1. Насчет быстрее я не уверен, так как в процессе участвует промежуточное звено - IIS. 2. Не понимаю, что значит частые и малые - что Ваша задача реально делает? Какой бизнес - процесс? 3. Многопоточность в SOAP 3.0 реализована хорошо. 4. Большой объем данных в таблицах должен быть проиндексирован по нужному полю плюс побольше памяти на сервере не помешает (задачу могут тормозить приложения на старом FoxPro)... 5. Установить Web Service на сервере заказчика можно просто... Но в дистрибутив вложить будет немного сложновато - проще если они сами сгенерируют Ваш код на сервере, но в принципе все решаемо - мне клиенты дают доступ по терминальной сессии через интеренет а там я уже делаю свое "черное" дело. Если использовать методику, описанную в моем примере, то это далать надо только один раз, а потом просто давать им новую DLL, которую Вы получите на своем компьютере из FoxPro+SOAP 3.0... Так что однозначно на Ваш вопрос я не могу ответить "да"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 20:26 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Hi Rostislav! Ты полагаешь, что основное время будет расходоваться на TCP обмен? Что-то не верится... Ты раельным чем-нить нагрузи свой "сервер" - да хоть бы и созданием примитивной выборки из 10-ка записей по (оптимизируемому) условию - тогда и сравнивай :) Кроме того для COM+ можно обеспечить межсерверную транзакционность (правда придётся писать свой "компенсатор" - но пример в VFP имется), пул объектов (т.е. чтобы скажем 400 клиентов обслуживало на 400 конкурентных потоков, а всего 10-20 :) ), авторизацию в конце концов... И ещё - ен понятно КАК ты это делал - т.е. реально DCOM (весьма уже древняя по сегодняшним меркам технология) или всё-же COM+ (который хоть и "преемник", но заметно расширенный)... И опять-же сколько было потоков на сервере в том и другом случае, какова методика тестирования (IMHO 1 клиент делающий кучу коннекций/запросов+1 сервер - это не очень типичное решение - т.е. тут может быть своя специфика). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 01:48 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov. Извиняюсь за неточность, конечно, я использовал MTS+ на Win2000, а не DCOM. А что касается многоаспектности рассматриваемого процесса, факт остаётся фактом - скорость обработки запросов по сети через MTS+ слишком мала и не только по сравнению с Winsocket. Тот же COM-сервер, вызываемый локально на CPU 1330Mhz показывает 35000 циклов/сек против 400 из MTS+. Накладные расходы на сеть ЧУДОВИЩНЫ. Так что с сокрушением сердца обращаю взор к Winsocket'у. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 05:51 |
|
||
|
Скорости DCOM и WinSocket
|
|||
|---|---|---|---|
|
#18+
Это можно оценить примерно так. Есть одна крайность, написать на ассемблере под чистый Ethernet - летать (работать) будет быстро, но взлетать (разрабатываться) очень долго. Есть другая крайность, написать на каком-нибудь макроязыке и как транспорт использовать электронную почту - летать не будет, взлетать правда тоже будет долго. Я что хотел сказать. DCOM (COM+) - это межмашинная технология, которая предоставляет программисту определенный дополнительный сервис (не претендую на полноту): - безопасность (авторизацию, права доступа); - преобразование данных (передаем в методы параметры как есть - COM-подсистема сама их сериализирует); - объектную ориентированность и прозрачность использования локально-удаленно; - и что-то там еще много, не хочу напрягаться. НО. Все это стоит дополнительных расходов. Поэтому, если данные излишества не нужны или наоборот вредят - долой их и работаем на чистом WinSocket ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 10:55 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33458631&tid=1592673]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 545ms |

| 0 / 0 |
