Browse thread
async networking
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2006-02-07 (19:28) |
From: | Rick Richardson <rick@e...> |
Subject: | Re: [Caml-list] Re: async networking |
> Note that I said 'high-performance'. > > Point #1: select() and anything based on it (I believe Equeue still is > though I haven't looked at it for quite a while) is woefully inadequate > for high performance I/O except in very specific circumstances. > I was planning on a select() based system. Which architecture would you recommend? I like the idea of the ring buffer. Especially for switch type applications which are going in one port and out the other. For a standard system that could involve 2-3 different copies when 1 would be adequate. > Point #2: It is not customary for UI applications to require > particularly high-performance I/O, thus rendering the non-composability > issue moot. > > I'm _not_ recommending libevent for general use, just if you want high > performance with an easily switchable backend implementation. I haven't fully looked at the libevent system, but any such framework would seem like overkill to me, when really I just need a lightweight "deferred" class which maintains a simple callback list. In fact.. I could leave that out of this library entirely as it may be out of the scope of my simple project. The medusa/asyncore project is 847 lines of c++ code including a test case and demo. I was hoping to stay around that number. Thanks, everyone for your input so far, I am rather new to ocaml and all the resources that have been pointed out to me have been enlightening on more subjects than this.