Главная » Статьи о компьютерах » Оптимизация Java: просто, но неочевидно

Оптимизация Java: просто, но неочевидно

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

Сказанное вдвойне актуально для Java-приложений, функци­о­наль­ность которых зависит не только от связки платформа+ОС, но и от конфигурации виртуальной Java-машины.

О проблеме

Неизбежная дань совместимости, возможность запускать 32-бит­ные приложения на 64-битных платформах может сыграть злую шутку при инсталляции виртуальной Java-среды. В типовом случае, попытка установки 32-битной JVM под 64-битной ОС пройдет без предупреждающих сообщений, но результатом станет неоптимальная конфигурация. Причем, в силу кросс­плат­фор­менных возможностей Java-кода, работоспособность приложения в большинстве случаев будет сохранена.

О решении

Практика показала, что предоставление пользователю или сервисному инженеру детальной информации о параметрах операционной среды, в том числе не имеющих прямого отношения к целевой функциональности программного продукта, поможет сэкономить немало времени как при его отладке, так и эксплуатации. В Java-приложении, использующем интеграцию нативного кода, применение WinAPI функции isWoW64Process позволяет явно определить факт запуска 32-битной JVM на 64-битной платформе в режиме эмуляции, называемом Windows-on-Windows 64 или WoW64. Приведем два примера использования такого механизма в продуктах исследовательской лаборатории IC Book Labs.

Утилита измерения производительности mass storage устройств NIOBench

Утилита измерения производительности mass storage устройств NIOBench предупреждает о влиянии фактора эмуляции 32-битной среды на операции с аппаратным генератором случайных чисел.

Утилита мониторинга состояния аккумуляторных батарей Power Info

В одной из вспомогательных закладок, утилита мониторинга состояния аккумуляторных батарей Power Info визуализирует параметры нативной (64-битной) и эмулируемой (32-битной) подсистем ОС.


19.10.2017