Comment 10 for bug 1013396

Revision history for this message
ente (ente76) wrote :

Coming back to my defect with some new observations. I am not a java expert, I am rather a newbie on java.

Some background information on my script: it is doing up to 200+ findAll()-Operations per minute. It consist of a main loop "while 1=1" nested with a few more loops. There is almost no sleep() or wait() operation. Mouse movement is max'ed. AutoWaitTimeout is set to 0.
The observations have been made on the test scripts attached to this defect as well.

It looks like java garbage collection sucks with default options. Adding "import gc" and a few "gc.collect()" within the loops slows down heap exhaust dramatically. For the test scripts it even avoids heap exhaust for more than one hour. My main script is now running stable for at least 12 hours.
I've developed an automatic restart function, i.e. after 12 hours the script leaves it's main loop and starts a windows batch file. The batch file needs a delay at the beginning (using "timeout" or ping) for a few seconds before starting the script again. Otherwise the new instance of my script is executed before java exits. If the new script instance is started before java exists, the memory is not freed but the new instance takes over the old.