проблемы с производительностью при использовании Java Advanced Imaging API

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

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

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

Любые указатели с благодарностью.


person Sathya    schedule 16.11.2010    source источник


Ответы (1)


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

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

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

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

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

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

person David Oliván Ubieto    schedule 14.03.2011