Почему SDL_PollEvent такой медленный? - PullRequest
0 голосов
/ 31 октября 2019

Я программировал эмулятор как побочный проект и сейчас нахожусь в точке, где я занимаюсь эффективностью. Мне удалось избавиться от всех медленных вещей, которые я делал, таких как множество SDL_RenderDrawPoint, но теперь я застрял.

Мне удалось сузить его до SDL_PollEvent. Я упростил мой основной цикл и цикл обработки событий, чтобы они выглядели как простое руководство по SDL. Когда я комментирую цикл обработки событий, эмулятор работает очень быстро. Я также использовал профилировщик производительности Visual Studio для проверки, и, конечно же, SDL_PollEvent занимает ~ 94% времени процессора.

slow SDL_PollEvent

Местогде мой эмулятор делает все свое, находится в ppuNptr->cycle(), который занимает всего 1,48%.

К сожалению, я не могу повторить это в другом проекте, поэтому я в растерянности.

Есть ли что-то, что я должен сделать перед опросом событий?

Как еще можно отладить это?

В настоящее время я нахожусь на Windows 10 с Visual Studio 2019 и SDL 2.0.10.

...