GNU/Linux >> Linux Esercitazione >  >> Linux

Quale tecnica Linux IPC usare?

Quando selezioni il tuo IPC, dovresti considerare le cause delle differenze di prestazioni, tra cui le dimensioni del buffer di trasferimento, i meccanismi di trasferimento dei dati, gli schemi di allocazione della memoria, le implementazioni dei meccanismi di blocco e persino la complessità del codice.

Tra i meccanismi IPC disponibili, la scelta per le prestazioni spesso si riduce ai socket di dominio Unix o ai named pipe (FIFO). Ho letto un documento sull'analisi delle prestazioni di vari meccanismi per la comunicazione tra processi che indica che i socket di dominio Unix per IPC possono fornire le migliori prestazioni. Ho visto risultati contrastanti altrove che indicano che le pipe potrebbero essere migliori.

Quando si inviano piccole quantità di dati, preferisco le named pipe (FIFO) per la loro semplicità. Ciò richiede una coppia di named pipe per la comunicazione bidirezionale. I socket di dominio Unix richiedono un po' più di sovraccarico per la configurazione (creazione del socket, inizializzazione e connessione), ma sono più flessibili e possono offrire prestazioni migliori (throughput più elevato).

Potrebbe essere necessario eseguire alcuni benchmark per la tua specifica applicazione/ambiente per determinare cosa funzionerà meglio per te. Dalla descrizione fornita, sembra che i socket di dominio Unix possano essere la soluzione migliore.

Guida di Beej all'IPC Unix è utile per iniziare con Linux/Unix IPC.


Sceglierei Unix Domain Sockets:meno sovraccarico rispetto ai socket IP (ovvero nessuna comunicazione tra macchine) ma stessa comodità per il resto.


Linux
  1. Come usare BusyBox su Linux

  2. Come uso cron in Linux

  3. Quale soluzione di backup open source usi?

  4. Linux:quale applicazione utilizzare per un calendario?

  5. Quale file system usare tra OSX e Linux

Usa emoji in stile Mac su Linux

Come usare il comando grep in Linux/UNIX

Linux quale comando

Quale distribuzione Linux da usare dopo Ubuntu?

Linux vs Unix

Come utilizzare il comando which in Linux