Подготовка к участию в семинаре
Для выполнения практической части семинара вам понадобится ноутбук. Материал протестирован на Windows 7/10, Linux и MacOS.
Дальнейшие инструкции предполагают, что директория LABDIR используется для установки учебных материалов.
Чат на время мастер класса https://discord.gg/EbJWyW
Погдотовка ПО
Java
Вам потребуется OpenJDK 11. Существует несколько дистрибутивов, вы може использовать любой. Ниже не полный список дистрибьюторов OpenJDK.
- AdoptOpenJDK (необходим вариант с HotSpot JVM)
- Azul Zulu
- Liberica JDK
- Amazon Corretto
git
Для работы с материалом семинара вам понадобится git клиент с поддержкой коммандной строки.
Maven
Для запуска демонстрационных проектов необходим Maven версии 3.6 или выше.
После инсталяции убедитесь, что команда mvn --version корректно работает из консоли и возвращает правильные номера версий Java и Maven.
Mission Control 7.0
Установите Mission Control 7.0.
SJK
SJK - консольный профайлер, позволяющий в том числе работать с файлами Java Flight Recorder. Скачайте sjk.jar в дидекториюLABDIR/.
Выполните команду
java -jar sjk.jar --commands
Резльтат выпольнения должен быть следующим:
ssa - [Stack Sample Analyzer] Analyzing stack trace dumps
hh - [Heap Histo] Prints class histogram, similar to jmap -histo
stcpy - [Stack Copy] Stack dump copy/filtering utility
vminfo - [VMINFO] Dumps various from local VM
mx - [MBean] MBean query and invokation
jps - [JPS] Enhanced version of JDK's jps tool
mxping - [MXPING] Verify JMX connection to target JVM
mxdump - null
ttop - [Thread Top] Displays threads from JVM process
dexp - [Dump Export] Extract metrics form compressed dump into tabular format
jfr2json - [JFR 2 JSON] Flight decoder, command translates JFR files into JSON
mprx - JMX proxy - expose target process' MBeans for remote access
stcap - [Stack Capture] Dumps stack traces to file for further processing
gc - [Print GC] Print GC log like information for remote process
flame - Generates flame graph from stack traces
Загрузка учебных материалов
Мы будет использовать директорию LABDIR/ для разимещения всех учебных материалов.
Пример 1
git clone -b opt_demo_step_1 https://github.com/aragozin/optaplanner-bench.git optaplanner
cd optaplanner
mvn -DskipTests clean package
Сборка должна завершиться успешно.
Пример 2
git clone -b bench/bias-sjk/master https://github.com/aragozin/proflab.git bias-sjk
cd bias-sjk
mvn clean package
Сборка должна закончиться успешно.