[computer-go] language choices

Peter Drake drake at lclark.edu
Mon Dec 4 08:22:10 PST 2006


The three most important things seem to be:

1) Run java in -server mode. This appears to double speed for no effort.

2) As you say, avoid creating objects. For example, instead of  
creating a new array each time a method is invoked, make the array a  
field and just clear it out when you need a "new" one. Similarly,  
instead of

Foo x = y.clone();

do something like

x.copyDataFrom(y);

where of course you have to write copyDataFrom().

3) Algorithmic improvements are always more important that fine-tuning.

Peter Drake
Assistant Professor of Computer Science
Lewis & Clark College
http://www.lclark.edu/~drake/




On Dec 4, 2006, at 2:40 AM, Eduardo Sabbatella wrote:

> Would you like to share some experiences on tunning up
> Java code ?
>
> Yesterday I left my machine profilling the code.
> (takes ages with TPTP).
>
> I didn't research too much the results, but as far I
> could see, creating objects is almost FORBIDDEN.
>
> The "clone" method on game class which is used for
> create a copy of game object for every simulation is
> the function that is taking the most of the time.
> (implies a couple of inner clones...)
>
> Also, a "getNear" method that returns a list of near
> points (considering borders) is the second most
> expensive. (even, being optimised ... The problem is
> that is creating a new array of size 1|2|3|4 elements
> for returning the result).
>
> About game class, I think that I will change to simple
> floodfill insteads of maintaining a list of liberties
> and chains. Clonning that list is expensive.
>
>
> --- Peter Drake <drake at lclark.edu> escribió:
>
>> A note: we're working on converting Orego back from
>> C++ to Java, and
>> we're getting 5,000 (totally random at this point)
>> simulated games
>> per second. We'll probably continue in this
>> direction.
>>
>> Peter Drake
>> Assistant Professor of Computer Science
>> Lewis & Clark College
>> http://www.lclark.edu/~drake/
>>
>> _______________________________________________
>> computer-go mailing list
>> computer-go at computer-go.org
>>
> http://www.computer-go.org/mailman/listinfo/computer-go/
>>
>
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
> _______________________________________________
> computer-go mailing list
> computer-go at computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/


More information about the computer-go mailing list