[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Antw: LuaJava memoryLeak?
- From: "Thomas Praxl" <TPRAXL@...>
- Date: Wed, 24 Mar 2004 13:20:08 +0100
Well..
I searched the java-source of luajava for a hint and noticed that it lacks a method to close the luastate explicitely.
The only method that closes the luastate is "finalize".
Well.. as "finalize" is not guaranteed to be called when the java-garbage-collector runs, the memory is not guaranteed to be freed.
So I added a public method "close" to luaState.
Greetings and thanks for Lua and luajava,
Thomas Praxl
HESSISCHER RUNDFUNK
Multimedia; Forschung und Strategie
(hr-online)
Bertramstraße 8
60320 Frankfurt am Main
-----------------------------------------------------
E-Mail: tpraxl@hr-online.de
Telefon: (069) 155 - 3852
>>> TPRAXL@hr-online.de 03/24 11:38 >>>
Hello,
I m new to this list.
A few years ago I worked with Lua. For some time now I unsubscribed from the list, as I didn t need Lua anymore.
I m developing a converter for a tag-language related to BBCode and need to plug in scripts that define the behaviour of a tag.
For that reason I remembered Lua and embedded LuaJava from Thiago.
Now I noticed some kind of memory leak in my application on my local tomcat.
I guess that has something to do with not closing a luaState created with
LuaStateFactory.newLuaState().
I searched the API-Doc for a possibility to call lua_close from Java but the only thing I found was
LuaStateFactory.remove(int idx)
The API-Doc says "when a new state is created, it is pushed into a state list and it s index is returned". Well.. I can t find a possibility to get the index of a newly created state.
My code looks similar to this:
LuaState l = LuaStateFactory.newLuaState();
l.pushJavaFunction(new ObjectCreator(l));
l.pushJavaFunction(new URLInclude(l));
l.doFile(pathToScript+"/Tag_"+tagName.toLowerCase()+fileExt);
l.getGlobal("replace");
l.call(0,1);
String result = l.toString(-1);
LuaStateFactory.removeLuaState(0);
But calling this code for 1000 times leads to a memory leak between 20 and 40 MB.
Can anybody help?
Thanks in advance,
Thomas Praxl
HESSISCHER RUNDFUNK
Multimedia; Forschung und Strategie
(hr-online)
Bertramstraße 8
60320 Frankfurt am Main
-----------------------------------------------------
E-Mail: tpraxl@hr-online.de
Telefon: (069) 155 - 3852