|
I left synergyc 1.4.2 running on a Gentoo Linux Intel 32 bit system using kernel 2.6.36-gentoo-r8 from the 4th of April, 2011 and as at the 2nd of May, 2011, it has used 6 hours, 50 minutes and 23 seconds of CPU and is constantly showing in 'top' as using around 1%. It has been connected to a server on a laptop running the same version of Synergy, also Gentoo, Intel, 64 bit, using the same kernel version. Both linux systems use 'Fluxbox', a lightweight Window manager. I am curious as to why so much cpu is required for a 'client' program - particularly since I have not been anywhere near the client/server computers for the last 10 days. The Server computer has only used 11 minutes 28 seconds of CPU in the last 12 days (it has been rebooted more recently than the client). I would not expect that any traffic/processing would be sent/performed to/on the 'client' machine unless the 'mouse pointer' had moved to the 'client' space. Additionally, I would expect the 'server' to consume more resources than the client, as it's the one that has to handle the keyboard/mouse all the time, not just sometimes. |
|
The problem is, in function CXWindowsEventQueueBuffer::waitForEvent, a call to poll() is issued with a ridiculously short poll timeout of 25 milliseconds. Why, in heavens name would you need to cycle 40 times a second when there is no activity? I don't know the reasoning behind this but what is wrong with infinite timeout? If the connection fails, the poll() will return with an error? I found this as my linux machine has full debugging symbols compiled in and I connected to the synergyc, with the resulting stack trace.
|
Was the client disconnected from the server? We disabled the exponential retry mechanism for faster reconnects, but this has unfortunately had the side-effect of increasing CPU usage.
There was no significant (more than 10 minutes or so) of disconnect in the last month.
Even with an active connect, the client is using 1% CPU, which is exorbitant for the task it's doing. A web camera security system (ZoneMinder) uses less 50% CPU than the synergy client on the same computer.