IMAGINEクライアント性能劣化と対策のまとめ

IMAGINEのクライアントはImagineUpdateとImagineClientがあるわけですが、ちょこっといじってていろいろ気づいたとこがあったので、まとめておきます。

ImagineUpdate

アップデートとかで使うプログラムですね。インストール時のアイコンクリックすると起動するのがこれ。
現在バージョンは1.18。

  • サーバからファイルリストを取ってくる
  • ローカルにあるファイルとリストを比較(チェックサムかダイジェストで正しいかどうかもチェックしてるっぽい)
  • 足りないのはサーバからダウンロードする


おおまかにこんなことをやってるようですが…
なんと、不要なファイルを削除する機能がないみたい。
IMAGINEのフォルダには合計3.6GBほどのファイルがあるんですが、ファイルアクセス日時を調べてみると、2011年に入ってからアクセスしたのは300MB程度。残りの3.3GBは使ってない…もちろん、アルティメットバトルはじめ、やってないことはいっぱいあります。
けどけど、ファイルを見ると、三周年記念イベント関係のものがあります。IMAGINEはついこの間、四周年を迎えたわけで…いつか使うことあると思います? あたしはないと思う。

ちなみに先週再インストールしたPCにも2010年のイベントやガチャのファイルが入ってます。
使いもしないものを、わざわざダウンロードして入れてる……商業ソフトとしてどうなんだ。

なお、session.log というファイルにアップデート処理のログがあります。
たいした内容ありませんけどね。

ImagineClient他

こちらがメインのクライアントソフト。頻繁にアップデートされますね。

フォルダいっぱいあって、グラフィックや操作コマンドなんかがあるっぽい。

ログ

ImagineClient.log にエラーなんかのログを書いてるっぽい。
運営さんに報告しても、ログを求められたことはないです。つまり、たいした内容ないのかも。
でも、フォース落ちとかだと、なんかの情報あると思うんだけどな。

オプション設定

テキストファイルのオプションの設定内容がありました。

  • InsideOption.txt
  • OutsideOption.txt
  • KeyConfigOption.txt

Outsideってのは解像度の設定とか、ImagineUpdateで設定する内容。クライアントの外って意味ですかね。
Insideはゲーム内で設定できるグラフィック(3Dの詳細)や、サウンドが記載されています。
最後にKeyConfigは名前どおり、キー割り当て。
隠しオプションでもないかなーと思ったけど、たいしたものはありませんね。

各種フォルダ

フォルダから下の容量は、Event、Avatar、Soundが多いんだけど、ファイル数からするとInterfaceがダントツ。全体の90%以上はInterfaceです。

これで思うのは、とにかく細かいファイルが多い。
ここへのアクセスを速くしたら、クライアントが軽くなるんじゃないですかね。
号令バグなんかはインターフェースのバグだから、ここで処理落ちしてるんじゃないかな…

IMAGINE高速化

アップデートするたびに重くなるImagineクライアント。
もう自分のPCじゃ十分な性能得られないんじゃないかと思ってました。
推奨スペックは満たしてるけど、クライアントが重くなったから……と。

でも先週、アンインストールして再インストールしたら、劇的に速くなりました。
3Dのオプション、ほとんど最低に落としても重かったのが、全て最大にしても動きます。

上記のファイル構成をチェックしたのも、このあたりを追求するため。

結論からいうとアップデートすると遅くなるのは、IMAGINEクライアントが大量の小さいファイルを読み込むように最適化されていないからと推測。
ユーザが手作業でなんとかしてやる必要があります。

一番いいのは再インストール。サポートはこれやれって言うでしょう。
でもあたしが先週やったとき、2時間以上かかりました。
頻繁にできるもんじゃないです。
次善の策として、推測が正しければ、クライアントのコピーでも速くなるはず。
こちらを試してみました。

  1. デフラグ
  2. インストールトップのIMAGINEフォルダ*1以下を同じ階層のフォルダに全部コピー
  3. インストールトップのIMAGINEフォルダをIMAGINE_OLDなど適当なフォルダに名前変更
  4. コピー先のフォルダをIMAGINEに名前変更

これで速くなりました。
以前再インストールしたPCほど遅くなってなかったので、あまり差は出てませんが…。
バベルや第三を1周するのに5秒速くなったくらい。

以下、速くなる理由。


○断片化(フラグメンテーション
大きなファイルがディスクのあちこちに分かれているのを、断片化してるといいますです。
ディスク内のファイルで断片化が多いとき、ディスクが断片化してると呼びます。

デフラグ
デフラグは、断片化を解消するための処理で、実行するとファイル断片が1箇所にまとめられます。
こうしておくとファイルにアクセスするとき、ディスクの上をいったりきたりせずに連続で読み出すことができます。
結果としてアクセスが速くなります。

○小さなファイルが分散したIMAGINE
ところがIMAGINEのように小さいファイルが大量にあると、デフラグがあまり効きません。
小さいファイルがディスク上のあちこちにある状態でデフラグしても、個々のファイルは分割されてませんから移動しませんね。
IMAGINEクライアントは小さなファイルをいくつも読もうとして、ディスクの上をいったりきたり…そして遅くなる。
ファイル単位では断片化してないけど、IMAGINEのソフト全体では断片化しているという状態。

○アップデートで加速する断片化
アップデートでは既にあるファイルのサイズが変わったりしますが、追加ファイルもけっこうあります。
先に書いたように不要でも削除しないので、ディスクの領域は再利用されず、追加ファイルは空いてるところに入ります。
毎週アップデートするたびに、これが繰り返されます。IMAGINE以外に使ってるファイルがあれば、追加ファイルは前回の追加ファイルとも離れたところに入ります。
どんどん断片化が進み、デフラグでは治らないのです。

○コピーによる断片化の解消
デフラグした後でコピーしてやると、コピー先はすべてディスクの近いところになります。
これで速くなるわけ。


なお、コピー先のフォルダから起動が確認できたら、古いフォルダ(IMAGINE_OLD)は消してかまいません。
コピー先を同じフォルダ名に合わせてるので、アンインストーラでもちゃんと認識してくれます。
削除したら、次のアップデートはそこに入る…はず。他のソフトが3GBとか使わなければ。

1ヶ月に1回くらい、このコピーでIMAGINEクライアントを1箇所にまとめれば、あまり断片化が原因で遅くなることはないでしょう……たぶん。

*1:デフォルトだと真・女神転生IMAGINEになってるかも