2013-11-28 3 views
7

Есть ли способ сравнить файлы трассировки, сохраненные с помощью инструментов. Как я могу сравнить любой способ относительно последовательной реализации сборки приложения.Сравнение трассировки Xcode Instruments

Lest's say Я выпускаю приложение для iPhone версии 1.0, а затем через 2 месяца 1.1. Что лучше всего иметь для сравнения профилей с точки зрения памяти и времени?

ответ

3

Вы можете сохранить файлы трассировки. Но чтобы разумно было интерпретировать эти результаты в будущем, полезно добавить «флаги» в свой след, отметить значимые события, чтобы вы могли узнать, что приложение делает в заметных точках трассировки.

В прошлом я предлагаю включить флаги, вставленные программно, поэтому у вас есть какая-то основа для сравнения в будущем, но это нарушено в iOS7. Но если вы используете это на тренажере с прошивкой до 7.0, вы можете:

  • Добавить DTPerformanceSession.framework в свой проект;

  • В вашем источнике:

    #import <DTPerformanceSession/DTSignalFlag.h> 
    
  • Затем в источнике, вы можете программно вставить флаги инструментов (при работе на предварительно iOS7 тренажере):

    // Point flag (just an event in time) 
    DTSendSignalFlag("some event", DT_POINT_SIGNAL, TRUE); 
    
    // Start flag (to mark the start of something) 
    DTSendSignalFlag("start some intensive process", DT_START_SIGNAL, TRUE); 
    
    // End flag (to mark the end of something) 
    DTSendSignalFlag("end some intensive process", DT_END_SIGNAL, TRUE); 
    
  • Удалить DTPerformanceSession.framework из ваш проект (процесс его добавления позволяет Xcode разрешать заголовок, но вы не хотите его хранить в своем проекте iOS, иначе вы получите ошибки связи).

Возможно, вы захотите сохранить копию соответствующих архивов, чтобы можно было повторно сопоставить файл трассировки в будущем.

Очевидно, что при профилировании в iOS7 вы можете добавлять флаги самостоятельно, но это просто не так элегантно или строго, как программно.

+0

Спасибо за ответ, к сожалению, мое приложение IOS 7 только. То, что вы говорите, заключается в том, что для того, чтобы увидеть разницу в трассе, я должен вручную изучить содержимое трассировки этих последовательных сборок. Разве нет «автоматического сравнения различий» для файлов трассировки. В противном случае отслеживание памяти и профилирования времени возможно только вручную. – user3017495

+0

После этого вам нужно перейти в Window> Manage Flags, а затем выбрать отображение сигнальных флагов, иначе вы их не увидите – Dov

+0

В более поздних версиях ОС мы можем теперь использовать «точки интереса». http://stackoverflow.com/a/39416673/1271826 – Rob

2

Лучший способ, что я выясняю это:

  1. Установите обе версии приложения на устройство
  2. Open Instruments.
  3. Нажмите кнопку «Библиотека» и добавьте, что вы хотите отслеживать. Для меня это выглядит так:

    • активность монитор
    • Отчисление
    • Time Profiler
    • Сетевой активность
    • Memory Monitor
  4. Выберите в качестве цели вашего устройства IOS. Затем ваше приложение для тестирования.

  5. Выполняйте поодиночке тот же сценарий на обеих версиях приложения.
  6. Теперь вы можете увидеть сравнение для ваших 2 подобных прогонов.
  7. Просто щелкните по любой строке, чтобы просмотреть сведения о пробеге.

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

Надеюсь, это поможет.

Для меня это выглядит так:

xcode-instruments-trace-comparison

Смежные вопросы