class A
{
public int a;
public int c;
}
我将从 A 创建 10 个实例。然后我将再次从 A 创建 15 个实例……继续。前 10 个实例对变量具有相同的值,接下来的 15 个实例对 a 具有相同的值。但我并不是说两个组对 a 具有相同的值。问题是在第一组和 15 中创建相同的值 10 次在第二组记忆中的次数是不必要的。
在这种情况下减少不必要数据的最佳解决方案是什么?
class A
{
public int a;
public int c;
}
我将从 A 创建 10 个实例。然后我将再次从 A 创建 15 个实例……继续。前 10 个实例对变量具有相同的值,接下来的 15 个实例对 a 具有相同的值。但我并不是说两个组对 a 具有相同的值。问题是在第一组和 15 中创建相同的值 10 次在第二组记忆中的次数是不必要的。
在这种情况下减少不必要数据的最佳解决方案是什么?
如果a
并且c
实际上只是整数,则不值得您花时间尝试从内存空间中优化它们;在大多数情况下,你用来做的任何事情都会比整数本身占用更多的空间。
但是,如果a
并且c
实际上是占用大量内存的对象,则可以将对象指针(或持有者,取决于语言)作为成员A
而不是对象本身。这样,指针中唯一重复的内存。
很明显,静态成员不适用于此问题。因为实例组将具有不同的值。
这可以是解决方案之一。还有什么其他的?
class Common
{
public int a;
}
class A
{
public Common a;
public int c;
}
有HashSet<T>
帮助吗?
另一种解决方案是
class A
{
public int? a;
public int c;
}
但不是创建新的int实例?类我们应该分配相同的实例。但是铸造int?to int 使用起来会很丑陋并导致性能问题。