Computer Chess Club Archives




Subject: Re: Java vs. C++ Chess Programming Question

Author: Mark Christiaens

Date: 02:16:40 05/16/01

Go up one level in this thread

On May 15, 2001 at 20:28:25, Sam Gross wrote:

>I am writing a bitboard-based chess engine in Java, and a preliminary test of
>the search function (plain alpha-beta search, no transposition table, history,
>null move, or anything else) was pretty disappointing.  I am getting about 10%
>of the nps crafty gets on the same machine, even though my evaluation function
>is just the material imbalance.  My question is, how much of this is due to
>differences in speed between Java and C++, and how much is due to lack of a
>transposition table (or other factors)?  Also, I wonder if my program may be
>stretching Java's automatic garbage collectors.  A new copy of my board is made
>for every node, and each node creates many instances of my move object, which I
>imagine would use up a lot of time.  Any help would be appreciated.

Sounds to me you're using Java as a "silver bullet"  Java's memory management is
no substitute for some thinking about memory allocation.  It is still (just as
in C/C++) a costly operation to allocate an object.  What I know of conventional
chess programs is that they allocate the data structures to store the
chessboards up front (a few hundred) and reuse them.

This page took 0.02 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.