2014-10-03 83 views
0

我正在嘗試開發一個將在嵌入式設備上運行的Java應用程序。由於它是嵌入式設備,因此可能相當慢。速度是一個重要因素。在對java.nio.ByteBuffer做了一點研究後,我發現它很慢,可能我應該完全避免它。有沒有人有關於如何輕鬆處理大字節[]的任何提示? ByteBuffer很好,因爲它提供了諸如.getInt()或.getShort()之類的方法以及切換ByteOrder字典。我只需要忍受一個字節[]的性能?快速java byte []操作

+3

專注於獲取功能,然後查看是否實際存在性能問題。像這樣的過早優化沒有實際看到問題,通常會導致更多的複雜性和令人頭疼的問題。 – Krease 2014-10-03 23:01:06

回答

0

您可能想要分析您的應用程序以確保ByteBuffer是一個瓶頸。然而,訪問本機內存通常比使用JVM分配的內存速度更快...

ByteBuffer buf = ByteBuffer.allocateDirect(8192); 

有一個更昂貴的成本,但在分配在堆中分配的版原生ByteBuffer。所以,你通常想限制你使用它們的次數。也有平臺差異,所以你也可能想要爲你的特定目的進行配置。