/ / Comunicazione tra processi utilizzando file di testo fisici - python, c ++, pipe, inter-process-communicat

Comunicazione tra processi utilizzando file di testo fisici: python, c ++, pipe, inter-process-communicat

Sto leggendo i dati finanziari dal mio broker inin tempo reale tramite un'API websocket. Il client è scritto in Python. Ho un altro programma C ++ che legge quei dati, ma il modo in cui sto comunicando con lo script python è attraverso un file di testo fisico.

Le mie domande sono ...

1) Riscrivere costantemente il file di testo, aprirlo, leggerlo e chiuderlo ogni volta influisce sulle prestazioni? Se è così, qual è il modo migliore per farlo? Le prestazioni della mia applicazione sono cruciali.

2) L'uso di pipe denominate sarebbe un'opzione migliore? O è più o meno lo stesso che scrivere e leggere su un file di testo?

risposte:

3 per risposta № 1

Il moderno sistema operativo supporta molti diversi IPC. Tubi, named pipe, socket, memory mappedfile, ... La scelta di una soluzione o l'altra dipende molto dalla tua applicazione. Ma in generale, tutti dovrebbero essere "migliori" rispetto all'utilizzo di un semplice file vecchio.

Come IPC sono oggetti gestiti dal sistema operativo, lo sono non dipendente dal linguaggio usato per scrivere ilvario processo. Alcuni IPC hanno un file semantico (pipe, named pipe). Altri richiedono l'uso di alcuni sistemi primitivi dedicati (mmap). Ma C ++ e Python (e molti altri linguaggi) supporteranno la chiamata di sistema richiesta. In effetti, IPC lo sono grande per aiutare il software scritto in diverse lingue a parlare insieme.