0
class A
{
 public int a;
 public int c;
}

A から 10 個のインスタンスを作成します。次に、A から 15 個のインスタンスを作成します...続けます。最初の 10 個のインスタンスは変数に対して同じ値を持ち、次の 15 個のインスタンスは再び a に対して同じ値を持ちます。しかし、両方のグループが a に対して同じ値を持つという意味ではありません。メモリ不要の 2 番目のグループの回。

この状況で不要なデータを減らすための最善の解決策は何ですか?

4

4 に答える 4

0

aとが実際には単なる整数である場合c、メモリ空間からそれらを最適化しようとするのに時間をかける価値はありません。ほとんどの場合、そのために使用するものはすべて、整数自体よりも多くのスペースを占有します。

ただし、acが実際に大量のメモリを占有するオブジェクトである場合は、代わりにオブジェクト ポインター (言語によってはホルダー) をAオブジェクト自体の代わりに のメンバーとして配置できます。そうすれば、ポインターで複製される唯一のメモリ。

于 2010-06-05T15:41:32.970 に答える
0

この問題に対して静的メンバーが機能しないことは明らかです。インスタンス グループの値が異なるためです。

これは解決策の1つになる可能性があります.他に何ができますか?

class Common
{
  public int a;
}
class A
{
  public Common a;
  public int c;
}
于 2010-06-05T15:44:47.253 に答える
0

役に立ちますかHashSet<T>

于 2010-06-05T15:48:15.247 に答える
0

別の解決策は

class A
{
  public int? a;
  public int c;
}

しかし、intの新しいインスタンスを作成する代わりに? クラスに同じインスタンスを割り当てる必要があります。しかし、int をキャストしますか? to int は使いにくく、パフォーマンスの問題を引き起こします。

于 2010-06-05T16:18:19.433 に答える