Не знаком с профилированием Java, у меня проблема с потоками - PullRequest
2 голосов
/ 17 июня 2020

Я сделал движок Raycasting, и он немного тормозит. Раньше мне никогда не приходилось делать профилирование, только пошаговая отладка. Я использовал JProfiler, и, насколько я понимаю, проблема заключается в ожидании / блокировании потоков. Я не знаю, почему это происходит. Если бы кто-нибудь мог взглянуть на код и дать мне несколько советов, я был бы очень признателен. Код на английском sh, но некоторые комментарии все еще на французском (перевод в процессе). Я попытался сделать код как можно более ясным, но если есть что-то, в чем вы не уверены, объясните. Я не очень хорошо знаком с тем, как работают потоки, но считаю, что все, что с ними связано, находится в пакете «control». Есть много классов, поэтому вместо того, чтобы размещать здесь код, я помещаю все на github:

https://github.com/Thormind/Raycasting-engine.git

Вот изображение профилирования потоков. В остальном все остальное (память, процессор) в порядке.

enter image description here

1 Ответ

2 голосов
/ 18 июня 2020

Go в дерево вызовов, запись данных ЦП и установка селектора состояния потока на «Блокировка», после чего вы увидите, в каких стеках вызовов происходит блокировка.

Доступен подробный анализ ситуаций блокировки в разделе просмотра «Мониторы и замки».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...