我有一个控制台应用程序,允许用户指定要处理的变量。这些变量有三种形式:string、double 和 long(double 和 long 是迄今为止最常用的类型)。用户可以以任何顺序指定他们喜欢的任何变量,因此我的系统必须能够处理它。为此,在我的应用程序中,我一直将它们存储为对象,然后根据需要进行转换/取消转换。例如:
public class UnitResponse
{
public object Value { get; set; }
}
我的理解是盒装对象比标准值类型占用更多的内存(大约 12 个字节)。
我的问题是:使用动态关键字存储这些值会更有效吗?它可能会解决装箱/拆箱问题,如果它更有效,这将如何影响性能?
编辑
为了提供一些上下文并防止在我最坏的情况下“你确定你使用了足够的 RAM 来担心这个”,我需要担心 420,000,000 个数据点(60 个变量 * 7,000,000 条记录)。这是我保留的关于每个变量的一堆其他数据(包括一些布尔值等)的补充。所以减少内存确实会产生巨大的影响。