поток данных
От: Аноним  
Дата: 17.09.11 22:12
Оценка:
Я хочу передавать между процессами данные. Что-то вроде сокетов или имнованых потоков: один прроцесс пишет данные, другой — читает.
Как это лучше всего реализовать с точки зрения производительности, если поток данных достаточно приличный?
Re: поток данных
От: Ops Россия  
Дата: 17.09.11 22:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я хочу передавать между процессами данные. Что-то вроде сокетов или имнованых потоков: один прроцесс пишет данные, другой — читает.

А>Как это лучше всего реализовать с точки зрения производительности, если поток данных достаточно приличный?

http://msdn.microsoft.com/en-us/library/aa365780%28v=VS.85%29.aspx
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: поток данных
От: Аноним  
Дата: 17.09.11 23:45
Оценка:
Здравствуйте, Ops, Вы писали:

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


А>>Я хочу передавать между процессами данные. Что-то вроде сокетов или имнованых потоков: один прроцесс пишет данные, другой — читает.

А>>Как это лучше всего реализовать с точки зрения производительности, если поток данных достаточно приличный?

Ops>http://msdn.microsoft.com/en-us/library/aa365780%28v=VS.85%29.aspx


Да, pipes подходят.
У меня вопрос не в том "как это сделать", а в том "какая реализация самая быстрая"
Re[3]: поток данных
От: ononim  
Дата: 18.09.11 00:24
Оценка: 12 (4)
А>У меня вопрос не в том "как это сделать", а в том "какая реализация самая быстрая"
если идет плотный обмен данными между двумя потоками — shared memory + SignalObjectAndWait/event-ы + насильно посадить оба потока на один и тот же процессор при помощи affiity mask
Как много веселых ребят, и все делают велосипед...
Re[3]: поток данных
От: Jolly Roger  
Дата: 18.09.11 05:33
Оценка: 7 (3)
Здравствуйте, Аноним, Вы писали:

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


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


А>>>Я хочу передавать между процессами данные. Что-то вроде сокетов или имнованых потоков: один прроцесс пишет данные, другой — читает.

А>>>Как это лучше всего реализовать с точки зрения производительности, если поток данных достаточно приличный?

Ops>>http://msdn.microsoft.com/en-us/library/aa365780%28v=VS.85%29.aspx


А>Да, pipes подходят.

А>У меня вопрос не в том "как это сделать", а в том "какая реализация самая быстрая"

LPC
Автор(ы): Леошкевич Илья
Дата: 23.06.2006
Данная статья является обзором недокументированного механизма LPC, в ней продемонстрированы основные моменты, необходимые для реализации простейших LPC-клиента и LPC-сервера. LPC как механизм передачи сообщений не всегда превосходит свои аналоги – именованные каналы, сокеты, синхронизированный доступ к разделяемой памяти, и т.д. И всё же, могут возникнуть ситуации, когда его использование выглядит достаточно привелекательным – идеальным примером явлется передача данных по инициативе драйвера пользовательскому приложению.
"Нормальные герои всегда идут в обход!"
Re[4]: поток данных
От: Аноним  
Дата: 18.09.11 05:50
Оценка:
Здравствуйте, Jolly Roger, Вы писали:

JR>LPC
Автор(ы): Леошкевич Илья
Дата: 23.06.2006
Данная статья является обзором недокументированного механизма LPC, в ней продемонстрированы основные моменты, необходимые для реализации простейших LPC-клиента и LPC-сервера. LPC как механизм передачи сообщений не всегда превосходит свои аналоги – именованные каналы, сокеты, синхронизированный доступ к разделяемой памяти, и т.д. И всё же, могут возникнуть ситуации, когда его использование выглядит достаточно привелекательным – идеальным примером явлется передача данных по инициативе драйвера пользовательскому приложению.

А чем LPC лучше других вариантов?
Re[5]: поток данных
От: Jolly Roger  
Дата: 18.09.11 06:01
Оценка:
Здравствуйте, Аноним, Вы писали:

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


JR>>LPC
Автор(ы): Леошкевич Илья
Дата: 23.06.2006
Данная статья является обзором недокументированного механизма LPC, в ней продемонстрированы основные моменты, необходимые для реализации простейших LPC-клиента и LPC-сервера. LPC как механизм передачи сообщений не всегда превосходит свои аналоги – именованные каналы, сокеты, синхронизированный доступ к разделяемой памяти, и т.д. И всё же, могут возникнуть ситуации, когда его использование выглядит достаточно привелекательным – идеальным примером явлется передача данных по инициативе драйвера пользовательскому приложению.

А>А чем LPC лучше других вариантов?

Скоростью
"Нормальные герои всегда идут в обход!"
Re[4]: поток данных
От: Pavel Dvorkin Россия  
Дата: 18.09.11 10:42
Оценка: +1
Здравствуйте, Jolly Roger, Вы писали:

JR>LPC
Автор(ы): Леошкевич Илья
Дата: 23.06.2006
Данная статья является обзором недокументированного механизма LPC, в ней продемонстрированы основные моменты, необходимые для реализации простейших LPC-клиента и LPC-сервера. LPC как механизм передачи сообщений не всегда превосходит свои аналоги – именованные каналы, сокеты, синхронизированный доступ к разделяемой памяти, и т.д. И всё же, могут возникнуть ситуации, когда его использование выглядит достаточно привелекательным – идеальным примером явлется передача данных по инициативе драйвера пользовательскому приложению.


Undocumented, однако.

А кстати, кто-нибудь замерял, действительно ли быстрее mmf ?
With best regards
Pavel Dvorkin
Re[5]: поток данных
От: ononim  
Дата: 18.09.11 10:55
Оценка: +1
PD>Undocumented, однако.
PD>А кстати, кто-нибудь замерял, действительно ли быстрее mmf ?
Я мерял, правда давно. Получалось не быстрее того, что я описал выше. У LPC впрочем есть другие готовые полезные плюшки — доступ к серверу по "имени", impersonation.
Как много веселых ребят, и все делают велосипед...
Re[5]: поток данных
От: Banned by IT  
Дата: 18.09.11 12:51
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А кстати, кто-нибудь замерял, действительно ли быстрее mmf ?

Да как бы не с чего ему быть быстрее правильно реализованного обмена через MMF.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: поток данных
От: Jolly Roger  
Дата: 18.09.11 13:49
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Jolly Roger, Вы писали:


JR>>LPC
Автор(ы): Леошкевич Илья
Дата: 23.06.2006
Данная статья является обзором недокументированного механизма LPC, в ней продемонстрированы основные моменты, необходимые для реализации простейших LPC-клиента и LPC-сервера. LPC как механизм передачи сообщений не всегда превосходит свои аналоги – именованные каналы, сокеты, синхронизированный доступ к разделяемой памяти, и т.д. И всё же, могут возникнуть ситуации, когда его использование выглядит достаточно привелекательным – идеальным примером явлется передача данных по инициативе драйвера пользовательскому приложению.


PD>Undocumented, однако.


LPC использует COM для маршалинга локальных межпроцессных вызовов, так что умрёт она разве что вместе с COM.

PD>А кстати, кто-нибудь замерял, действительно ли быстрее mmf ?


При измерении в user mode разница в пределах погрешности. Но LPC, как уже сказал ononim, идёт в пакете с бесплатными бонусами
"Нормальные герои всегда идут в обход!"
Re[6]: поток данных
От: Pavel Dvorkin Россия  
Дата: 18.09.11 14:02
Оценка: +1
Здравствуйте, Jolly Roger, Вы писали:

PD>>Undocumented, однако.


JR>LPC использует COM для маршалинга локальных межпроцессных вызовов, так что умрёт она разве что вместе с COM.


Вообще-то да. И, более того, едва ли MS начнет там что-то менять, так как при этом пришлось бы слишком многое переделывать. И все же — кто знает ? Решились же они в свое время на переделку таблицы хендлов процесса.
With best regards
Pavel Dvorkin
Re[6]: поток данных
От: Аноним  
Дата: 18.09.11 14:47
Оценка:
Здравствуйте, Jolly Roger, Вы писали:

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


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


JR>>>LPC
Автор(ы): Леошкевич Илья
Дата: 23.06.2006
Данная статья является обзором недокументированного механизма LPC, в ней продемонстрированы основные моменты, необходимые для реализации простейших LPC-клиента и LPC-сервера. LPC как механизм передачи сообщений не всегда превосходит свои аналоги – именованные каналы, сокеты, синхронизированный доступ к разделяемой памяти, и т.д. И всё же, могут возникнуть ситуации, когда его использование выглядит достаточно привелекательным – идеальным примером явлется передача данных по инициативе драйвера пользовательскому приложению.

А>>А чем LPC лучше других вариантов?

JR>Скоростью


Это общие предположения или кто-то конкретно мерял?
В статье есть измерения NamedPipes но нет измерений AnonimusPipes ((
Re[7]: поток данных
От: Jolly Roger  
Дата: 18.09.11 15:04
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>В статье есть измерения NamedPipes но нет измерений AnonimusPipes ((


Ну вот Вы и померяйте, коли интересно.
Что до анонимных пайпов, то они, если память меня не обманывает, в NT-based есть надстройка над именованными.
"Нормальные герои всегда идут в обход!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.