减少Class成员变量中不必要的相同值

时间:2010-06-05 15:34:31

标签: class memory optimization member

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

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

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

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

很明显静态成员不能解决这个问题。因为实例组会有不同的值。

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

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

答案 2 :(得分:0)

HashSet<T>会有帮助吗?

答案 3 :(得分:0)

另一种解决方案是

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

但不是创建新的int实例?我们应该分配相同的实例。但是铸造int? to int将难以使用并导致性能问题。