Upload
ripeapps
View
289
Download
2
Tags:
Embed Size (px)
Citation preview
Profiling & Performancefor 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.
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.
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.
“Great programmers ship.”
– Managers everywhere
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.
“Premature optimization is the root of all evil”
– Knuth
Knuth said it. Enough said.
“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.
Items to note: the playback/recording metaphor; the purple chart shows CPU usage.
“Hide system libraries” is handy to hide all those pesky objc_msgSend() calls.
The high-level call tree view.
Annotated code view. Very handy.
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!