English |  Español |  Français |  Italiano |  Português |  Русский |  Shqip

Intermediate iOS Development

Performance

Performance is an interesting concept. In common usage, performance means speed, and for years the solution to any performance problem has been hardware: faster chips, faster drives, and more recently, more cores.

chips, faster drives, and more recently, more cores.

However, another way to think of performance is the optimal usage of all available resources, not just running fast. iOS devices are closed systems that come with fixed processor capabilities and memory. Even if they were open, and you could add more or faster hardware, there remains the issue of battery life. Unlike desktops, or even laptops, there is no tethered generating plant with a mobile device. Power is one of the most constraining of mobile resources.

Then there is the more general problem of determining whether something is a performance issue or a bug. For instance, is a memory leak a bug or a waste of a resource?

In other words, performance is not the one-dimensional issue it might appear to be at first glance. Fortunately, Apple provides a number of tools that enable you to tackle performance from more than one perspective. Foremost among these tools is Instruments. Instruments itself offers several runtime performance measurement tools such as CPU activity, threads and processes, file-level access, and graphic analysis. In addition to Instruments, Apple includes a first-class static analysis tool built in to the Clang compiler that can detect a number of problems before your code is even run.

Although it would be nice if any given book on performance tuning would directly answer whatever performance problem you are currently facing, the chances of that happening are pretty much nil. Reality does not work that way for most of us. Instead, the best we can do is find a book that shows us how to identify problems using the tools at hand and provides some general guidelines on how to solve them. iPhone Application Tune-Up does a nice job of fulfilling this need.

  • iPhone Application Tune-Up, by Loyal Moses, Packt Publishing
    • Chapter 1, “Performance, Bottlenecks, and Fundamentals”
    • Chapter 2, “Design for Performance”
    • Chapter 5, “Performance Measurement and Benchmarking”
    • Chapter 6, “Syntax and Process Performance”
    • Chapter 7, “Network Performance”
    • Chapter 8, “Memory Performance”
    • Chapter 9, “Application and Object Lifecycles”
    • Chapter 10, “Animation, View, and Display Performance

[05:00]

You can think of Pro iOS Apps Performance Optimization as an alternative to Moses’ iPhone Application Tune-Up, but you should definitely read Chapter 2, “Benchmark Your Apps with Tools: Simulators and Real Device Test.” Do not set yourself up for any surprises.

[06:20]

While very much a Cocoa-oriented book, Dalrymple has a section on power consumption and display brightness on iOS devices that is a must-read. That book also provides some excellent insights (that apply regardless of platform) into performance bottlenecks and ways to solve them from a master Mac programmer..

[01:20]

Apple has moved away from GCC to the Clang-LLVM compiler. To learn more, you may want to read this supplemental chapter.

[00:15]

There has been error in communication with Booktype server. Not sure right now where is the problem.

You should refresh this page.