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

我将从 A 创建 10 个实例。然后我将再次从 A 创建 15 个实例……继续。前 10 个实例对变量具有相同的值,接下来的 15 个实例对 a 具有相同的值。但我并不是说两个组对 a 具有相同的值。问题是在第一组和 15 中创建相同的值 10 次在第二组记忆中的次数是不必要的。

在这种情况下减少不必要数据的最佳解决方案是什么?

4

4 回答 4

0

如果a并且c实际上只是整数,则不值得您花时间尝试从内存空间中优化它们;在大多数情况下,你用来做的任何事情都会比整数本身占用更多的空间。

但是,如果a并且c实际上是占用大量内存的对象,则可以将对象指针(或持有者,取决于语言)作为成员A而不是对象本身。这样,指针中唯一重复的内存。

于 2010-06-05T15:41:32.970 回答
0

很明显,静态成员不适用于此问题。因为实例组将具有不同的值。

这可以是解决方案之一。还有什么其他的?

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 回答