Во-первых, это просто инструмент Sampler, на который вы смотрите. Шаблон драйвера OpenGL ES просто включает в себя инструмент сэмплера и драйвер OpenGL ES. Он не имеет ничего общего с OpenGL ES.
Инструмент Sampler и Time Profiler различаются по способу сбора данных. Из Инструкции пользователя :
Инструмент Time Profiler и
Сэмплерные приборы похожи, но
Есть некоторые различия:
Time Profiler собирает данные обратной трассировки так же, как Shark, из
пространство ядра. Сэмплер, с другой
рука, собирает данные из пространства пользователя.
Следовательно, Time Profiler является более
эффективнее, чем Sampler при сборе
данные.
Примечание: Time Profiler (и Shark) могут выдавать неточные данные обратного следа, если
целевой процесс оптимизирован, чтобы пропустить
указатели кадра.
Time Profiler может собирать данные из одного или всех процессов. Сэмплер может только
образец одного процесса.
Time Profiler может выполнять выборку всех состояний потоков или только работающих потоков.
Сэмплер всегда пробует всю нить
состояния. Как правило, вы заинтересованы
в бегущих темах. Когда ваш
приложение зависло, вы хотите
проверить все состояния потока.
Я предпочитаю использовать Time Profiler самостоятельно, с подходящим интеллектуальным анализом данных, таким как загрузка библиотек или методов для вызывающих абонентов.
Что касается профилирования приложения OpenGL ES, вам сначала нужно взглянуть на различные статистические данные, которые можно включить в инструменте драйвера OpenGL ES. Нажмите i справа от названия инструмента, чтобы открыть всплывающее окно, затем нажмите Configure, чтобы показать список возможных статистических данных, которые вы можете регистрировать. В частности, посмотрите статистику использования Tiler Utilization и Renderer. Включите те, которые вы хотите, вернитесь к предыдущему экрану и установите флажки, чтобы убедиться, что они зарегистрированы.
Если ваше приложение максимально увеличивает статистику использования тайлера , вы ограничены размером вашей геометрии. Сделайте все возможное, чтобы уменьшить это (используя некоторые из советов, которые я упоминаю здесь ), и вы увидите значительное повышение производительности. С другой стороны, если вы достигли максимального значения Renderer Utilization, у вас ограниченная скорость заполнения, и вам может потребоваться отключить MSAA, настроить фрагментные шейдеры (если используется OpenGL ES 2.0) или уменьшить размер области. Вы рендерите, между прочим.
Кроме того, запустите ваше приложение на устройстве с iOS 4.0 и используйте новый инструмент OpenGL ES Analyzer, который поставляется с Xcode 4. Этот инструмент отлично подходит для предложения горячих точек в коде рендеринга или потери производительности из-за избыточных вызовов состояния, и т.д.
Глядя на ваши конкретные данные трассировки, кажется, что вы тратите очень много времени на копирование геометрии в графический процессор. Я бы посмотрел на использование объекта буфера вершин (VBO), чтобы значительно уменьшить это.