Luaを使っていてメモリがどんどん食われていく件に関して

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Suikaba
記事: 194
登録日時: 9年前

Luaを使っていてメモリがどんどん食われていく件に関して

#1

投稿記事 by Suikaba » 7年前

現在Luabindを使用してC++と連携していますが、
メモリの使用状況を見ている限りどうやらどんどん食っているように思えます。
とりあえずサンプルを提示いたします。

コード:

void Draw()
{
    const luabind::object title_ui = luabind::call_function<luabind::object>( l, "GetTitleUI" ); // lはlua_State*
}

コード:

function GetTitleUI()
	local ui = Title()
	return ui
end

class 'Title'
	function Title:__init()
	end
Drawごとにluabind::call_function<luabind::object>( l, "GetTitleUI" );を呼びださないで、初期化時に保存しておくようにするとこの症状は治ります。が、どうして毎回呼び出すとメモリがどんどん食われるのでしょうか。luabind::objectが破棄されるタイミングでメモリからも綺麗サッパリ解放してくれるものだと思っていたので、すこし戸惑っております。よろしくお願いします。
こちらでもluabindのソースを追って確認してみます。

開発環境
Windows 7 64bit
Microsoft Visual Studio 2012 pro ( Debug/Releaseともに同様の症状 )
Lua 5.2 / luabind( Lua5.2でも動くようにすこし改造したもの )

Suikaba
記事: 194
登録日時: 9年前

Re: Luaを使っていてメモリがどんどん食われていく件に関して

#2

投稿記事 by Suikaba » 7年前

自己解決しました。
どうやら、LuaのGCがうまいこと動いてないみたいで、手動で呼び出したら治りました。

閉鎖

“C言語何でも質問掲示板” へ戻る