IPC - он самый
От: Аноним  
Дата: 28.01.05 07:36
Оценка:
Здравствуйте!

Вопрос к опытным Win API программистам, или просто к тем знает ответ
Существует небольшая порция данных — 380 байт. Её необходимо элегантно и с максимальной скоростью отсылать одному процессу, а тот в свою очередь должен отсылать её к тому, кто её отослал (т.е. еще и синхронизация). Через какой IPC её бы сделать.

ЗЫ довольно часто пересылается: около 1000 раз в секунду.

Спасибо.
Re: IPC - он самый
От: Кодёнок  
Дата: 28.01.05 10:23
Оценка:
А>Вопрос к опытным Win API программистам, или просто к тем знает ответ
А>Существует небольшая порция данных — 380 байт. Её необходимо элегантно и с максимальной скоростью отсылать одному процессу, а тот в свою очередь должен отсылать её к тому, кто её отослал (т.е. еще и синхронизация). Через какой IPC её бы сделать.

Можно два эвента + именованный файл-маппинг, правда я не знаю, насколько быстро это будет.
Re: IPC - он самый
От: Pavel Dvorkin Россия  
Дата: 28.01.05 11:19
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте!


А>Вопрос к опытным Win API программистам, или просто к тем знает ответ

А>Существует небольшая порция данных — 380 байт. Её необходимо элегантно и с максимальной скоростью отсылать одному процессу, а тот в свою очередь должен отсылать её к тому, кто её отослал (т.е. еще и синхронизация). Через какой IPC её бы сделать.

А>ЗЫ довольно часто пересылается: около 1000 раз в секунду.


ИМХО лучше всего использовать WM_COPYDATA.

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Re: IPC - он самый
От: sercher Украина  
Дата: 28.01.05 11:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте!


А>Вопрос к опытным Win API программистам, или просто к тем знает ответ

А>Существует небольшая порция данных — 380 байт. Её необходимо элегантно и с максимальной скоростью отсылать одному процессу, а тот в свою очередь должен отсылать её к тому, кто её отослал (т.е. еще и синхронизация). Через какой IPC её бы сделать.

А>ЗЫ довольно часто пересылается: около 1000 раз в секунду.


А>Спасибо.


сокет
Re[2]: IPC - он самый
От: Аноним  
Дата: 29.01.05 02:11
Оценка:
Здравствуйте, sercher, Вы писали:

S>Здравствуйте, Аноним, Вы писали:

[...]

S> сокет


Спасибо всем ответевшим.
Действительно WM_COPYDATA и сокет достаточно быстры (два эвента + именованный файл-маппинг плохо работали, если оперативной памяти было мало, но это, видимо, недостаток моей реализации). Тем более, что после переделки структуры шэфом данные малость выросли и теперь они можгут быть до 1400 байт, а частота обмена до 5000(!) раз в секунду (правда и качество тоже выросло )
Еще раз всем большое человеческое СПАСИБО.
Re[2]: IPC - он самый
От: emusic Франция https://software.muzychenko.net/ru
Дата: 29.01.05 04:32
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

А>>ЗЫ довольно часто пересылается: около 1000 раз в секунду.


PD>ИМХО лучше всего использовать WM_COPYDATA.


В плане простоты — да, но в плане скорости два события и разделенная память быстрее.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Re[3]: IPC - он самый
От: an-52  
Дата: 29.01.05 14:28
Оценка:
Здравствуйте, Аноним, Вы писали:

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


S>>Здравствуйте, Аноним, Вы писали:

А>[...]

S>> сокет


А>Спасибо всем ответевшим.

А>Действительно WM_COPYDATA и сокет достаточно быстры (два эвента + именованный файл-маппинг плохо работали, если оперативной памяти было мало, но это, видимо, недостаток моей реализации). Тем более, что после переделки структуры шэфом данные малость выросли и теперь они можгут быть до 1400 байт, а частота обмена до 5000(!) раз в секунду (правда и качество тоже выросло )
А>Еще раз всем большое человеческое СПАСИБО.

Ещё есть вариант использывать именнованный pipe. Синхронизация тогда обеспечиться ОС. А реализовано это при помощи отображения в пямяти. Так же появляеться возможность разносить процессы в сети, т.е. они работают на разных машинах. Но тогда это естественное через отображение в память не реализуется.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.