Тесты компилятора байт-кода Java - PullRequest
4 голосов
/ 12 июня 2010

Q.1. Какой бесплатный компилятор создает наиболее оптимальный Java-байт-код?

Q.2. Какая бесплатная виртуальная машина выполняет байт-код Java быстрее всего (на 64-разрядных многоядерных процессорах)?

Q.3. Какие другие (в настоящее время активные) проекты компиляторов отсутствуют в этом списке:

Q.4. Какие улучшения производительности могут сделать компиляторы, которые JIT не может (или не может) делать?

Q.5. Где находятся последние тесты, сравнения или перестрелки (для Q1 или Q2)?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 12 июня 2010

Q.1. Какой бесплатный компилятор создает самый быстрый исполняемый байт-код Java?

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

Q.2. Какая бесплатная виртуальная машина выполняет байт-код Java быстрее всего (на 64-разрядных многоядерных процессорах)?

Это лучший вопрос. Я считаю, что это JRockit

Q.3. Какие другие (в настоящее время активные) проекты компиляторов отсутствуют в этом списке:

Я полагаю, вы пропустили JRockit. Но для более полного списка я бы посмотрел Wikipedia: Список виртуальных машин Java . Узнать, активны они или нет, задача не из легких.

Q.4. Какие улучшения производительности могут сделать компиляторы, которые JIT не может (или не может) делать?

Технически нет, я полагаю. Компиляция байт-кода - это, по сути, неподходящее место для усилий по оптимизации.

Q.5. Где некоторые недавние тесты, сравнения или перестрелки (для Q1 или Q2)?

Google здесь твой друг. Это два:

к сожалению, они не охватывают столько виртуальных машин.

1 голос
/ 12 июня 2010

Q.4.Какие улучшения производительности могут сделать компиляторы, которые JIT не могут (или не делают)?

Компилятор JIT может выполнять глобальную оптимизацию.Компилятор байт-кода не может сделать это, потому что он не может видеть все библиотеки, загруженные во время работы программы.

JIT-компилятор может выполнять оптимизацию ветвления на основе наблюдаемого поведения текущего выполнения программы.Компилятор байт-кода не может этого сделать, потому что к моменту запуска программы компилятор уже не уместен.

0 голосов
/ 12 июня 2010

Единственной жизнеспособной альтернативой javac на данный момент является компилятор Eclipse.

Посмотрите на это. Вопрос в том, что вы считаете неэффективным, и действительно ли это имеет значение.

...