Они добились того, что не удалось Sun, - повысили быстродействие Java

Одной из проблем, связанных с Java, которую никак не удавалось решить Sun, долгое время оставалась невысокая эффективность выполнения программ, написанных на этом языке. Поэтому вполне понятен повышенный интерес, который вызвала никому не известная компания Tower Technology, разрабатывающая собственные методы повышения производительности кода Java.

С момента появления Java прошло уже три года, но низкая производительность этого языка остается его ахиллесовой пятой. В то время как его совместимость с различными платформами и возможность, написав программу один раз, использовать ее где угодно, привлекает разработчиков и корпоративных пользователей, - обилие медлительных приложений затормаживает внедрение сетей.

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

К примеру, на конференции Java-One компания Tower Technology представит "технологию динамической компиляции", рассчитанную на специфические сервисные приложения Java. Существующая сегодня первая версия пакета TowerJ компилирует исходный код Java в форму, приемлемую для данной конкретной платформы, точно так же как компиляторы С или С++ компилируют программы, написанные на этих языках.

В отличие от нее TowerJ 2.0 призван ускорить работу многочисленных Java-приложений, действующих по принципу единого для разных платформ побайтового кодирования. Байт-код, получаемый посредством компиляции исходного кода Java-программ, может интерпретироваться и выполняться Web-браузерами и сетевыми компьютерами. Руководство Tower объявило результаты тестов производительности, согласно которым компилятор исходного кода TowerJ и новый компилятор байт-кода TowerJ 2.0 позволяют выполнять приложения Java с той же скоростью, что и приложения, написанные на C++. Корпорация IBM занимается разработкой аналогичного программного обеспечения. Разработанный ею High Performance Compiler for Java компилирует байт-код Java-приложений в оптимизированный внутренний объектный код, для каждой платформы свой.

В настоящее время IBM проводит бета-тестирование компилятора, который, судя по заявлениям руководства, гораздо эффективнее компиляторов, встречающихся в виртуальных Java-устройствах (JVM).

Средством борьбы с низкой скоростью выполнения Java-приложений для Sun стала программа HotSpot. Для обеспечения переносимости Java-приложения распространяются в промежуточной форме - байт-кодах, которые "на лету" преобразуются виртуальным Java-устройством в приемлемый для конкретной платформы вид. Но процесс преобразования отрицательно сказывается на скорости выполнения приложений. HotSpot устраняет это противоречие, отыскивает те участки программы, скорость выполнения которых можно увеличить, и заставляет их работать быстрее.

Однако выход системы HotSpot постоянно откладывается. Согласно первоначальному замыслу, HotSpot планировалось выпустить на рынок еще летом прошлого года. Теперь же стало известно, что окончательный вариант системы появится летом нынешнего года.

Однако не очень многие верят в то, что HotSpot способна спасти положение. "В HotSpot используется прежняя технология компиляции, при которой считанный байт-код преобразуется "на лету". Разница лишь в том, что система пытается сделать это быстрее, - говорит Мэдисон Клутье, вице-президент компании Tower. - Ничего сверх этого HotSpot не дает".

По словам Клутье, преимуществом TowerJ является статическая оптимизация, которая происходит до запуска приложения.

"Система TowerJ действительно способна ускорить выполнение приложений. Когда программа запускается, ее код уже оптимизирован, - продолжает Клутье. - При использовании HotSpot выполнение программы начинается в обычном для Java-приложений замедленном темпе. Лишь после этого программа динамически оптимизирует свое выполнение и, по мере нахождения "областей напряженности" (hot spots), начинает работать быстрее".

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

Tower 2.0 работает под управлением различных операционных систем, включая SPARC Solaris, Windows NT, HP-UX и IBM AIX.

High Performance Compiler for Java компании IBM функционирует на AIX 4.1.3, OS/2 Warp 4, Windows 95 и NT (3.5.1 и 4.0). Согласно заявлению руководства IBM, выпуск компилятора запланирован на ближайшее лето.


Быстрые системы Java

По словам аналитиков и производителей, существует несколько технологий, призванных увеличить производительность Java-приложений

Компиляторы Just-in-time (JIT)
Компиляторы JIT, входящие в состав Java Virtual Machines, - это программы, преобразующие байт-код Java в команды, которые непосредственно передаются процессору при выполнении приложения. Подобные компиляторы продают, к примеру, компании Symantec и Asymetrix.

HotSpot
Виртуальная машина компа-нии JavaSoft, позволяющая, по некоторым данным, вдвое увеличить скорость работы приложений Java. Считается более мощной, чем стандартные компиляторы JIT. Первая версия предлагается пользователям, имеющим лицензии на Java.

TowerJ 2.0
Технология, выпуск которой запланирован на конец марта (приурочен к конференции JavaOne), отличается от JIT и HotSpot тем, что предусматривает оптимизацию приложения до его развертывания.

Поделитесь материалом с коллегами и друзьями