The latest Java that I have checked in contains a few things to try to reduce memory usage.
1. All the RepRap geometry code now has a destroy() function that, when called, genocidally goes through it with fire and the sword not only deleting the thing that the function was called for, but also everything to which it links recursively. Not to put too fine a point on it, this function has to be called with care. But when called at the end of printing a layer none of which is needed any more, it should set all the geometry of that layer to point to null, which will allow the garbage collector to get rid of it. That's what I've done.
2. The code now calls System.gc() at the start of the cooling delay, which should give it a hint to get on with a tidy if it is about to need to.
3. You can turn the simulation window off completely by setting the preferences file variable DisplaySimulation false. There are some forums out there that imply that Java3D suffers the same problem that my geometry code did (before I added the destroy() functions...), namely that setting a pointer to a bit of it at the top to null doesn't kill off the tree below as there are so many internal pointers that the system can't tell if the graph is disjoint from the live stuff. The forums imply that this problem goes back to 1998...
Edited 1 time(s). Last edit at 03/18/2008 05:26PM by Adrian Bowyer.
best wishes
Adrian
[
reprap.org]
[
reprapltd.com]