Весь код здесь довольно прост.Кроме того, методы также довольно короткие.(и да, другой ответ верен: первое, что нужно сделать, это уменьшить общее количество проходов по вашим массивам)
Оттуда вы можете посмотреть на две вещи:
- убедившись, что JIT включается на ранних этапах и полностью включает ваши методы и превращает их в машинный код (можно, например, настроить, сколько итераций цикла требуется для запуска встраивания, и как долго могут продолжаться методы для вставки)
- все ваши итерации цикла независимы.Таким образом, вместо вычисления всех итераций в последовательности , вы можете запустить несколько потоков, и каждый поток обрабатывает части этой последовательности.В зависимости от базового оборудования, это увеличивает нагрузку на вашу систему, но также дает вам результаты быстрее .
Оба подхода требуют некоторого «копания» в соответствующих темах, ноэто может привести к довольно большим успехам.Какое решение даст вам лучшие результаты, зависит от контекста, поэтому стоит придерживаться обеих стратегий.
Таким образом, в основном вы должны убедиться, что вы можете правильно измерить время выполнения (см. здесь ), чтобы затем провести эксперименты, чтобы понять, какие изменения принесут вам наибольшую пользу при вашей настройке.