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 StringProperty search performance #749

Closed Getaji closed 1 year ago

Getaji commented 1 year ago

StringPropertyFactory.getStringProperty(...) メソッドのパフォーマンス(実行速度とメモリ消費)を改善しました。

このメソッド内では、プロパティを検索するために StringType.values() を呼び出しています。しかし、列挙型の values() メソッドは、列挙型の不変性を保つために毎回新しい配列が生成(コピー)されています。getStringProperty(...) は毎フレーム複数回呼び出されるため、かなりのメモリを消費していました。そこで values() をキャッシュして変更不可能化することでこの問題の改善を試みました。