連休を利用して、メガリスドライブがフリーズしたり、ホワイトアウトする件について、色々調べてみました。
以下。中間報告。
■会話記録の蓄積によるフリーズ
会話が一定量、記録されるとプログラムがフリーズします。(以降、この記録を「会話記録」と呼称します)
会話記録の総量は本文の長さ・顔アイコンの有無が影響します。
例えば、今回の試験環境の場合、100byteの本文は949行でフリーズしましたが、
150byteの本文は899回、200byteの本文は849回でフリーズしました。
●顔アイコン
顔アイコンを使用すると会話記録はより多く記録されます。
但し、アイコンのファイルサイズの大小は影響しません。
(おそらく、会話記録に記録されるのは画像のURL名のみなのではないかと。)
また、アイコンの種類数も影響していないように見えます。(確信はありませんが、影響する結果は得られていません。)
但し、アイコンの種類数については画像キャッシュの問題がありますので幾らでも画像が使えるというわけでは無いようです。(これについては後述します)
■ハンドル名が長すぎることによるエラー
長いハンドル名を使用した場合、会話記録の量が増えてフリーズが早まるということは無いように見えます。
ハンドル名について1?7byteの範囲で調査しましたが、著しい変化は見受けられませんでした。
ですが、ハンドル名82byte、本文200byteで試験した場合について、791行目以降の表示が異常になることを確認しています。(本文が表示されない、区切り線が表示されない等)
但し、他件のようなフリーズではないので、これはこれで別個の問題であるように思います。
■アイコンの読み込みエラー
アイコンが読み込まれない件については次の2種類を確認しています。
○アイコンの数が多すぎる
メガリスドライブが読み込んだアイコンの数が一定量を超えるとアイコンが表示されなくなります。
この場合の量はファイルサイズの大小が影響するように見えます。
概ね4kbのアイコンの場合、30個程度で読み込み不可となりました。
どの量でエラーになるか、1キャラ毎に上限があるのか、ログイン・ログアウトを繰り返した場合はどうなのか、について現在調査しています。
○アイコンの読み込みに失敗した
自分以外のプレイヤーのアイコンをトミーウォーカーのサーバからダウンロードする際、何らかの理由でデータが破損することがあります。
この場合、メガリスドライブは破損したデータをキャッシュしてしまうため、部屋を出て再接続しない限り、そのアイコンは表示されません。
■総括すると
要するに、人数の多いチャットで頻繁に会話を行ったり、多量の顔アイコンを使用すると異常動作の可能性が上がります。
対応策としては、メガリスドライブは定期的に再起動しましょう。という辺りでしょうか。
暇を見て、もう少し調べてみます。