2015-04-10 4 views
0

Я читаю финансовые данные у своего брокера в режиме реального времени через API-интерфейс websocket. Клиент написан на Python. У меня есть еще одна программа на C++, которая читает эти данные, но способ, которым я общаюсь с скриптом python, - это физический текстовый файл.Inter-process communication с использованием физических текстовых файлов

Мои вопросы ...

1) Есть ли постоянно переписывая Textfile, открытие, чтение и закрытие его каждый раз влияет на производительность? Если да, то какой способ это сделать? Эффективность моего приложения имеет решающее значение.

2) Будет ли использование названных каналов лучшим вариантом? Или это почти то же самое, что писать и читать в текстовый файл?

+0

* Постоянно переписывает текстовый файл, открытие, чтение и закрытие его каждый раз влияет на производительность? * Да –

+0

Запись в файлы идет медленно, трубы бывают быстрыми. – 101

+1

Не уверен, что я бы классифицировал использование текстовых файлов как IPC IMO – EdChum

ответ

3

Современная поддержка ОС много разных IPC. Трубы, именованные каналы, сокеты, файлы с отображением памяти, ... Выбор одного или другого решения очень зависит от вашего приложения. Но, в общем, все они должны быть «лучше», чем использовать простой старый файл.

Поскольку IPC являются объектами, которыми управляет ОС, они являются не в зависимости от языка, используемого для записи различного процесса. Некоторые IPC имеют семантический файл (трубы, именованные каналы). Другие требуют использования некоторых выделенных системных примитивов (mmap). Но C++ и Python (и многие другие языки) будут поддерживать требуемый системный вызов. На самом деле, IPC отлично, чтобы помочь программному обеспечению, написанному на разных языках, говорить вместе.

+1

Просто, чтобы быть ясным, не пробуйте mmap'ing именованной трубы! (Я знаю, вы этого не сказали) – cdarke