2014-10-03 2 views
0

Я пытаюсь разработать приложение Java, которое будет работать на встроенном устройстве. Поскольку это встроенное устройство, оно может быть довольно медленным. Скорость - важный фактор. После небольшого исследования java.nio.ByteBuffer я вижу, что он довольно медленный и, возможно, я должен был полностью его избегать. У кого-нибудь есть какие-либо советы по управлению большим байтом []? ByteBuffer хорош, потому что он предоставляет такие методы, как .getInt() или .getShort(), а также переключение сущности ByteOrder. Должен ли я просто жить с исполнением байт []?Быстрый java byte [] манипуляция

+3

Сосредоточьтесь на получении функциональности, а затем посмотрите, есть ли проблемы с производительностью. Преждевременные оптимизации, такие как это, не видя проблем, обычно вызывают большую сложность и головные боли. – Krease

ответ

0

Возможно, вы хотите просмотреть ваше приложение, чтобы убедиться, что ByteBuffer является узким местом. Тем не менее, доступ к родной памяти, как правило, быстрее, чем при использовании Jvm выделенной памяти ...

ByteBuffer buf = ByteBuffer.allocateDirect(8192); 

Там более дорогая стоимость выделения родной ByteBuffer над кучей выделено версией, хотя. Таким образом, вы обычно хотите ограничить, насколько вы ими пользуетесь. Существуют также различия в платформе, поэтому вы также, вероятно, хотите профилировать для своих конкретных целей.

Смежные вопросы