2013-05-29 45 views
0

我已經用Java編寫了一個基本的服務器 - 客戶機體系結構,並且我正在使用可序列化的類來進行數據包傳輸。我可能在一些關於stackoverflow的問題中看到了「tobytearray,frombyarray」函數。服務器工作並且必須實時工作,因此每秒鐘發送的數據包幾乎超過20-30個。當我讀取一個數據包或寫一個數據包時,我會序列化這個類,並且這個操作可能會花費很多,因爲我經常創建一個新的ObjectOutputStream和一個ByteArrayOutputStream,如果您認爲它每秒發生30次,它可能會切斷性能。所以我想在主類中創建一個靜態的ByteArrayOutputStream和ObjectOutputStream,所以每個數據包在序列化或反序列化時都會使用它們,這些已經創建好了,所以我將在一秒鐘內分配30次的代價。但它會造成另一次性能下降嗎?我應該每次刷新或重置ByteArrayStream?使用單個ByteArrayOut/InputStream和ObjectOut /輸入進行多個操作

回答

1

當你認爲它會發生30次在第二它可能砍的表現

真的嗎?計算機相當快,你知道。除非這些是真的巨大的字節數組,我非常懷疑這是一個問題。

與以往一樣:

  • 定義的性能標準在開始編碼
  • 寫,你可以簡單的代碼來實現自己的目標正確
  • 測試對你指定的
  • 如果條件在演出前性能不理想,請在你的應用程序中找出最大瓶頸所在
  • 地址瓶頸,不失簡潔僅在性能優勢證明顯著
  • 重複,直到你的代碼滿足性能標準

我的猜測是,你還沒有開始測試的表現呢。你會驚訝計算機每秒可以做多少工作30次。

相關問題