Почему при подключенном отладчике контексты ускоренного видео инициализируются медленно? - PullRequest
0 голосов
/ 25 августа 2011

Я заметил, что когда я запускаю программу, которая устанавливает пару разных фреймов с контекстами OpenGL, она обычно открывается почти мгновенно, но настройка контекста, похоже, занимает около одной секунды на фрейм, если я запускаю ее под отладчик. Я вижу один и тот же эффект как в отладчике Delphi, так и в отладчике Visual Studio, так что, похоже, это общая проблема, а не специфичная для одной IDE. Я также слышал сообщения о подобных замедлениях, когда ускоренная видеосистема основана на D3D, что наводит меня на мысль, что она не специфична для OpenGL.

Кто-нибудь знает, почему отладчик, подключенный в общем случае, вызывает ускоренную инициализацию контекстов видео в целом?

Ответы [ 3 ]

1 голос
/ 27 августа 2011

При запуске под отладчиком используется специальная отладочная версия кучи. Это может быть то, что замедляет вашу программу. Подробнее здесь, в том числе инструкции о том, как его отключить. http://msdn.microsoft.com/en-us/library/ff538841(v=VS.85).aspx

0 голосов
/ 27 августа 2011

У меня возникли проблемы с пониманием вопроса, что именно вы подразумеваете под «настройкой контекста», когда мы говорим об OpenGL / DirectX? Какие конкретные вызовы в коде кажутся медленнее при запуске под отладчиком? Может ли быть так, что «настройка контекста» включает загрузку нескольких библиотек DLL , которые отслеживаются и сильно замедляются с помощью отладчика, особенно в новых Delphi IDE?

Для справки, я не думаю, что когда-либо сталкивался с вашей проблемой ни в одном из моих проектов OpenGL (Delphi 7 и более ранних) или Direct3D (Delphi 2009 и более поздних).

0 голосов
/ 25 августа 2011

Он просто инициализируется медленно или также работает медленно?

Я могу представить, что он может одновременно загружать отладочную версию драйвера openGL или DirectX с большим количеством отладочных ловушек, что займет больше времени.

И он также может запускать больше компонентов в программном драйвере, а не в аппаратном обеспечении - обычному отладчику сложно увидеть, что происходит внутри функции аппаратного ускорения, встроенной в графический чип!

...