0

コンストラクタとデストラクタを考慮せずにプリミティブ型を使用します。そのせいかもしれませんが、ほとんどがスタックに格納されています。プリミティブ型にもstructlikeを使用します。float3クラスでも同じものを作るかもしれません。関数の開始時に、新しいインスタンスを作成し、それを使用して、関数の終了時にメモリを解放します。

ローカル変数を使用する代わりに、クラス レベルでインスタンス変数を宣言すると、変数は、それを保持するクラスが解放されるまで存在します。これにより、安定したメモリ使用量が増加します。さらに、このインスタンスに転送される更新メソッドがいくつかあるはずです。たとえば、コンテナのサイズを変更するとコンテンツに影響する可能性があるため、新しいサイズを転送する必要があります。

変数を何度も作成しないようにするために、クラスは変数への参照をどのように保持する必要がありますか?

コンストラクタ(またはデストラクタ)が呼び出される回数に関連していることは知っていますが、一般的な解決策を探しています。たとえば、クラスに x、y、z などのプリミティブのみが含まれていて、それらが不変である場合は、常に構築する必要があります。

float3不変にするか、x、y、および z を変更可能にするか、どちらを選択するかを決定する方法。

4

2 に答える 2

1

通常、パフォーマンスを向上させるために、変数のスコープを最小化する必要があります。また、Javaでは、同等のラッパークラスよりもプリミティブを常に優先します。

于 2012-09-02T01:51:02.380 に答える
1

プリミティブ型を使用する場合、おそらく違いはありません。

より「複雑な」タイプのオブジェクトを使用する場合は、再利用する前に既知の状態にリセットする必要があります。これには、少なくとも新しいオブジェクトを作成するのと同じくらい多くのコードが必要になる場合があります。また、コードが複雑になりますが、これは決して利点ではありません。

コードに特定のボトルネックがあることに気付かない限り、コードをシンプルで読みやすいものにするようにしてください。どうしても必要になるまで、物事を複雑にしないでください。

于 2012-09-02T09:22:13.943 に答える