私はLuaJITで作業しており、次のようにすべてのライブラリと「foo」内に保存されているものを持っています:
foo = {}; -- The only global variable
foo.print = {};
foo.print.say = function(msg) print(msg) end;
foo.print.say("test")
今、私は、メタテーブルを使用し、すべてのライブラリをローカルに保持することはまったく役に立ちますか? または、それは問題ではありません。私が考えたのはこれです:
foo = {};
local libraries = {};
setmetatable(foo, {
__index = function(t, key)
return libraries[key];
end
});
-- A function to create a new library.
function foo.NewLibrary(name)
libraries[name] = {};
return libraries[name];
end;
local printLib = foo.NewLibrary("print");
printLib.say = function(msg) print(msg) end;
-- Other file:
foo.print.say("test")
現在、これをベンチマークするツールは実際にはありませんが、ライブラリの実際のコンテンツをローカルテーブルに保持すると、パフォーマンスがまったく向上しますか? 少しでも?
基本的に私が知りたいのは、次のことだけです。パフォーマンスに関しては、2番目の方法の方が優れていますか?
誰かがLuaでグローバル変数がどのように処理されるかについてリンク/詳細な説明を与えることができれば、これを説明することができればそれも素晴らしいでしょう.