Discussion: Time Profiler\n\n\nBut first: a brief rundown of the Instruments UI\n\n\nToolbar\n\n\nRecord/Stop\nPause\nTarget Selection\nStatus display\nStrategy Selection\n\n\nCPU data\nInstrument data\nThread data\n\n\nDetail/inspector toggles\n\n\nTimeline\n\n\nPlots data along the time your app was sampled\nCan be filtered and zoomed\nDisclosure arrow can toggle display of just the current run or of all runs in the trace document\n\n\nDetail\n\n\nContents vary by Instrument, but this will generally be a table with some representation of the sampled data\n\n\nInspectors\n\n\nRecord Settings\nDisplay Settings\nExtended detail (often the heaviest stack trace)\n\n\n\n\nWhat is Time Profiler?\n\n\nAn Instrument providing sample-based analysis of an application\u2019s activity\nPeriodically samples the call stack to determine where an app is spending its time\n\n\nThese are instantaneous samples. They don\u2019t track the duration of a function call, but rather how many times when sampled was the application currently in said function call.\nNo distinction between a fast function called many times and a slow function called few times\nExtremely fast functions may not get sampled at all, if they happen to occur in between samples\n\n\nProvides 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\n\n\nWeight - Percentage of samples in which a function appeared and an aggregate summary of samples (count * sample interval)\nSelf Weight - Aggregate summary of samples in which the function was at the top of the call stack\nSymbol Name - The thing represented in the current row (may be a function, method, closure/block, thread, or app)\nCategory\nAdditional columns available:\n\n\nCount\nSelf Count\nLibrary\n\n\n\n\n\n\n\n\n\nPicks\n\nJohn\n\n\nSelfControl\n\n\n\nDarryl\n\n\nWWDC 2016 Session 418 - Using Time Profiler in Instruments\n\n\n\nAlternative show title suggestions\n\n\nTry harder\nn squared complexity\nmy code, vs not my code\nexpected or unexpected\nnotion of runs