Показаны сообщения с ярлыком bytecode. Показать все сообщения
Показаны сообщения с ярлыком bytecode. Показать все сообщения

среда, 12 сентября 2018 г.

Неочевидные оптимизации Jit

В данном посте, я расскажу про интересный случай возникший у меня работе.

Есть следующий код:

В методе проиcходит сериализация массива байт. Используется тот факт, что размер char в java - 16 бит, а размер byte (Внезапно 😱) - 8 бит. Но суть не в этом. Интересный момент здесь заключается в том, что метод работает гораздо медленее на массивах нечетной длины.

воскресенье, 29 апреля 2018 г.

Кидаем исключения типа Object

Всем известно, что кидать исключения можно только, если объект наследуется от класса java.lang.Throwable. Для этого предназначена инструкция байткода ATHROW. Мне стало интересно, осуществляется ли проверка типа после компиляции.
Напишем небольшой метод, генерирующий нужный класс, с помощью библиотеки bcel.