我试图做的事:如何在一个值中构建变量1到4字节的结构?
我想在RAM中存储非常多的数据。为了更快地存取和更少的内存占用我需要使用结构值的数组:
MyStruct[] myStructArray = new MyStruct[10000000000];
现在我想要存储的无符号整型值与MYSTRUCT一个,两个,三个或四个字节。但它应该只使用尽可能少的内存量。当我将一个值存储一个字节时,它应该只使用一个字节,依此类推。
我可以通过类来实现这个,但这不合适,因为指向该对象的指针在64位系统上需要8个字节。所以最好为每个数组条目存储4个字节。但是我想在需要时只存储/使用一个/两个/三个字节。所以我不能使用一些奇特的课程。
我也不能使用一个数组与一个字节,一个数组与两个字节等,因为我需要的值的特殊顺序。而且这些值非常混杂,因此在切换到另一个阵列时存储额外的参考将无济于事。
有没有可能想要什么或者是否只是存储一个4字节的数组的唯一方法,无论我只需要存储一个字节,两个字节约60%的时间和三个字节约25%时间?
你看着[StructLayoutAttribute(http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.structlayoutattribute.aspx)? – Oded 2012-07-07 21:47:48
这对我的情况没有帮助。我需要在一个结构中包含一个字节值,两个字节值,三个字节值和四个字节值的结构。但是,当我仅存储一个字节时,仅使用一个字节。我不知道StructLayoutAttribute如何提供帮助。 – Chris 2012-07-07 21:51:18
哪个是您的主要目标,内存使用率较低还是访问速度较快? – Dave 2012-07-07 21:52:08