2012-03-01 130 views
2

我需要反序列化每個頁面加載的數據庫中的對象,並在下一個按鈕的命中數據庫中再次序列化。我想知道哪個是加載/保存頁面的最快方式。 我應該將我的大對象拆分爲3-4個小對象並且序列化/反序列化3-4次。通過這種方式,我將與數據庫3-4交談並初始化XMLSerializer 3-4時間。 其他方法是序列化/反序列化完整對象,它將具有單個數據庫命中和XMLSerializer的單個初始化。但是XML流(序列化數據)將會很大。 哪個選項最快?序列化/反序列化大對象單次Vs多次序列化/反序列化小對象?

+3

爲什麼不寫一個測試程序來計算每種方法? – ChrisF 2012-03-01 12:26:25

+1

什麼是這個數據?它是某種形式的應用程序狀態? – 2012-03-01 12:29:59

+1

坦率地說,你最大的問題在於帶寬;所以a:我不會使用XmlSerializer(更像protobuf-net這樣簡潔的東西似乎是合適的),b:我不會將*這個特殊的數據存儲在SQL數據庫中 - 我會以某種方式存儲它的關鍵/值存儲,如redis – 2012-03-01 12:35:20

回答

0

在大多數情況下,調用數據庫將是你最大的性能瓶頸。所以,如果不知道比發佈的更多細節,我會傾向於使用單個大型對象。如果可以並行處理3-4個較小的請求,您可能會做得更好,但這可能會更復雜,並且可能會更快導致縮放問題。

後續問題,可能需要在更好的答案指向你:

  • 多大的每個對象?
  • 有多少用戶會對此代碼發出併發請求?
  • 對內存,數據庫連接或其他容量有限制嗎?