Table of Contents
This happens while going forward or backward for a large number of moves in a game. Since Java offers no stream selectors for file streams, GoGui needs to use thread synchronization to read the output and error stream of the Go program for preserving the correct order of the received output in the GTP shell and for detecting timeouts. This synchronizationcan becomes slow if there are other CPU intensive background processes running on the computer. The problem can be avoided if the Go engine implements the gg-undo and play_sequence commands (see Chapter 3, Compatibility), then a single command can replace up to several hundred play or undo commands.
Rendering errors in the GTP shell window occur, which disappear after manually resizing the window. This is probably a bug in the Java libraries. With Java 1.4.2 for Linux, this problem seems to have disappeared after introducing a workaround, which resets the window size after each text update. With other Java versions, or on other systems, the problem can still exist.
There are two known problems with Java 1.4.2 on Mac OS X: the popup menu sometimes overlaps the command field and selection from the popup menu using the Enter key does not work. It is recommended to disable command line completion on the Mac and to select from the popup menu only using the mouse.
Java uses a low maximum memory heap size by default. It can be increased by using the "-Xmx" option, for example for 512MB:
java -Xmx512M -jar gogui.jar
Don't use more memory than there is real memory on the machine, because using swap space will make the program unusable slow.