我擁有下一個實例化大約4000萬次的類,其所有實例佔用全部進程內存(大於15GB)的80%。.NET。最大限度地減少內存使用/優化類設計
class MyClass
{
String Field1
String Field2
String Field3
int Field4
int Field5
float Field6
SomeEnum Field7
Boolean Field8
Boolean Field9
Boolean Field10
Byte Field11
Byte Field12
}
我想以某種方式來優化這個類,但不知道我能在這種情況下做什麼。我想將布爾型字段組合成單個字節或自定義字段對齊,但不確定它是否更糟,以及它是否不會破壞某些內容。還試圖將其改爲結構,但在現有代碼中出現性能問題而沒有顯着改進。
那麼,在沒有嚴重的性能下降的情況下,如何減少內存使用量呢?
此代碼將主要在x64服務器上運行,x32僅在開發中運行。
編輯:
這是服務,咋辦很快返回取決於所有這些數據的結果。這裏的速度非常快,約爲20ms-150ms。所以所有的數據都被哈希和排序,並且該類中的每個字段幾乎用於對服務的每個請求。可能這裏的設計不好,但設計在這裏不是問題,我現在無法從頭開始重新設計它。
你真的需要在內存上放置4000萬個物品嗎?爲什麼不保留數據庫並使用sql來處理它們? – Giorgi 2010-07-19 14:31:03
它已經在數據庫之後:) – Kamarey 2010-07-19 14:33:27
你在用數據庫中無法做到的4000萬條記錄做什麼? – 2010-07-19 14:35:23