SlideShare a Scribd company logo
1 of 3
Download to read offline
Содержимое Time Profiler
1. График нагрузки (частота sample-в)
2. Данные (Profile/Samples)
3. Стек (Heaviest Stack Trace / Current Stack)
4. Потоки
Recording Options:
- High Frequency - высокая частота sample-в
- Record Waiting Threads - учитывать потоки в режиме ожидания
Points of Interest
Помогает отметить важные участки из кода приложения.
iOS 15+
let signposter = OSSignposter()
let signpostID = signposter.makeSignpostID()
let state = signposter.beginInterval("processRequest", id: signpostID)
...
signposter.endInterval("processRequest", state)
iOS 12+ (“Deprecated”)
static let log = OSLog(subsystem: "boot", category: .pointsOfInterest)
os_signpost(.begin, log: .points, name: "Boot")
...
os_signpost(.end, log: .points, name: "Boot")
iOS 10+ (“Deprecated”)
kdebug_signpost_start(24, 0, 0, 0, 1)
...
kdebug_signpost_end(24, 0, 0, 0, 1)
Настройки:
(работает только для kdebug_signpost_)
Ссылки:
https://www.raywenderlich.com/16126261-instruments-tutorial-with-swift-getting-started
https://www.youtube.com/watch?v=5hPbdnPaTv4
(Осторожно - 2016й год)
Signpost:
https://developer.apple.com/videos/play/wwdc2018/405/
https://www.donnywals.com/measuring-performance-with-os_signpost/
Под капот:
https://habr.com/ru/company/avito/blog/597417/

More Related Content

Similar to Time Profiler - главный инструмент нашего Xcode-ансамбля!

CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)Dmitry Evteev
 
Я построю свой профайлер!
Я построю свой профайлер!Я построю свой профайлер!
Я построю свой профайлер!Alexey Kovaliov
 
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep «Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep e-Legion
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кодаTatyanazaxarova
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаAndrey Karpov
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Ontico
 
Waits monitoring in PostgreSQL
Waits monitoring in PostgreSQLWaits monitoring in PostgreSQL
Waits monitoring in PostgreSQLIldus Kurbangaliev
 
SDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьSDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьCisco Russia
 
20110227 csseminar alvor_breslav
20110227 csseminar alvor_breslav20110227 csseminar alvor_breslav
20110227 csseminar alvor_breslavturbanoff
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
SAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationSAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationNikolay Samokhvalov
 
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Ontico
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorDevGAMM Conference
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonovComputer Science Club
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
 

Similar to Time Profiler - главный инструмент нашего Xcode-ансамбля! (20)

CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)
 
Я построю свой профайлер!
Я построю свой профайлер!Я построю свой профайлер!
Я построю свой профайлер!
 
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep «Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кода
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кода
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
 
Waits monitoring in PostgreSQL
Waits monitoring in PostgreSQLWaits monitoring in PostgreSQL
Waits monitoring in PostgreSQL
 
SDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьSDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использовать
 
20110227 csseminar alvor_breslav
20110227 csseminar alvor_breslav20110227 csseminar alvor_breslav
20110227 csseminar alvor_breslav
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
SAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationSAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentation
 
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
 
Aspect Oriented Approach
Aspect Oriented ApproachAspect Oriented Approach
Aspect Oriented Approach
 
JavaDay'14
JavaDay'14JavaDay'14
JavaDay'14
 
Devcamp nodejs-2010
Devcamp nodejs-2010Devcamp nodejs-2010
Devcamp nodejs-2010
 
Суперсилы Chrome developer tools
Суперсилы Chrome developer toolsСуперсилы Chrome developer tools
Суперсилы Chrome developer tools
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
 
20110227 csseminar alvor_breslav
20110227 csseminar alvor_breslav20110227 csseminar alvor_breslav
20110227 csseminar alvor_breslav
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 

Time Profiler - главный инструмент нашего Xcode-ансамбля!

  • 1. Содержимое Time Profiler 1. График нагрузки (частота sample-в) 2. Данные (Profile/Samples) 3. Стек (Heaviest Stack Trace / Current Stack) 4. Потоки Recording Options: - High Frequency - высокая частота sample-в - Record Waiting Threads - учитывать потоки в режиме ожидания
  • 2. Points of Interest Помогает отметить важные участки из кода приложения. iOS 15+ let signposter = OSSignposter() let signpostID = signposter.makeSignpostID() let state = signposter.beginInterval("processRequest", id: signpostID) ... signposter.endInterval("processRequest", state) iOS 12+ (“Deprecated”) static let log = OSLog(subsystem: "boot", category: .pointsOfInterest) os_signpost(.begin, log: .points, name: "Boot") ... os_signpost(.end, log: .points, name: "Boot") iOS 10+ (“Deprecated”) kdebug_signpost_start(24, 0, 0, 0, 1) ... kdebug_signpost_end(24, 0, 0, 0, 1) Настройки: (работает только для kdebug_signpost_)
  • 3. Ссылки: https://www.raywenderlich.com/16126261-instruments-tutorial-with-swift-getting-started https://www.youtube.com/watch?v=5hPbdnPaTv4 (Осторожно - 2016й год) Signpost: https://developer.apple.com/videos/play/wwdc2018/405/ https://www.donnywals.com/measuring-performance-with-os_signpost/ Под капот: https://habr.com/ru/company/avito/blog/597417/