Установка Excelsior JIT на примере minecraft

Материал из MediaWiki
Версия от 11:32, 13 мая 2018; lor>Cetjs2 (Откат правок 163.172.227.165 (обсуждение) к версии Cetjs2)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Зачем?

Excelsior JIT - один из AOT-компиляторов. Ahead-of-Time (AOT) компилятор — это вид компилятора, который использует метод Ahead of Time Compilation (компиляция перед исполнением). Применяется при компиляции в «промежуточные» языки, такие как байт-код Java, .NET Common Intermediate Language (CIL), IBM System/38, IBM System i.

Большинство языков используют метод компиляции Just-In-Time (JIT), которая позволяет компилировать промежуточный код напрямую в бинарный во время его выполнения, что позволяет существенно увеличить скорость выполнения. JIT требует выделения дополнительной памяти.

АОТ не требует выделения дополнительной памяти. АОТ-компиляция проходит с минимальной нагрузкой на систему. Процесс компиляции полностью выполняется перед выполнением программы.

Другими словами Excelsior JIT позволяет в несколько раз ускорить выполнение Java программы. А раз так, то неплохо бы было установить его для ускорения работы, например, Minecraft.

Сравнение: на моем ноутбуке на short дистанции 11 fps с обычной Java-загрузкой и 29 fps на short с eJIT. ~250%.


Инструкции для Ubuntu 12.04

Загрузка

Идем на http://www.excelsior-usa.com/jetdleval.php и качаем linux версию (прямой ссылки нет, там меняется каждый refresh).


Установка

Переместите скачанный .bin файл в каталог без русских символов, ибо у него в установщике быдлокод и без этого он не распакуется. Например будем ставить в ~/Programs/Jet

cd ~/Programs/Jet
chmod a+x ./*.bin
./*.bin

Соглашаемся с EULA, выбираем каталог установки ~/Programs/Jet. НЕ следуем инструкции на сайте, требующей установки в /usr/local. Там она не установится - будет ругаться на невозможность установки половины файлов. В теории хочет рут права, но ставить Third party blob от рута - увольте.

export PATH=~/Programs/Jet/bin:$PATH
./bin/jetcp

Если будет ругаться - то еще и shared перед запуском:

export LD_LIBRARY_PATH=~/Programs/Jet/lib/x86/shared:$LD_LIBRARY_PATH

Там создаем новый проект, в строку для парсинга вписываем параметры, с которыми запускали майн. У меня это

/home/alex/Программы/Java/bin/java -Xmx1024M -Xms512M -cp /home/alex/Игры/Minecraft/MinecraftSP.jar net.minecraft.LauncherFrame

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

Проверяем, что всё запускается.

Создаем скрипт запуска майна:

#!/bin/bash
export PATH=~/Programs/Jet/bin:$PATH
cd ~/.minecraft
./run_MinecraftSP2.sh

run_MinecraftSP2.sh - здесь MinecraftSP2 - это новое имя файла, которое вы указали в настройках проекта. Лежать будет там, где вы настроите рабочий каталог в проекте. Я ставил ~/.minecraft (сделайте резервную копию каталога на всякий случай).


Итог

Поставили JIT, ускорили майнкрафт в 2.5 раза.