いつもお世話になっております。
NiagaraのPoolシステムについて質問があります。
- NiagaraSystemの「Max Pool Size」について。ここに設定する数値は、動的に作られたNiagara Component(Auto Release指定)を使い終わったら、Poolされてメモリ上に残るという認識で合っていますか?
- NiagaraSystemの「Max Prime Size」について。ここに設定する数値は、その数分だけNiagaraComponentを最初に作ってPoolされるという認識で合っていますか?
- ↑もしそうだとしたら、NiagaraSystemがロードされた瞬間に作られますか? その場合パフォーマンスにどういう影響を与えますか?(作られるスレッドはメインかサブのどちらですか? もしくは1フレームに1つだけに限定して分割作成されますか?)
何卒よろしくお願い申し上げます。
[Attachment Removed]
t-nikaido1
(t-nikaido1)
2
お世話になっております。
>・NiagaraSystemの「Max Pool Size」について。ここに設定する数値は、動的に作られたNiagara Component(Auto Release指定)を使い終わったら、Poolされてメモリ上に残るという認識で合っていますか?
>・NiagaraSystemの「Max Prime Size」について。ここに設定する数値は、その数分だけNiagaraComponentを最初に作ってPoolされるという認識で合っていますか?
後者は PoolPrimeSize のことかと思いますが、その認識で問題ありません。
>↑もしそうだとしたら、NiagaraSystemがロードされた瞬間に作られますか? その場合パフォーマンスにどういう影響を与えますか?(作られるスレッドはメインかサブのどちらですか? もしくは1フレームに1つだけに限定して分割作成されますか?)
NiagaraSystem がロードされたタイミングでコンポーネントが生成されますが、これに関してフレームにまたがって分散されるということはありません。
UNiagaraComponentPool::PrimePool および FNCPool::Acquire 関数が参考になるかと思います。
一般にコンポーネントの生成はメインスレッド上で行われますのでパフォーマンスの観点で注意して頂くとすればまずはそこかと思いますが、具体的な影響の度合いについては実際の動作環境にて確認して頂くよりありません。
よろしくお願いいたします。
[Attachment Removed]
いつもお世話になっております。
回答のほど、誠にありがとうございました。仕組みについては理解できましたので、こちらの質問はクローズしていただいて問題ありません。
今後とも何卒よろしくお願いします。
[Attachment Removed]