Как профилировать свои собственные функции в C ++ и OpenGL? - PullRequest
4 голосов
/ 05 мая 2011

Есть ли что-нибудь легкое и простое для профилирования функций в C ++ / OpenGL?Все, что я мог найти, это gDEBugger.Просматривая документацию, я не могу найти способ сделать то, что я хочу.Позвольте мне объяснить ...

Как я уже говорил в других вопросах, у меня есть игра с защитными башнями.В настоящее время их всего 3, но этот номер настраивается.У меня есть одна функция рисования для всех башен (эта функция может вызывать другие функции, не имеет значения), и я хотел бы профилировать эту единственную функцию (для 3 башен, а затем снова увеличить число и профиль).Затем я хотел бы реализовать списки отображения для вышек, выполнить такое же профилирование и посмотреть, было ли какое-либо преимущество в использовании списков отображения для этой конкретной ситуации.

Какой инструмент профилирования вы рекомендуете для такой задачи?Если это имеет значение, я пишу код OpenGL в Windows с помощью Visual Studio 10. Или это можно сделать с помощью gDEBugger?Есть какие-нибудь указатели?

PS: я знаю, что списки отображения были удалены в OpenGL 3.1, но приведенное выше является лишь примером.

1 Ответ

3 голосов
/ 05 мая 2011

NVidia имеет такой же, как и AMD . А для Intel .

Для крупномасштабного мониторинга вы можете измерить время, необходимое для выполнения кадра от начала до после замены буфера или glFlush() / glFinish():

while( running )
{
    start_time = GetTimeInMS();

    RenderFrame();
    SwapGLBuffers();

    end_time = GetTimeInMS();

    cout << "Frame time (ms): " << (end_time - start_time) << end;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...