Является ли mmap лучшим способом связи между процессами? - PullRequest
0 голосов
/ 29 апреля 2010

Я использую файл для связи между Python и скриптом Ruby. Но у нас есть Mmap. Итак, вот мои вопросы.

  • Могу ли я сделать то же самое (связать процессы) с mmap?
  • Какое преимущество может дать нам mmap перед физическим файлом? Ускорение
  • Какой самый простой способ связи между двумя процессами?
  • Какой самый быстрый способ связи между двумя процессами?

Ответы [ 2 ]

4 голосов
/ 29 апреля 2010

одно преимущество mmap перед физическим файлом - это ускорение, но все будет быстрее, чем физический файл!

Самый простой способ связи между процессами - это канал или сокет. они проще, потому что они являются потоками, поэтому они не накладывают ограничения на длину данных, которыми вы можете обмениваться между процессами, в отличие от файла или mmap, которые имеют границы.

0 голосов
/ 25 мая 2010

Это может зависеть от того, что вы хотите общаться. Если вы просто передаете массивный набор данных из одного приложения в другое, тогда файлы mmap могут иметь смысл. Если у вас есть сообщения, лучше использовать протокол IPC / RPC. Если вы передаете данные из одного приложения в другие каналы / сокеты, может быть лучше.

С mmaps вы все равно должны управлять ими как файлом, поэтому вы должны открывать и закрывать их так, чтобы они синхронизировались. Это может повлиять на производительность, поэтому вы можете использовать потоки / каналы.

...