J
Josh
A while back I started a project to write a mail server. I was doing this
in c++ and found that I/O completion ports were the best solution for the
project. I've since decided to port my application to the .NET framework
and noticed that the concept of an I/O completion port doesn't exist
natively in the framework. It does have similar counterparts with
BeginRead, BeginSend, etc.
I see I have two options, I can write some unsafe code to import the IOCP
API calls into my application and continue to use them. This solution would
give me the presumed performance benefits of IOCP, while letting me code the
rest of the application in .NET. Alternately I could use .NET's
BeginRead/BeginSend/etc. which would let me have a completely managed
solution, while losing some of the performance benefits. I really don't
have any benchmarking data comparing the efficiency/scalability of the two
methods and wanted to know if anybody has such data. Alternately if you can
simply tell me which path would be better for writing something like a full
featured mail server, and your reasons behind that decision, that would be
great as well. Thanks!
Josh Carlson
in c++ and found that I/O completion ports were the best solution for the
project. I've since decided to port my application to the .NET framework
and noticed that the concept of an I/O completion port doesn't exist
natively in the framework. It does have similar counterparts with
BeginRead, BeginSend, etc.
I see I have two options, I can write some unsafe code to import the IOCP
API calls into my application and continue to use them. This solution would
give me the presumed performance benefits of IOCP, while letting me code the
rest of the application in .NET. Alternately I could use .NET's
BeginRead/BeginSend/etc. which would let me have a completely managed
solution, while losing some of the performance benefits. I really don't
have any benchmarking data comparing the efficiency/scalability of the two
methods and wanted to know if anybody has such data. Alternately if you can
simply tell me which path would be better for writing something like a full
featured mail server, and your reasons behind that decision, that would be
great as well. Thanks!
Josh Carlson