質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.10%

中断すると軽くなる理由

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 134

yuuyu

score 445

かなり大雑把な質問内容になってしまうことをご承知ください。
unityのパフォーマンスの件で、気になったことがありましたので質問させていただきます。

動作の例

今回の環境として、一定時間ごとにオブジェクトが増えていく、というシステムになっています。
unityから実行(play)し、ある程度時間が経つと、updateの呼び出し量も増え、少しずつ重たくなります。
そこで、ゲームを一時中断(pause)し、すぐに再スタート(play)すると、動作が軽くなります。
とはいえ文章では中々伝えづらいので、画像を添付します。
イメージ説明
上記画像で、60fpsを下回るのが一時中断前、崖のように急に60fpsを上回った箇所が一時中断したところです。
このように、中断を挟むだけで、かなり速度が改善します。

なお、上記画像のグラフには、EditorLoop(Othersの箇所)は含まれず、ほとんどが自作スクリプトによる実行量になります。

質問内容

上記のように、中断を挟むだけで改善する理由として考えられるものはありますでしょうか?
もちろん、情報がこれだけしかない以上、根本的な原因を特定することは厳しいと思いますので、何か解決になる手助けをいただけると嬉しいです。

動作環境

unity2019.4.1f1
macOS 10.15.5

2020/06/30 追記

スクリプト速度の改善と直接関係あるかは不明ですが、
WaitForTargetFPSの「semaphore.WaitForSignal」というものが入っている事が実行の大幅な時間を使用している時があることが分かりました。
これが常に滞在しているわけではなく、あるとき突然出現し、上記のグラフを水平だったものを一気にジグザグにしてしまいます。
そして一時中断し、再開すると、このsemaphoreは0に近くなり、(一時的に)安定するようです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

これはあくまでも、予想ですが、何か重い負荷のかかるような処理をゲームが始まる前にやっていないでしょうか?ゲームが始まり、重い処理をして、中断したらその処理をしなくて済むからFPSが60以上になるのではないでしょうか。自作スクリプトの場合、自分が思っていない場所にとっても重い処理をしてしまったりしていることがよくあります。見返してみたらどうでしょう。
なんか回答というよりも提案みたいになってすみません…
参考になるといいです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/06/30 10:49

    回答ありがとうございます。質問内容が内容なので、提案でも全然ありがたいです!
    ゲームが始まる前、ですね、、ちょっと探してみます!
    ただ今回のこの現象は、初回だけではなく、ある程度重くなる度に中断を挟んでも改善されるので、他にも原因がある気もしています。。。

    キャンセル

  • 2020/06/30 10:51

    そうですか…

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る