exch-bms2 / beatoraja

Cross-platform rhythm game based on Java and libGDX.
GNU General Public License v3.0
627 stars 146 forks source link

Improved LuaClosure execution costs #750

Closed Getaji closed 11 months ago

Getaji commented 1 year ago

related #734

luajの LuaClosure が実行される際に毎回生成される LuaValue[] 型のスタック配列がメモリをかなり消費していたので、インスタンスにキャッシュを保持するようにしたカスタムビルドを作成しました。具体的な変更内容は暫定的にこちらで管理しています: https://github.com/Getaji/luaj/pull/1

今のところ問題なく動作していますが、luajの動作に深く関わる変更なのでもうしばらくテストを継続するためにDraftにしておきます。

Getaji commented 1 year ago

再帰呼び出しが正常に実行できなかった問題を修正しました。 スタックのキャッシュは関数の実行後に Stack<LuaValue[]> へ格納し管理するように変更しました。