Профилирование кода C ++, работающего на устройстве iOS с использованием инструментов

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

введите описание изображения здесь

Ясно, что вызовы powf занимают большую часть процессорного времени, однако я не могу найти, как определить, какие вызовы powf являются самыми большими нарушителями в моем коде. Я клянусь, что когда я использовал акулу, было очень легко получить номера строк для звонков в источнике. Все, что я могу получить от приборов, это ерунда машинного кода.

Расширяя powf Треугольник дает следующее. , , ,

введите описание изображения здесь

1

Решение

Казалось бы, код, содержащий вызовы powf является частью функции обратного вызова, которую вы передаете в CoreAudio. Инструменты, кажется, не могут символизировать цепочку вызовов для обратного вызова, поэтому вы просто видите необработанные адреса в коде. Это может быть можно идентифицировать эти адреса с помощью подходящего инструмента (например, otoolили аналогичный), но лучшей стратегией в долгосрочной перспективе было бы внедрение тестового жгута, который вызывает ваш код обратного вызова в цикле с фиктивными данными — это, скорее всего, окупится, когда вы будете использовать его для будущих действий по отладке и профилированию. Обратите внимание, что для удобства вы можете просто создать тестовый жгут как исполняемый файл Mac OS X для профилирования / отладки, поскольку ошибки и узкие места производительности, скорее всего, будут похожи на обеих платформах, по крайней мере, в первом приближении.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]