iOhYes Retired


A podcast by iOS developers for iOS developers, delivering news, tips, and rants for professional iOS/Mac developers, with something for enterprise and indie developers alike.

Hosted by Darryl Thomas and John Sextro.

← Previous Episode   |   Next Episode →

116: Jittery Moment

August 10, 2016 at 10:00AM • 51 minutes • Wiki Entry

Discussion: Time Profiler

  • But first: a brief rundown of the Instruments UI

    • Toolbar
      • Record/Stop
      • Pause
      • Target Selection
      • Status display
      • Strategy Selection
        • CPU data
        • Instrument data
        • Thread data
      • Detail/inspector toggles
    • Timeline
      • Plots data along the time your app was sampled
      • Can be filtered and zoomed
      • Disclosure arrow can toggle display of just the current run or of all runs in the trace document
    • Detail
      • Contents vary by Instrument, but this will generally be a table with some representation of the sampled data
    • Inspectors
      • Record Settings
      • Display Settings
      • Extended detail (often the heaviest stack trace)
  • What is Time Profiler?

    • An Instrument providing sample-based analysis of an application’s activity
    • Periodically samples the call stack to determine where an app is spending its time
      • These are instantaneous samples. They don’t track the duration of a function call, but rather how many times when sampled was the application currently in said function call.
      • No distinction between a fast function called many times and a slow function called few times
      • Extremely fast functions may not get sampled at all, if they happen to occur in between samples
    • Provides a detail view listing call trees, optionally separated by thread and/or state, allowing the developer to drive down into calls to identify areas that may need to be optimized
      • Weight - Percentage of samples in which a function appeared and an aggregate summary of samples (count * sample interval)
      • Self Weight - Aggregate summary of samples in which the function was at the top of the call stack
      • Symbol Name - The thing represented in the current row (may be a function, method, closure/block, thread, or app)
      • Category
      • Additional columns available:
        • Count
        • Self Count
        • Library




Alternative show title suggestions

  • Try harder
  • n squared complexity
  • my code, vs not my code
  • expected or unexpected
  • notion of runs

This episode sponsored by Braintree

Show Notes & Links Presented by CacheFly

Tweet Shoutouts