[elephant-devel] Optimization
Leslie P. Polzer
sky at viridian-project.de
Tue Dec 23 09:22:55 UTC 2008
Dear Elliott,
On Sun, Dec 21, 2008 at 09:35:06PM -0800, Elliott Slaughter wrote:
> I am exploring Elephant/BDB as a backend for a video game I am writing. I
> have ignored performance considerations so far, but on some larger maps
> (around 100 objects), performance is abominably slow (around 5 fps). The
> same maps run about 10 times faster (about 50 fps) when using completely
> in-memory hash-tables.
>
> Based on profiling, it appears that the main bottleneck is persistent slot
> lookup. I remember reading that Elephant reads from file on every slot read,
> which could explain this result.
I can confirm this (symptoms and cause).
Luckily I have only one code path right now that is heavy
enough to be a performance problem, and I can work around it using
my own caching mechanism.
When your program is single-threaded then you might be able
to pull off something similar.
Search for "dynamic scope memoization" on comp.lang.lisp.
Leslie
More information about the elephant-devel
mailing list