Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Performance of I/O Completion Ports

Black Belt
Back in August, we has some questions and information on I/O Completion Ports under Win32 Threads. (See...
Has anyone had any experience with these and been able to compare them to alternative methods for performance? Completion ports seem to be a convenient method for setting a pool of threads to perform tasks related to asyncrhonous I/O. But is it the best method? Would a "hand crafted" pool of threads with a work queue be more productive? Are completion ports just a simple syntactic sugar that is more expensive than doing the same by hand? Are there special cases when some other method would be better than completion ports (reading multiple files, reading blocks of a single file, "listening" at sockets for activity)?
Anyone care to share their experiences with using I/O Completion Ports? The good, the bad and, the ugly are welcome.
-- clay
0 Kudos
1 Reply


I just recently join this forum so that is why such late reply. I read a few books, papers etc. about network IO and bottom line is: IOCP is the best. Yes it is little complicated in the beginning but if you reuse your code this should not be a problem. For further reading I suggest Microsoft Windows Network Programming 2nd Edition, Chapter 6: Scalable Winsock Applications where You can find various network IO models compared.


0 Kudos