Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Profiling & Performance for fun and profit (iOS)

Profiling & Performance for fun and profit (iOS)

A five minute lightning talk on the Time Profiler instrument for helping you squeeze the last bit of performance from your app.

Presented at #iOSTO in January 2012.


Greg Heo

April 18, 2012

More Decks by Greg Heo

Other Decks in Programming


  1. Profiling & Performance for fun and profit Greg Heo (@gregheo)

    11 January 2012 Hi there! @gregheo at the keys. These are the slides and presentation notes from my #iOSTO talk. Please feel free to get in touch if you have any questions or comments.
  2. Survey •Developers? •Instruments users? •Profiling enthusiasts? Survey shows: lots of

    developers; some instruments users (mostly using the “Leaks” tool); and only a handful of time profiling users.
  3. Why to not Profile? •You might not need to! iOS

    users demand excellent performance. Credit goes to Apple for a well-performing API too. We developers have very few excuses for poor performance.
  4. “Great programmers ship.” – Managers everywhere

  5. Why Profile? •The app is slow! Refactoring code (especially other

    people’s code) is what programmers love doing. Resist! Think bug/feature regression and possible delays.
  6. “Premature optimization is the root of all evil” – Knuth

    Knuth said it. Enough said.
  7. “Measure twice, cut once” – carpenters? You must have an

    objective measure. Re-factor and optimize the bottlenecks and hotspots to get the most value in terms of programmer time invested vs. outcome.
  8. None
  9. None
  10. Items to note: the playback/recording metaphor; the purple chart shows

    CPU usage.
  11. “Hide system libraries” is handy to hide all those pesky

    objc_msgSend() calls.
  12. The high-level call tree view.

  13. Annotated code view. Very handy.

  14. Summary •Profile, fix, profile again. •Ship the app already. Profile

    before and after to verify performance has indeed improved. Use the tools; they’re there to help!