While working on a "
My Succubus" prototype I recently noticed something with GuideMe which got me a bit worried.
I'm using an internal test build for GuideMe (v0.3.5) while writing this prototype, but the problem also applies (to a lesser degree) to the current released official GuideMe (v0.3.4). According to the task manager the Java process very quickly uses insanely huge amounts of memory, when playing a tease with GuideMe. The allocated memory steadily grows larger over time slowing performance down, even growing slowly when doing nothing in the tease. I only tested this with my javascript heavy teases (Hearts Club, Pilgrim Quest, My Succubus prototype). Not sure how GuideMe behaves with plain teases without any javascript functionality in it.
The java process always quickly crosses 1 GB Memory usage after only a few minutes (and keeps growing). Now my old teases have huge random media folders, but my current prototype for "My Succubus" only has around a dozen (placeholder) pictures and the whole tease folder for the prototype only contains 49 MB at all. And still... loading this script and the memory usage explodes. Last time with it even crossed 2.5 GB Memory usage while I was testing. There was no denying that this memory usage costs a visible amount of performance and slows everything in the tease down.
Do we have possible memory leaks in GuideMe? Does the java garbage collection (and the release of memory) doesn't work as intended with GuideMe? What other things could cause this? Do i have to do something to allow Java to release memory after a function is closed. My programming skills might be not good, but I'm pretty sure, there they are not that bad. I should have no insane inefficient or endless / recursive functions in my scripts which could explain this extreme and continuously growing memory usage in GuideMe. My prototype more heavily (than my older scripts) uses "file handling" (saving and loading data from and into txt or config files), but the individual "saves" are only a few bytes large. So nothing which explains this behaviour to me.
Somebody any ideas?