Акула: как отфильтровать до одного конкретного метода - PullRequest
5 голосов
/ 28 ноября 2008

Я новичок в Shark, и мне было интересно, можно ли сузить временную выборку до одного конкретного метода?

Допустим, я бы хотел просто знать, сколько ресурсов было использовано для вызова метода count для всех экземпляров NSArray (или подклассов).

Ответы [ 3 ]

2 голосов
/ 29 ноября 2008

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

1 голос
/ 16 мая 2010

Вы можете нажать cmd-f для поиска символа. Убедитесь, что флажок «авторазвернуть» включен, чтобы он опустился в дерево. Возможно, вам потребуется включить Window -> Показать дополнительные настройки.

Как только вы найдете символ, щелкните правой кнопкой мыши на нем, и у вас есть несколько вариантов:

  • Символ фокуса: это позволит вам отфильтровать только вызовы на выбранный вами символ и ниже

  • Сохранять Callstacks с помощью: это позволит вам увидеть все вызовы на символ и отфильтровать все остальное

Когда вы закончите, вы можете щелкнуть правой кнопкой мыши и "отменить фокус всех" или "восстановить все". Эти команды в конечном итоге изменяют раздел «извлечение данных из стека вызовов» в дополнительных настройках. Дурачиться с этим.

1 голос
/ 01 декабря 2008

Время, проведенное, по крайней мере, на уровне функций - это именно то, что дает вам Инструмент. С DTrace вы можете копать даже глубже. Возможно оформить заказ в моем блоге об этом. Надеюсь, это должно прояснить ситуацию.

Вы можете легко написать сценарий DTrace, чтобы распечатать потребление памяти, например, для вызова count .

ура, Торстен

...