今天我在XE7的IDE下调试我自己的LUA的时候发现个有意思的事情
我在LUA里调用一个DELPHI里绑定的函数 这个函数的原形如下
function lua_ShowMessage(l : PLua_State) : integer; cdecl;var n, i : Integer; msg : AnsiString;begin result := 0; n := lua_gettop(l); if n > 0 then begin msg := ''; for i := 1 to n do msg := msg + lua_tostring(L, i); ShowMessage(string(msg)); end;end;
然后经常多次调用后 内存每次调用都以40多K的速度往上涨,停下来一会后 内存慢慢恢复,关键是内存能恢复到一定的程度,但永远无法恢复到调用之前的状态,所以给我的感觉就像内存泄露,具体是不是泄露也得找个时间用FASMM4试试。
一开始不明白为什么会内存变化这么大,后来尝试将
ShowMessage 换成了MessageBoxA后,再去调用的时候发现内存无任何变化,所以最终我选择了这个函数。