exch-bms2 / beatoraja

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

Memory leak on some music select skin #529

Closed ich59669 closed 4 years ago

ich59669 commented 4 years ago

選曲画面中に際限なく使用メモリが増加します。 m-selectスキン、ModernChicスキンの両方で発生します。ModernChicのほうはビットマップフォントをOFFにしています。 defaultスキンでは発生しません。

本体version beatoraja 0.7.7 , 0.7.7a

動作環境 CPU: Ryzen 7 3700X GPU: GTX 960 Memory: 16GB OS: Windows10 pro JAVA: JDK14.0.1 ,OpenJFX 使用スキン: m-select (https://drive.google.com/drive/u/0/folders/1ugqMTKVnSIlYY8VT8F615DzbvqNfJDak), ModernChic (https://www.kasacontent.com/musicgame/beatoraja/4119/) オーディオインターフェース: PortAudio (ASIO4ALL), PortAudio (Realtek HD Audio)

状況 1回目: beatorajaの他に起動しているアプリケーションはGoogle Chromeくらい(バックグラウンドでDiscordとかも動いています) 45分程度でコンソール画面にOutOfMemoryエラーが表示され応答不能

2回目: OBSでwebカメラと一緒に配信中 30分程度でOSが応答しなくなり、ディスプレイの接続やブラウザの動作、OBSなども停止した。 コンソール画面は確認不可能だった。

skinproperties.txt

ich59669 commented 4 years ago

追記 選曲画面で、フォルダバーまたはRANDOM SELECTバーにカーソルが合っているとメモリが増えていきます。 曲バーにカーソルが合うと増加が止まります。 コンフィグウィンドウ->選曲内のチェックボックスを全てOFFにしても同様に発生します。

起動してからのメモリ使用量を動画にしてアップしました。 https://youtu.be/lpmscxZYQas

kasakon555 commented 4 years ago

ModernChicの場合の原因が分かりましたので書き込みます。 フォルダバーなどでメモリが増え続けてしまうのはスキン側でノートグラフとBPMグラフを常に表示するようにしていたことが原因だと分かりました。 op = {2}のように曲バーのときのみ表示するなどによってメモリ増加を防ぐことが出来ます。 画像は計測開始時と10分後のメモリ量です。

本体:beatoraja 0.7.7

動作環境 CPU: Core i7 X 980 GPU: GTX 660 Memory: 12GB OS: Windows10 Pro JAVA: 1.8.0_151 使用スキン:ModernChic

10start 11end

kasakon555 commented 4 years ago

上の件を修正したModernChicを置きましたのでテストにどうぞ。(modernchic1.2.1) https://mega.nz/#F!bXpH2YzB!ARjgjgIEkvgMDCIMVM5vSQ

Shimi9999 commented 4 years ago

メモリ使用量を際限無く増加させる手順を1つ見つけたので報告します。 本体は0.7.7、使用スキンはSELECTがm-select、DECIDEがdefaultです。

  1. 選曲画面で任意の曲を選曲する(オートプレイでも可)
  2. DECIDE画面でESCキーを押し、選曲画面に戻る
  3. 1~2を繰り返す

手順を10回ほど繰り返すと、以降1回毎にメモリ使用量が0.1~0.2GBほど増加していきます。 再現動画: https://youtu.be/6yihTrQuqsA

ただし、この現象はm-selectスキンのm+distance/m+1mn_distance.fntフォントとm+distance/m+1c_distance.fntフォントを使用している箇所をコメントアウトしたら発生しなくなりました。

また、#524 のビットマップフォントの改善により、 3fd711be026a879c9217049073f78b6871cdedb6 以後~最新masterのビルドでは現象が発生しなくなっていました。

ich59669 commented 4 years ago

modernchic1.2.1で当現象が発生しないことを確認しました。ありがとうございます。 m-selectでも同じ手法で試してみます。

ich59669 commented 4 years ago

m-selectスキンでも bpmgraphのdestinationに条件op = {2, 5}を加えることで発生しなくなりました。

ich59669 commented 4 years ago

46594b18fca77702614d59b82165b44a983093fc で修正されましたのでcloseします。