プロパティパス
Understand the role of property paths and the performance considerations when using them.
読み終わるまでの所要時間 4 分最終更新 1ヶ月前
プロパティパスは、コンテナオブジェクト内のプロパティの場所を示す文字列です。
コンセプト
プロパティパスを使用して、特定のパスにあるオブジェクトのデータを取得または設定したり、オブジェクトのサブプロパティのビジターを受け入れたりすることができます。
プロパティパスは文字列で構成され、ルートオブジェクトから特定のプロパティインスタンスを解決します。例えば、パス は、 コンテナにネストされている、 コンテナの リストコンテナの 13 番目の要素を解決します。
foo.bar.baz[12]foobarbazプロパティパスを作成および操作するには、 クラスを使用します。
Unity.Properties.PropertyPathプロパティパスを使用して、以下を行うことができます。
- 特定のパスにあるオブジェクトのデータを取得または設定する
- オブジェクトのサブプロパティに対する訪問者を受け入れる
パフォーマンスの考慮点
Unity.Properties.PropertyPath以下の表は、プロパティパスが文字列から構成されている場合のアロケーション動作のリストです。
文字列 | 長さ | アロケーション回数 | アロケーションの理由 |
|---|---|---|---|
| 1 | 0 | 文字列をそのまま使用します。 |
| 2 | 2 | 文字列を 2 つのパーツに分割します。 |
| 3 | 3 | 文字列を 2 つのパーツに分割し、インデックスを抽出します。 |
| 4 | 4 | |
| 5 | 6 | 追加パーツの配列を割り当てます。 |
以下の表は、プロパティパスがパーツで構成される場合のアロケーション動作のリストです。
文字列 | 長さ | アロケーション回数 | アロケーションの理由 |
|---|---|---|---|
| 1 | 0 | |
| 2 | 0 | |
| 3 | 0 | |
| 4 | 0 | |
| 5 | 1 | 追加パーツの配列を割り当てます。 |
パフォーマンスを最適化し、メモリの割り当てを回避するには、以下を行います。
- 初期化ルーチン中にプロパティパスを初期化してキャッシュします。
- 文字列から構成する代わりに、プロパティパスのパーツを最大 4 つ結合または追加します。