現在、GC_CONCURRENT 呼び出しを回避しようとしているため、メイン ループを実行しています。計算を行うために複雑なオブジェクトを作成することが多いことに気付きました。
だから私の質問は、そのオブジェクトをクラスのフィールドとして宣言するのではなく、それを使用するメソッドでそれを宣言するのがパフォーマンスに役立つでしょうか?
または、私の英語はおそらくあなたの脳を傷つけているので、フィールドとしてのコード例を次に示します
class myclass{
private MyObject myObject;
...
public void myLoopedMethod(...){
myObject = new MyObject(...);
myObject.dostuff;
}
メソッドの例
class myclass{
...
public void myLoopedMethod(...){
MyObject myObject = new MyObject(...);
myObject.dostuff;
}
適切なスコープはメソッドになりますが、フィールドにすることで、メモリが常に解放され、同じ場所に割り当てられるのではないかと疑っています。これは本当で、GC 呼び出しを回避するのに役立ちますか?
また、おそらくこのようなことをする必要がありますが、上記のロジックが理にかなっている場合は興味があります。
class myclass{
private MyObject myObject;
...
public void myMethod(...){
myObject.setNewValues(...);
myObject.dostuff;
}
}