Bonjour à tous,
Avant tout, j'espère ne pas me tromper de forum.
Le contexte :
Un processus parent qui fork() à certains moments. Le processus fils doit remonter au père un flot de données, potentiellement volumineux.
Je cherche donc à savoir, au niveau performance, ce qui est le mieux entre utiliser un pipe() entre les deux process, ou bien un segment de mémoire partagée + sémaphores ?
Si les données sont échangées en une seule fois entre le père et le fils, j'imagine qu'un segment de mémoire partagée doit être plus rapide, par contre dans le cas où les données sont échangées en plusieurs flots, il y aura donc plusieurs appels à semop(), aussi bien chez le fils que le père, et peut-être que dans ce cas le pire serait plus efficient non ?
Et sinon une autre idée, faire passer les données via une socket, c'est le même principe qu'un pipe (au niveau implementation sur l'os) ? Est-ce plus efficient ?
Si vous avez d'autres idées (surement meilleures) je suis preneur. Par contre il me faut impérativement faire du multiprocess, pas de threads.
Partager