Is lag in Arena too big?

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Is lag in Arena too big?

Post by michiguel »

I was told by Adam and Gabor that Gaviota loses on time playing under Arena. I got the logs and I wrote a script to analyze how much time Gaviota thought, and how much time Arena told gaviota it thought. I did a quick analysis, but on average, there is a difference of ~0.4 seconds/per move. Sometimes, there are spikes of more than a second.
In addition, i looks like the time reported for both engines is lower than it should be. In Xboard, the difference is no more than 0.01 or 0.02 seconds, even with the GUI. The exception is when is animating moves and the lag is ~0.2 seconds.

0.4 seconds of lag is huge. The problem is that, at least in one log, when Gaviota was using TBs the lag started to be ~3 or 4 seconds! Is Arena doing anything with the HD and there is a bad interaction?

I need to analyze this more, but before I do and make changes to the engine, Is this well known?

Miguel
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Is lag in Arena too big?

Post by mcostalba »

michiguel wrote:Is this well known?
When I was using Arena for testing (now I don't use it anymore) I needed to switch from 1'+0" time control to 1'+0.3" otherwise there were a very high number of matches lost on time.

With FritzGUI, what I use now, it never happened although the engine's binaries were the same.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Is lag in Arena too big?

Post by ilari »

We had the same problem with Cute Chess many months ago. The Linux and Mac versions didn't have any problems, but in the Windows version there was a lag of 0.1 - 0.2 seconds. Turned out that it was caused by the QProcess class (part of the Qt library) which used polling to check for input. In the end I had to rewrite the whole class to use synchronous reads in a separate thread so that we'd get the input immediately.