Arbor2.2.0で再生直後から数秒間処理落ちする

Here is a forum for reporting failure to Arbor developer.
Please read the forum rules carefully and enter the information necessary to confirm the problem.

Note:
  • Please read the "Update Guide" carefully when updating Arbor.
  • The bugs that we already know are summarized in "Known Issues", so please check once.
  • Please check ReleaseNote and use the latest version if possible before reporting a bug.
  • Unity beta and alpha versions are not supported. Please use the official release version.
  • In principle, defects caused by the introduction of other assets are not supported. If you find a defect, please report it after isolating which asset is the problem.

ここは、Arbor開発者へ不具合を報告するためのフォーラムです。
フォーラムルールをよく読み、不具合確認に必要な情報を記載するようお願いします。

注意点:
  • Arborを更新する際は「アップデートガイド」をよく読み行ってください。
  • 既に把握している不具合は「既知の問題」にまとめてありますので一度確認してみてください。
  • 不具合報告をする前にReleaseNoteを確認し、なるべく最新バージョンを使用して下さい。
  • Unityのベータ版およびアルファ版はサポート対象外です。正式リリース版をご利用ください。
  • 他アセット導入による不具合は原則サポート対象外です。不具合を見つけた場合はどのアセットの問題であるか切り分けた上でのご報告をお願いいたします。

Forum rules
The items necessary for reporting are as follows.
  • OS(Required)
  • Unity version(Required)
  • Arbor version(Required)
  • How to reproduce(Required)
    The reproduction method should be described accurately so that anyone can read the same procedure.
    If you do not know the exact reproduction procedure, as long as you can remember it, so please tell us what you were doing immediately before and the last time you edited it.
  • Build platform
  • Reproduction project (Minimum configuration not including Arbor and other assets) or video

Note:
  • Please read the "Update Guide" carefully when updating Arbor.
  • The bugs that we already know are summarized in "Known Issues", so please check once.
  • Please check ReleaseNote and use the latest version if possible before reporting a bug.
  • Unity beta and alpha versions are not supported. Please use the official release version.
  • In principle, defects caused by the introduction of other assets are not supported. If you find a defect, please report it after isolating which asset is the problem.

報告に必要な項目は以下の通りです。
  • OS(必須)
  • Unityバージョン(必須)
  • Arborバージョン(必須)
  • 再現方法(必須)
    再現方法については、誰が読んでも同様の手順を行えるよう正確に記述するようにお願いいたします。
    もし正確な再現手順が不明な場合、覚えている限りで構いませんので直前に行っていたことや最後に編集した時のことを教えてください。
  • ビルドプラットフォーム
  • 再現プロジェクト(Arborや他アセットなどを含まない最小構成)もしくは動画

注意点:
  • Arborを更新する際は「アップデートガイド」をよく読み行ってください。
  • 既に把握している不具合は「既知の問題」にまとめてありますので一度確認してみてください。
  • 不具合報告をする前にReleaseNoteを確認し、なるべく最新バージョンを使用して下さい。
  • Unityのベータ版およびアルファ版はサポート対象外です。正式リリース版をご利用ください。
  • 他アセット導入による不具合は原則サポート対象外です。不具合を見つけた場合はどのアセットの問題であるか切り分けた上でのご報告をお願いいたします。
kato

Arbor2.2.0で再生直後から数秒間処理落ちする

Post by kato »

Unity 5.6.3p3
Arbor 2.2.0

これまでArbor2.1.7を使用していたプロジェクトにおいてArbor2.2.0へアップデートしたところ、
エディタでの再生直後から数秒程度、処理落ちするようになりました。
プロファイラを見るとその数秒間、妙なスパイクが立っています。

・空のプロジェクトにArbor2.2.0をインポートするだけでも同様の現象が見られます。
・シーン切り替え時は発生しない、再生直後のみの現象のようです。

これは想定内の挙動でしょうか?修正は可能でしょうか?
以上、ご確認よろしくお願いいたします。
User avatar
caitsithware
管理人
Posts: 493
Joined: 2015/08/17 12:41

Re: Arbor2.2.0で再生直後から数秒間処理落ちする

Post by caitsithware »

ご報告ありがとうございます。

以下の手順で確認してみましたが体感できるような処理落ちは確認できませんでした。
  1. Unity5.6.3p3にてプロジェクトを作成
  2. Arbor2.2.0をインポート
  3. Example 7(Coin Pusher)を開いて実行
もしよろしければ、処理落ちに関する詳細(もともと何FPSだったのが、いくつになった等)や、
Profilerでのスパイク部分に関する詳細(一番処理負荷の高い箇所のスクリーンショット等)がありましたら教えていただけると助かります。

また、再生直後ということで、デシリアライズや開始処理などによるGCが関係している可能性もありますが、
GC関連につきましてはまだ改善の余地があるという認識ですので、こちらに関しては今後の更新でできる限り改善していく予定です。

ご不便おかけいたしますがよろしくお願いいたします。
kato

Re: Arbor2.2.0で再生直後から数秒間処理落ちする

Post by kato »

参考のスクリーンショットをお送りします。
下記リンクよりDLお願いします。
https://www.dropbox.com/s/nyda26ecn1yg9 ... B.zip?dl=0

スクリーンショットは4枚です。
①②を比べると、空のプロジェクトにArbor2.2.0をインポートするだけで少し挙動が変わっているのがわかるかと思います。
②のスパイクはある時点でぱたりと止みます。
これについては同様の検証を2環境で実施して再現しています。

③④は開発中のプロジェクトでArbor2.1.7と2.2.0の比較をしたものです。
①②と同様の傾向が、少し強めに出ています。
処理落ちとしては軽微なのですが、これが例えばプロジェクトの規模に応じて影響が大きく出てしまわないかと懸念しています。

他に必要な情報等あればお申し付けください。
以上、よろしくお願いいたします。
User avatar
caitsithware
管理人
Posts: 493
Joined: 2015/08/17 12:41

Re: Arbor2.2.0で再生直後から数秒間処理落ちする

Post by caitsithware »

スクリーンショットありがとうございます。

200FPSなどが表示されているところをみるとVSyncは切っておられたのですね。
こちらでもVSyncを切ってみたところ、確かに再生時に一時的に処理負荷が上がるのを確認できました。

Arbor2.2.0をインポートしただけで確認できましたので、Editor固有の処理が再生時の処理負荷に影響を与えているとみて間違いなさそうです。
原因の可能性が高い箇所がありますので、次回更新の際に修正いたします。
それまでの間、しばしお待ちください。
また、Editor固有の処理でありランタイムでは行っていないので、ビルド版での影響はないと思って大丈夫です。

原因

GameObjectGetComponentCalculator等で使用するType指定用に事前にTypeを列挙していますが、
Editor上での再生直後も列挙処理が動いていたため。

暫定対処方法

以下の方法で事前列挙を行わないようにできます。
  • 編集するスクリプト
    Plugins/Arbor/Internal/Editor/ClassList.cs
  • 編集箇所
    10行目の[InitializeOnLoad]を削除
  • 影響範囲
    GameObjectGetComponentCalculator等で一番最初にType指定ウィンドウを表示する時に列挙に時間がかかる。
ご不便おかけして申し訳ございませんが、気になるようでしたらこの暫定対処を行っていただければ幸いです。
kato

Re: Arbor2.2.0で再生直後から数秒間処理落ちする

Post by kato »

早速のご対応ありがとうございます。
ビルド版での影響はないということで安心しました。
また、こちらでも暫定対処で症状が解消されることを確認できました。ありがとうございます。


Last bumped by Anonymous on 2018/02/28 20:19.
Locked