2014-10-03 85 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。所以,你通常想限制你使用它们的次数。也有平台差异,所以你也可能想要为你的特定目的进行配置。