Andrew Sherk
|
Re: using poll/select with mq (alternative implementation)
|
Andrew Sherk
01/28/2009 2:34 PM
post20952
|
Re: using poll/select with mq (alternative implementation)
Hi Sean,
Here's the test case:
1) start server
2) start daemon
3) run client with multiple parameters:
size of message (len), # of messages to send (n)
Data is sent as follows:
repeat n times:
client sends len bytes to daemon
daemon sends len bytes to server
server replies to daemon with same len bytes
daemon replies to client with same len bytes
client compares the contents of the message sent with what came back
-end repeat
client<->daemon and daemon<->server communication can be either 1) unix domain sockets; 2) via mqueue resource manager;
3) QNX native message passing
To run the test, you can build the programs dclient, ddaemon, dserver (native message passing), mclient, mdaemon,
mserver (using mqueue), and UnixDomainSockets\*, then run autoTransportCompare to get the time it takes for each using
various message lengths.
Times are output to d.results (for unix domain sockets)
m.results (for mqueue)
and q.results (for QNX native message passing)
Can the unix domain sockets become as fast as the traditional mqueue transport?
How can we get faster throughput than io-pkt for local domain sockets without giving up pollable fd's and having to go
with native IPC?
Also attached in the .zip is transport-benchmarks-v2.xls which has the times from my execution of the test case
(probably less work for you to refer to this spreadsheet alonsgide looking at the .c files, rather than have to compile
and run it all yourself).
|
|
|