On 2009-11-06, at 9:14 AM, Alex Queiroz wrote:
Hallo,
On 11/6/09, Christian Jaeger chrjae@gmail.com wrote:
Also, you can try to lessen the amount of memory allocations. Make sure that for floating point calculations you're using the fl... operations and that you use the flonum and not safe declarations in those parts of the code; and/or instead of allocating temporary objects always freshly, reuse them and mutate their contents. Also if your allocations are mostly closures, play with the linining-limit, and avoid passing closures to other compilation units (instead put the called code into the same unit).
Thanks for all the tips! Actually the allocations are mostly due
to creating 64-bit integers, which are bignums. Those are the keys calculated from game positions, used in the hash table. I guess I'll implement the transposition table and related functions in C, it will cut garbage collection time (and hash calculation time) to a minimum.
Did you consider using a smaller hash that can fit in a fixnum?
Marc