我試圖做的事:如何在一個值中構建變量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