В прошлом я изучал выводимый байт-код Java (используя приложение FrontEnd).По сути, он не выполняет никакой оптимизации, за исключением встраивания констант (статических финалов) и предварительного вычисления фиксированных выражений (например, 2 * 5 и «ab» + «cd»).Это часть того, почему его так легко разобрать (используя приложение под названием JAD)
Я также обнаружил несколько интересных моментов для оптимизации вашего Java-кода.Это помогло мне увеличить скорость внутренних циклов в 2,5 раза.
Метод имеет 5 переменных быстрого доступа.Когда эти переменные вызываются, они быстрее, чем все остальные переменные (вероятно, из-за поддержки стека).Параметры метода также учитываются в этих 5. Поэтому, если у вас есть код для цикла, который выполняется миллион раз, выделите эти переменные в начале метода и не имеют параметров.
LocalПеременные также быстрее полей, поэтому, если вы используете поля внутри внутренних циклов, кэшируйте эти переменные, присваивая их локальной переменной в начале метода.Кэшируйте ссылку, а не содержимое.(например: int [] px = this.pixels;)