(選択的に) 無視できるようにしたい lua コードのチャンクがあります。読み込まないという選択肢はなく、処理したい場合もあれば、処理したくない場合もあるため、コメントアウトすることはできません (つまり、大量のコードブロックがあり、どれも読まないか、すべてを読むかを選択できます)。私はこれを実装する 2 つの方法を思いつきました (もっとあるかもしれません - 私は非常に初心者です): コードを関数に囲んでから呼び出すか、関数を呼び出さないか (そして、私が関数を呼び出すポイントを通過した場合はnil
、メモリを解放するように設定できます) またはコードをif ... end
ブロック。前者には、これらのブロックがいくつかあるという点でわずかな利点があり、前者の方法を使用すると、メインプログラムが要求しなくても、あるブロックが別のブロックを簡単にロードできますが、後者の方が効率的です。しかし、あまり詳しくないので、効率の節約に見合う価値があるかどうかはわかりません。
では、どれだけ効率的か:
if false then
-- a few hundred lines
end
よりも
throwaway = function ()
-- a few hundred lines
end
throwaway = nil -- to ensure that both methods leave me in the same state after garbage collection
?
lua の実装に大きく依存している場合、違いを確実に見つけるには「数百行」の大きさが必要であり、最適なテストを行うにはどのようなものを含める必要がありますか (ブロックの主な用途は、おそらく有用な機能の負荷)?