¿Alguien tiene alguna idea del rendimiento relativo de GAsyncQueue de GLib frente a la cola de mensajes POSIX para la comunicación entre hilos? Tendré muchos mensajes pequeños (tanto de ida como de solicitud y respuesta), que se implementarán en C en la parte superior de Linux (por ahora, pueden transferirse a Windows más adelante). Estoy tratando de decidir cuál usar.GLib's GAsyncQueue vs. POSIX message_queue
Lo que he descubierto es que usar GLib es mejor para la portabilidad, pero POSIX mq tiene la ventaja de poder seleccionar o sondear en ellos.
Sin embargo, no he encontrado ninguna información sobre qué rendimiento es mejor.
Muy interesante. He votado su respuesta y pregunta, tal vez ahora le permita publicar los gráficos. – kalev
Realicé algunos experimentos más: agregué señalización entre hilos para informar al consumidor que se han producido datos. Usé la técnica eventfd Linux. Y tan pronto como lo hice, vi que el rendimiento de GAsyncQueue degradar era similar a los demás. – dbikash
¿Esto da una explicación de los resultados? Que todos los mecanismos de IPC de Linux pasan por el núcleo y, por lo tanto, tienen un rendimiento similar. GAsyncQueue de alguna manera tiene una implementación de espacio de usuario - espacio de usuario adicional - se evita la copia de espacio del kernel, lo que resulta en un mejor rendimiento. Y tan pronto como se agrega el mecanismo eventfd, nuevamente el núcleo entra en la imagen. Es ese entendimiento correcto? – dbikash