Обновить
4K+
16
Юрий Ладик@Zemlaynin

Пользователь

5
Рейтинг
10
Подписчики
Отправить сообщение

Оптимизация генерации ресурсов в Java, три Ryzen и 225 замеров

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели7.2K

Почему ручное разбиение задач оказалось быстрее parallel().collect() в большинстве наших тестов.

Привет, Хабр!

Меня зовут Юрий, и уже десять лет я разрабатываю The Great Tribes — пошаговую 4X-стратегию, в которой игроку предстоит провести свою цивилизацию от первобытных племён до космической эпохи.

Игра создаётся на Java с использованием LWJGL и собственного игрового движка. Мы не используем Unity или Unreal Engine: за годы разработки у проекта сформировались собственная архитектура, система процедурной генерации мира и довольно специфические требования к обработке больших карт.

Сегодня хочу рассказать об одной небольшой, но интересной оптимизации.

Мы решили ускорить генерацию природных ресурсов, написали три реализации одного алгоритма и протестировали их на трёх компьютерах с процессорами AMD Ryzen.

Результаты оказались любопытными: более компактный вариант с parallel().collect() в большинстве измерений уступил реализации с ручным разбиением массива на части.

Но обо всём по порядку.

Читать далее

Оптимизация графики. Интересный Concave Hull

Время на прочтение4 мин
Охват и читатели11K
В один прекрасный момент, в ходе разработки игры, я столкнулся с вопросом производительности на современных ПК. У нашего моделлера достаточно мощный современный компьютер красной сборки. Но у него наш проект жутко тормозил, загружая одно ядро процессора.

Причина проста — в новых процессорах много ядер, но по факту они менее производительны в однопоточных приложениях. На тот момент, у меня был рендер в один поток. Но на самом деле причины была не столько в этом. И в процессе поиска проблемы, я решил посчитать сколько полигонов присутствует в сцене:



На средней игровой карте, при максимальном отдалении и при большом скоплении пальм — 15 824 756 треугольников! Почти 16 миллионов! Огромная цифра.
Читать дальше →

Информация

В рейтинге
1 123-й
Откуда
Усть-Илимск, Иркутская обл., Россия
Дата рождения
Зарегистрирован
Активность