[PD-dev] [tcpserver]: bad performance of new version
hans at at.or.at
Tue Apr 28 02:43:55 CEST 2009
Or I forgot to mention, do you have a simple patch to reproduce the
problem? That would be even better.
On Apr 26, 2009, at 8:27 PM, Roman Haefeli wrote:
> hi martin, hi all
> i ve been testing the new netpd-server based on the new
> [tcpserver]/[tcsocketserver FUDI] now for a while and definitely could
> solve some problems, but some new ones were introduced.
> i found, that the most recent version of [tcpserver] peforms quite bad
> cpu-wise. this has some side-effects. in netpd, when a certain
> number of
> users are logged in (let's say 16), it can happen, that the traffic of
> those clients makes the netpd-server use more than the available
> cpu-time. i made some tests and checked, if all messages come through
> and if messages delivered by the server are still intact. under normal
> circumstances, there is no problem at all. but under heavy load, when
> the pd process is demanding more than available cpu time, some
> are corrupted or lost completely; in the worst case the pd process
> segfaults, at the moment of a client connecting or disconnecting. i
> guess, this is due to some buffer under- or overrun between pd and the
> tcp stack, but i don't really know.
> i wrote a benchmark patch and found out, that not only the new
> netpd-server patch performs badly, but quite some portion of bad
> performance comes from the new [tcpserver]. the testpatch compares
> perfomances of sending data to clients using [tcpserver] and
> from maxlib. the version of [tcpserver] shipped with current pd-
> performs slightly better than [netserver] (tested on OS X and linux).
> however, the most recent version, that solves the tcp buffer overrun
> problem, performs ~11 times worse than [netserver]. is that the trade
> off from solving the other issue? or could this theoretically be
> unfortunately, i still don't have a netpd-server running, which can be
> considered stable. the current one doesn't crash anymore, because
> clients lost network connection, but it crashes, when there is too
> traffic. respectively, it cannot be considered reliable, because it
> drops messages under certain circumstances.
> is anyone maintaining the code of [netserver] or maxlib in general?
> object class still suffers from the 'buffer overrun -> pd hangs'
> problem. since the same problem was fixed for [tcpserver], it might
> be too hard to port that fix to [netserver]. i am not able to dig
> into c
> sources, so i wanted to kindly ask here, if someone is interested to
> [tcpsocketserver FUDI] was meant as a replacement for [netserver] in
> order to get rid of the pd hangs caused by it. however, now i am not
> sure anymore, if this approach was a good idea at all, since the
> overhead from implementing FUDI parsing and stuff in pd instead of
> in c
> seems to be enormeous.
> Pd-dev mailing list
> Pd-dev at iem.at
As we enjoy great advantages from inventions of others, we should be
glad of an opportunity to serve others by any invention of ours; and
this we should do freely and generously. - Benjamin Franklin
More information about the Pd-dev