2020-03-17現在、ロード時のメモリの使用量を抑えるため、軽量化に奮闘中です。
現在取り組んでいる軽量化には2種類あって、一つはメモリの使用を下げること。
もう一つは、ロード後人の居るところに行ったときに画像の読み込みを整理して、処理落ちをなくすことです。
処理落ちをなくすほうは、画像を順番に読み込んだり、同時に処理する数を減らしたりで今現在その仕様になっています。まだ多少最初カクカクしますが、これも後日の調節でスムーズに読み込めるようにするつもりです。
いま一番問題なのはメモリの消費量です。例えばキャラが1人で2GBで、5人で3GBにふえたとかだと、今後の家具入れと人が増えたときに心配です。
ロード直後はメモリの使用量が多いのに、ログイン後しばらくすると使用メモリがどのブラウザでも下がる傾向にあるということは、ログイン時に不必要なメモリの確保がされ、解放されるまでが遅いのだと思います。 (その点Firefoxは早かった)
メモリは、ブラウザとパソコンの性能でも大きく下がります。特に、ノートパソコンなど、ゲーム用のグラフィックチップを載せていないパソコンだと、その分通常のメモリに上乗せされて数値が出てきます。
その上で、ブラウザごとにメモリの確保や解放にかなりの差が出ることがわかったのでココで書いてみます。(コンパイル待ちだしw)
デスクトップ環境(ゲーム用グラボRadeon RX570いり)
--------------------------------------------------
クローム
起動直後なんのページも開いていない時のメモリ:600MBくらい
ページを開いた直後からログイン画面に行くまで:ガンガン上がっていって2.8-3.2GB
ゲームに入ってからすぐ:2.8GB
しばらく放置したあと:1.8GB
オペラ
起動直後:200-210MB
gridrooms.onlineを開いてからログイン画面に行くまで:メモリ最大値は1.9GB,ログイン画面表示後900-1.2GBで安定
ゲームに入ってからすぐ:1.0-1.2GB
しばらく放置したあと: 480-550MB
起動直後: 200MB
gridrooms.onlineを開いてからログイン画面に行くまで:最大値1.4GB, 画面表示後850MB
ゲームに入ってすぐ:850MB(ログイン画面と変わらず)
しばらく放置したあと:290MB (スゴイ!)
--------------------------------------------------
ノートパソコン(5,6年前のパナソニック レッツノート MX3) SSD 256GB, 8GB RAM)
--------------------------------------------------
クローム
起動直後: 550MB
ログイン画面に行くまで:最大値3.4GB, 画面表示後: 3GB
ログイン後すぐ:3.2GB, 4-5分後: 2.3GB
しばらく放置した後: 2.1GB
オペラ
起動直後: 270MB→しばらく放置→210MB
ログイン画面に行くまで:最大値3.4GB, 画面表示後: 2.5GB
ログイン後すぐ:2.8GB, 4-5分後: 1.8GB
しばらく放置した後: 後で計測予定(500mbまで落ちたこともある)
起動直後: 250MB
ログイン画面に行くまで:最大値1.8GB, 画面表示後: 1.3GB
ログイン後すぐ:直後1450MB, 4,5分後: 1.3GB
しばらく放置した後: 20分後1.3GBのままでした。多分長時間放置でもっと下がる
--------------------------------------------------
とりあえず3つの有名なブラウザを確認したところ、上記のような状況になりました。
びっくりしたのがFirefoxです。
Firefoxと言えば、数年前は一番重くて使う気にならなかった気がしてたんですが、去年か一昨年?にQuantamという「速度重視」の大型アップデートがあったそうで。
今はFirefox = 重いという考えはもう古く、逆に今あるブラウザの中でも一番体感も軽くて早いんじゃないでしょうか?
クロームが、軽い・早い、から重い・いっぱい裏で動いてる。になってきて敬遠しがちになってきたので、これを気にFirefoxに乗り換えるのもありかもしれません。
メモリの利用に関して言えば、ノートパソコン時もFirefoxではちゃんとある程度までの利用に抑えてくれていて、おそらく他のブラウザよりもメモリの解放チェックが頻繁に行われているんでしょうか?一瞬上がっても瞬時にガクガク下げてくれます。
比べてクロームはメモリの解放なんて知らねーよいっぱい積んどけって感じですかね。
オペラもクロームに比べると軽いんですが、メモリ解放はそこまで確実ではないようです。それと起動時にもFirefoxほど確認せず一気にメモリ領域の確保を行ってしまって、結果としてノートパソコンの方では3.2GBまで膨れ上がっています。(おそらく一瞬確保してもその後未使用)
デスクトップPCから使うとクロームに比べてだいぶ軽いので、ある程度以上の性能のPCのならオペラをおすすめしても良いんですが、ここまでFirefoxがPCやラップトップなど問わず軽くなったのであれば、一律Firefoxをプッシュしておいて良さそうですね。
もちろん、グリッドルームとしてはどんなブラウザから入ってきてもプレイできるように対応したいです。
なので軽量化、さっさとさっさと軽量化!
もっと分解して、どうやって他のブラウザでもメモリ解放すれば良いのか究明するとします。ただ、このログイン画面を読み込む前にUnityのファイル展開する段階でそこまで領域確保しちゃうので、ほんとどうすればいいんでしょうね。
ブラウザによってあまりに利用メモリが違いすぎる><
どなたかご存知の方がいらっしゃったら、コメ欄かツイッター@HiroakiRまでぜひ一言よろしくお願い致します。
さて、ビルド確認してこよーっと