Jarrod Parkes

post English

Measuring App Performance with Logging

I watched an awesome WWDC video on measuring performance with logging this week, and I wanted to make sure I captured a few notes:

  • os_signpost can be used to measure performance
  • use “start” and “end” calls to denote the work you want measured
  • os_signpost calls can include a category, metadata, and ID so that work can be traced regardless of whether it is a sync or async task
  • you can also generate signpost events (called “points of interest”) to track when something occurs during a measured interval (ex: “started download”, “downloaded first/second/… image”, and “finished download”)
  • os_signpost use a log handle; you can disable/enable a log handle during initialization; disabled signpost calls essentially become a NOOP’s
  • when using the signpost profiling instrument, you can set the recording to a windowed mode so that you’re only collecting/caring about the last X minutes of signpost data
  • “points of interest” can be used like event logging in Firebase or anything else
  • you can create a custom profile/instrument so that you can shape the signpost data in a way which is most useful to you