4

ペイント イベントのように頻繁に呼び出されるメソッドでは、(位置と境界を指定するために) Point オブジェクトと Rectangle オブジェクトを再利用する方が効率的ですか、それとも新しいオブジェクトを作成する必要があります。

4

1 に答える 1

3

PointそしてはオブジェクトでRectangle はありません-それらはstructです。したがって、ヒープの存在はありませんが (フィールド上にない限り)、逆にそれらをコピーすると影響ある可能性があります (大きな影響ではありません - それらはそれほど大きくありません)。

それらをタイトなループで使用している場合は、変数で事前に初期化してください。もちろん、現在の x / y と幅 / 高さをリファクタリングして、ストレージなどを使用することもできます。Pointまた、(ほとんどのシナリオとは異なり) それらは実際には変更可能な構造体であるため、ループ内などで内部値を変更できることにも注意してください。

また、IIRCには、構造体の代わりにプリミティブ値を取る多くのグラフィックス操作のオーバーロードがあることに注意してください-それらを考慮しましたか?

ただし、最終的には、実際のグラフィックス操作と比較して、これが顕著な影響を与えるとは思いません. 強調しないでください。コードが機能する場合...

于 2010-03-12T07:01:22.347 に答える