проблемы с производительностью при использовании Java Advanced Imaging API - PullRequest
3 голосов
/ 16 ноября 2010

В нашем проекте мы используем JAI для показа частей изображения, поворота изображения и базового масштабирования в апплете.Теперь мы видим, что апплету требуется много времени для загрузки - около 20 секунд в первый раз.Но впоследствии это займет всего 3 секунды (что тоже довольно много).

Разработка JAI, похоже, приостановилась с 2007 года. По крайней мере, я не смог найти ни одного сообщения о загрузке 2007 на веб-сайте Java.

Кто-нибудь сталкивался с проблемами при загрузке и решал их в контексте JAI?Есть ли эффективная альтернатива JAI?Изображения, которые мы используем, имеют формат TIFF и могут содержать несколько изображений в одном физическом файле.

Любые указатели очень ценятся.

1 Ответ

1 голос
/ 14 марта 2011

Первый запуск приложения (холодный запуск) может занять много времени, так как вам нужно загрузить тонны библиотек, включая JAI.Второй и последующие запуски приложений (теплый запуск) выполняются быстрее, поскольку классы времени выполнения кэшируются в classes.jsa .

Затем для обработки изображения потребуется процессор, а для его рисования - видеокарта.На современных компьютерах обработка изображений (основные операции!) И обработка (масштабирование, панорамирование) тривиальны и быстры с JAI.

Мы разработали и просмотрели приложение для изображений с JAI + Image I / O, масштабированием и панорамированием очень быстро, так как мы закончили его в 2007 году (1Mp изображений).После загрузки изображения обработка и обработка выполняются очень быстро, поэтому мы загружаем изображение в фоновые потоки, чтобы улучшить взаимодействие с пользователем.

Проблема с JAI заключается в его текущем состоянии: заморожен и / или мертв, но он зрелый, достаточно стабильный, и другие продукты, такие как Apache Log4J, имеют ту же проблему, никаких новых разработок с годами, но люди продолжают использовать еготак как альтернативы нет (ну, Logback!).

Существует множество альтернатив JAI, например, ImageMagick , но я их не тестировал.

Мы осторожны при загрузке и обработке изображений, например, конвертируем в 8 бит / канал, если возможно, выполняем операции в фоновом режиме перед рисованием ...

...