うぃまの旅日誌

公開

Android端末の調査報告1 【キャラストのメモリ消費】【キャッシュ競合】


こんばんは、うぃまです。
数ヶ月前から発生していた「Android14でキャラストにログインできなくなる不具合」について私なりに調査し、考察とそれに対する提案をまとめました。ただ、私はAndroid端末を所持していない関係で検証結果は得られていません。
情報に不備はあるかもしれませんが、旅日誌の方々と相談した上でこの度投稿することに決めました。




⚠️注意喚起⚠️
・私見を多く含んだ内容になっています。そういった考え方もあるんだなぐらいに読んでいただけると幸いです。
・Androidユーザーさんにとってショッキングな内容が書かれていると思われます。閲覧する際はご注意ください。
・考察を通してたくさんのURLが貼られていますが、不審なサイトに誘導するものではないのでご安心ください。
・Apple製スマホ・タブレット=スマホ 、 Android製スマホ・タブレット=Androidスマホ 、 メインメモリ(RAM)=メモリ といった記載をしています。


【導入】
まず、本題に入る前にこちらをご覧ください。私が確認したものに限りますが、Android14で不具合が発生している(or発生していた?)スマホゲームです。

・キャラバンストーリーズ →「ログインできない、起動しない」
・LINE:ガ○ダムウォーズ → 「ログインできない、起動しない」
・二○国:Cross Worlds →「ログインできない、フリーズする」
・LINE:デ○ズニー ツ○ツム →「ゲーム終了後フリーズする」
・ド○ゴンクエストウォーク →「アプリが落ちる、強制終了する」
・F○BE幻影戦争 →「アプリが落ちる」


動画投稿サイトを観てみましたが、これらのゲームに共通する点は、"ダメージ数値"や"戦闘中のエフェクト"が高速で表示されているということだと思いました。
言い換えると、計算処理を行うCPUや、画像処理を行うGPUをたくさん使用しているため、処理が重くメモリ容量を圧迫しがちなのかなと思います。
(※CPUの場合、メインメモリ[RAM]を消費し、GPUの場合、グラボメモリ[VRAM]を消費します。)

また、Android14で不具合が起きているスマホゲームは"対人要素"や"ランキング"があり、絶えず他のユーザーさんの情報を読み込んでいる印象でした。先程の一覧に付け足すとこのようになります。(対人要素には他のユーザーさんの情報を流用してCOMと対戦するコンテンツも含めました。)

………………………………
・キャラバンストーリーズ

対人要素:デュエル、コロシアム、勢力戦、アリーナ、エニグマ、討滅、レイド など

ランキング:[同上]、試練、鷲獅子、キャラBP、釣り など

………………………………
・LINE:ガ○ダムウォーズ

対人要素:アリーナ、レイドイベント

ランキング:アリーナ、レイドイベント、ランキングイベント

………………………………
・二○国:Cross Worlds

対人要素:キングダム防衛戦、キングダム侵攻戦、遺物の戦場、キングダムダンジョン、イマージェン決闘場、次元の境界、フィールドボス、ワールドボス など

ランキング:[同上]※遺物の戦場、次元の境界を除く?
 
………………………………
・LINE:デ○ズニー ツ○ツム

対人要素:広場イベント

ランキング:広場イベント、週間ランキング、スコアチャレンジ

………………………………
・ド○ゴンクエストウォーク

対人要素:各種地図、メガモンスター討伐、ギガモンスター討伐 など

ランキング:メガモンスター討伐、ギガモンスター討伐


※GPSを活用するゲームのため、その土地や建物の情報もたくさん読み込んでいます。

………………………………
・F○BE幻影戦争

対人要素:クラスマッチ、アリーナ、ギルドバトル

ランキング:[同上]

………………………………

逆に、崩○:ス○ーレイルや原○など、使用されるメモリ容量に対してあまり不具合が起きていないスマホゲームもありました。
調べたところ、崩○:ス○ーレイルは約6GB、原○は約4GBのメモリを使用しているようですが、基本ソロプレイのため他のユーザーさんの情報を読み込む必要はありません。あるとすれば、フレンド機能によるものです。(原○は最大4人のマルチプレイは可能みたいです。)
これらのスマホゲームは、内部データの処理自体は意外と軽いのかもしれないです。
※参考にしたサイト
・スマホのメモリ容量はどれくらい必要?快適に動作する目安を紹介
https://www.nicosuma.com/magazine/memory-requirement


もしかすると、キャラストはゲーム画面上の重いデータ処理に加え、他のユーザーさんの情報をたくさん読み込んでいたために、計算処理を行うCPUに負荷を掛け過ぎていたのかもしれません。
その結果、メインメモリ(RAM)の消費もかなり大きくなり、処理落ちが発生しやすい環境になっていたのではないかと感じました。(勢力戦やアリーナで落ちやすかったのは、そのような理由かなと私は考えています。)


過去の旅日誌でも見受けられましたが、実際デュエルなどのコンテンツを開く度に、他のユーザーさんの情報を読み込みメモリを消費しているようです。
※参考にさせていただいた方のURLはこちらです↓。


それと、"ゲーム画面上の重いデータ処理"というのは、オブジェクト(ゲーム画面上の3Dグラフィックや文字などの総称です。)の数にも依存していると思います。


例として、イベントマップにあった「バレン谷」や「ホワイ島」で落ちやすかったのも、敵ビーストだけでなく、キャラストのメインキャラクターたちが大人数配置されていたことで処理が重かったからではないかと感じました。また、キャラごとに会話テキストがたくさん用意されていたため、それも処理の重さに繋がっていたのかもしれません。


一方で、自由都市ネロに一度ワープした後、ネロ内の施設にワープするとローディング画面のロードがすぐに終わります。(他のマップでも同じです。)既にマップ全体の読み込みが完了していれば、残り僅かなデータの読み込みで済み、処理が軽いのだと思います。




……○……○……○……○……
【本題】
こちらも、過去の旅日誌の書き込みから一部引用させていただきますが、元々「スマホは画面が滑らかだけれど、ゲームが落ちやすい」、「Androidスマホは画面がカクつくけれど、ゲームが落ちづらい」とのことでした。この文章に私が以前立てた仮説を当てはめると、以下のようになりました。

スマホは画面が滑らかだけれど、ゲームが落ちやすい
    ↓
「スマホはデータの読み込みが速く、CPUが不足しやすい」

Androidスマホは画面がカクつくけれど、ゲームが落ちづらい
    ↓
「Androidスマホはデータの読み込みに時間が掛かり、CPUには余裕がある」

改めてまとめてみると、何か違和感があるな…と感じました。データの読み込みに時間が掛かるほど、CPUの使用率が上がり、CPUが不足するのが本来の流れのような気がします…。
スマホの方は、フレームレートの影響でデータ量が多くなりCPUがたくさん使用されていると考えると、一応辻褄は合っているのかな…と思いました。(※フレームレートに関しては、以前考察しました。)


ただ、Androidスマホの方は、データの読み込みに時間が掛かっているにも関わらず、なぜかCPUに余裕があります。





Androidスマホの性能について調べてみたところ、気になる部分がありました。それが「CPUのコア数」です。
(主に携帯電話の方ですが、)最近はスマホが約6コア、Androidスマホが約8コアを搭載していることが多いみたいです。
※参考にしたサイト
・スマートフォン(スマホ)のCPU性能比較表【2024年最新版】
https://pcfreebook.com/article/smartfone-cpu-list.html

CPUのコア数が増えると「キャッシュ競合」という問題が起きやすくなるそうです。
キャッシュ競合は、CPU内部にあるキャッシュメモリを複数のコアが奪い合うことで発生します。そうなると、一部のコアは「キャッシュメモリにデータが無い!」と誤って判断をしてしまい、データの処理に時間が掛かるメインメモリ(RAM)から直接データを引っ張ろうとします。これを「キャッシュミス」というそうです。


この現象が影響して、CPUに余裕があっても、データの処理速度が低下している可能性があるかもしれないと私は考えました。
キャッシュ競合について分かりやすく、ゆっくり解説されている動画がありましたので、URLを貼ります↓。
・【ゆっくり解説】CPUのコア数が増えても処理が速くならない?マルチコアCPU対応の課題
https://www.youtube.com/watch?v=iB3_rUUZTlo





ここまで、CPUのコア数について書きましたが、私が使用しているApple製タブレットも8コアのため、上記の内容通りだとキャッシュ競合が起きているはずです。
ただ、データの処理に時間が掛かっている様子はみられないので、Androidスマホ特有の機能に問題はないか調べました。



( 続きは明日に投稿します )




うぃま

コメント