名前なし
2022/08/17 (水) 03:14:45
3cc04@0c6b7
暫定ですがPCで画質の設定を重くするとマップのロードに時間がかかる理由が判明しました
結論から言いますとこの問題はCPUのシングルスレッド性能が大きく関わってきます。
タスクマネージャーを観察してるとこのゲームは2コアしか使ってないことが分かります。そしてマップのロード中はその内1コアにかかる負荷が特に大きくなる事が観測されました。
メニーコアに対応してないゲームではよく見られた現象なのに何で気づかなかったんでしょうね…
通報 ...
確か2年前くらいにハイパースレッディングに対応したとかアナウンスしてた記憶があるが、本家だったかもしれないけど。なんか、古典的だね
ios泥との比較はできるのか?タスクマネージャー相当の操作があるのかわからんが。あとpcでAndroid動かした時の挙動がどうなるかだな
木です
こちらの環境だとゲーム中は2コア(C)4スレッド(T)までなら使ってくれます。ただマップロード時は負荷が均等にはならず特定のスレッドに負荷が偏る傾向にあります。参考画像
この結果から例え古いPCのGPUだけを交換してグラフィックの設定を引き上げたとしてもCPUの性能が足らないとロードが間に合わなくなり試合開始に出遅れると予想されます。
今後画質を最高にしたいならGPUだけでなくCPUも4C4T以上のシングルスレッド性能が高いCPUを積んだ方が良さそうです。
目安としてはIntel第8世代Core iシリーズやAMDZen2以降ならまず大丈夫だと思います。自信はありませんがIntel第6世代でもi5以上なら恐らくいけると思います。
>> 100iOSは基本ユーザーに中身を触らせないので困難です。Androidエミュは操作が面倒そうですね、また気が向いたらやってみます。
忘れたました。こちらの環境はWQHDなのでFHD環境なら負荷も小さくなるのでCPUへの負荷も少なくなるかもしれません
iOS等との比較ではないということで…結局RAMの読み書き速度とかのより単純な問題な気がするけどなぁ。というか参考画像のGPU情報がないのは何故?
木の結果を参考に、もう少し細かく分析してみました。
タスクマネージャにてwotblitz.exeの使用スレッド(コア)を1~6コアに制限し、リソースモニターにてトレーニングルームにおけるマップのロード~戦闘開始におけるCPU使用率を監視。使用するコアは他のソフトウェアと干渉の少ない後半部分を用いました。添付の画像ではグラフ中央部分をマップ読み込み開始(「戦闘開始」ボタンを押したタイミング)に合わせています。
なお実験環境はCPU:Ryzen9-3900XT(12C24T)、RAM:DDR4-3200 32GB、SSD:Pcie3.0、GPU:RTX2070、Steam版Blitz、画質設定:すべて最高(影など含む)です。
実験結果
1コアの結果はさておき、各コアの実験結果から確かにマップを読み込む際に特定のコアに負担がかかっている様子が確認できるほか、他のコアも最も負荷の高いコアに対して概ね50%程度は処理を行っているようです。また4コア以上の場合であっても、利用可能なコア数に応じて処理を分散している様子が確認できました(コア数上限は確認していません)。
さて、マップの読み込み時間についてですが、同じ条件で通常戦のマップ読み込み時間を比較しました。
・1コア:カウントダウン3秒前でロード
・2コア~6コア:カウントダウン7秒前(戦闘準備中)でロード
以上の通り、2コア~6コアの場合はいずれもほぼ同じ時間で読み込むことができました。一方でコア数が少ない(2コア以下)場合、戦闘中のFPSが極端に低下する現象が起こったため、コア数はマップの読み込みよりも戦闘中の処理に大きな影響を及ぼすようです(当たり前ですが...)。
ここまでの結果を踏まえると、十分なシングルコア、マルチコア性能があればマップの読み込み時間は時間を要さないように思えます。しかし、私も経験がありますが、十分な環境であってもマップの読み込みに時間がかかることがあるようなので、シングルコア性能以外にも要因がありそうです。
Ryzenだから当たり前っちゃ当たり前なような
一人での検証は大変だったので助かります。余程特殊な事情がない限り2C2Tを下回るCPUはないだろからマルチスレッド性能に関してはあまり重点を置いておりませんでした。ロードが遅れる原因としては個人的にはキャッシュも関わっているのではないかと考えています。ただ回線やサーバーなどの外部的要素もあるのでハッキリとした結論は出そうにないです…
なるほど!以前古いCPUとGT1030の組み合わせで相談していた者です。CPUとグラボの稼働率は50%に満たないのに、なぜ戦闘に遅れたりするんだろうと質問した記憶があるんですが、まさに木主さんの検証がそれを説明しているんですね。シングルスレッドを使い切ってるなら、自分の見ているタスクマネージャーでは(そこまで見れないので)総合稼働率は低いはずです。確かCPUはA10-6750かその辺だったと思います。当時はSATA SSDを使っていました。 -
上は2021年春頃の状況で、夏にグラボ以外を一新しました。当時はM2 SSDに変わったから改善したのか、よく分からない状況でそのままにしていました。皆さんの検証からいくとCPUのシングルスレッド性能が足りていなかったために戦闘読み込みが遅れていたということになります。i3-10105Fになってからは10秒前にはスタンバイできるようになりました。
一つだけ引っかかるのが、HDDとA10-6750の組み合わせでは戦闘への遅刻が滅多になかったということです。結局スローなHDD速度とスローなCPUが相性がよく、ぴったり息を合わせてたってことかな(汗)
そういえばグラボをGTX1650に変えてから、GPU使用率は45%程度です。GT1030の頃と同じ使用率なのは、要求性能が急に上がってきたのか、それともCPUボトルネックが無くなって、よりGPU性能を使い切れるようになったのか。そのどっちもかな。
グラフィックの設定が低かったから問題なく動いたのでは?
いえ、当時も間違いなく最高設定にしてました。
失礼しました、GTX1650の使用率をあらためて確認すると33%程度でした。少しだけ下がりました。
マップロード中のGPU使用率はとても低いので遅刻との直接的な関係性は考えにくいですね。それ以外だとストレージかネット環境が多そうです。