パーティクルの位置など、頻繁にアクセスされる変数に@property
を使用する必要がありますか? @property
はメソッドの呼び出しのオーバーヘッドを追加する変数のgetterとsetterを作成します。ほとんどの状況でこれは目立つことはありませんが、プロパティが1秒間に何百万回もアクセスされた場合(異なるインスタンス内で)はどうでしょうか?@propertyの使い方
答えて
Objective-Cランタイムが@property
アクセサのために一定量のオーバーヘッドを追加することは間違いありません。しかし、これはObjective-Cクラス間で情報を共有するために受け入れられる方法です。アプリケーションを測定し、@property
のオーバーヘッドが実際に処理のボトルネックであると判断した場合にのみ、別のアプローチを検討する必要があります。唯一MHzの範囲内にある「毎秒百万回の」
は、現代のプロセッサはGHzの範囲で動作することに注意してください、と何かが起こって。チャンスは、あなたのボトルネックはどこかにあるでしょう。
あなたがを行う場合は、常に大きなObjective-CのクラスParticleCloud
の内側に簡単なParticle
構造体の配列であなたのパーティクル処理を行うことができ、問題を抱えています。これにより、残りのプログラムは、アクセサの必要性を排除しながら、Particle
オブジェクトの正確な実装を無視することができます。
実際にゲッターとセッターを使用していますか?そうでない場合は、プロパティを使用しないでください。そうなら、それを使用してください。オーバーヘッドが重要かどうかを知る唯一の方法は、独自のパフォーマンステストを行い、プロセスの前後の時間を記録し、まったく同じシミュレーションを実行し、経過時間を比較することです。それがパフォーマンスヒットだが無視できる場合は、それを心配しないでください。あなたは、あなたが使用している他のどのメソッドよりも@propertyを持っている方が速いことがわかります。
私の意見では、オブジェクトのプロパティには@property
を使用する必要があります。私はそれがばかげて聞こえることを知っていますが、プロパティによって私は他のクラスからアクセスできる "パブリック"属性を意味します。あなたのクラスだけがその属性を必要とするならば、あなたの実装の中でそれを非公開にしてください。物事はもっとスムーズできれいになります。
@propertyの利点の1つは、それらを読み込み専用(つまりセッターなし)にするかどうかを指定できることです。だから、それは本当に公開APIの問題です。
- 1. Property Let for Arraysの使い方は?
- 2. Multi-property css variableの使い方は?
- 3. Objective-C @propertyの使用方法
- 4. iPOJO:@ServicePropertyと@Propertyの違い
- 5. Reactの "Object?.property"構文の使用方法
- 6. @propertyのカスタムセッター?
- 7. fn:concat-property式でアポストロフィー文字を使用する方法WSO2 ESB
- 8. MVC 3ソリューションでCastle Windor Property Injectionを使用する方法
- 9. パイプラインジョブでJenkins Heavy Job Propertyを使用する方法
- 10. Dで@propertyを使用する理由
- 11. @propertyと@synthesize
- 12. AttributeErrors:@propertyと__getattr__
- 13. python @property setter delegation
- 14. HttpFileCollectionBase:Mocking Count-Property
- 15. C#:Generic List Property
- 16. SQLAlchemy Hybrid Property Comparator
- 17. DataTrigger with Property = ItemControl.ItemTemplate
- 18. UWP "Type" Dependency Property
- 19. MahAppsとProperty Grid
- 20. WPF CustomControl - Resources Property
- 21. iOS5 @property changes
- 22. Powershell:Child Property Deflation
- 23. いつ@propertyを使うべきですか?
- 24. @propertyが使用されない場合があります
- 25. @propertyのメモリの破損
- 26. @propertyとセッターとゲッター
- 27. Lodash + TypeScript _.property iteratee shorthand
- 28. Ember Computed Property on Array
- 29. Dパフォーマンス:union vs @property
- 30. C#InvokeRequired with property getter