Francois PIETTE wrote: >>> One possible explanation were that anytime OnDataAvailable returns, >>> just a few _new_ bytes are available in winsock buffer. Could be >>> possible due to the background thread winsock creates internally >>> with non-blocking sockets, though I'm not aware of how winsock works >>> under the hood. >>> >> When in this situation, we got a few hundred calls a second, for an >> unlimited time, where normally it's one every few seconds. >> I agree with you, it could be a possible cause, but very unlikely. >> > > Do you receive data each time you call ReceiveStr ? If yes, then probably > you have a fast network, and your application becomes CPU bound. > That's the thing, I don't receive any data. At least not using ReceiveStr() > btw: Since you don't use line mode, I strongly suggest you avoid ReceiveStr > and instead use Receive with a fixed buffer. Calling ReceiveStr will force > the runtime to create new string and copy data into it, and probably youthen > copy data elsewhere for processing. All this is very CPU intensive. > > The best way to design a high performance application is to use a fixed > buffer (which may be dynamically allocated but not each time you receive > data). And use the buffer as close as possible of the processing each time > you copy data, each time you consume CPU and memory for nothing. > > -- > [EMAIL PROTECTED] > The author of the freeware multi-tier middleware MidWare > The author of the freeware Internet Component Suite (ICS) > http://www.overbyte.be > >
-- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be