Performance is an important design factor in all software products. If a program runs slowly or displays a spinning cursor, users are likely to become frustrated with the program and look for alternatives. Maintaining a reasonable level of performance requires some diligence on your part, but the earlier you start considering it, the easier it is to catch and fix problems.
Who Should Read This Document
Performance Overview is an essential guide for developers who are new to the area of software performance analysis. This document gives an overview of the factors that govern performance and offers an approach for identifying and fixing common performance problems. It also introduces you to the specific tools and documentation you can use to identify and fix performance problems.
Organization of This Document
This document has the following chapters:
Developing for Performance describes the factors that constitute performance and the approaches to achieving the best performance in your software.
Basic Performance Tips describes the common areas of your code to analyze and offers some fundamental performance techniques.
Performance Tools describes the available tools for doing a performance analysis of your program.
Doing an Initial Performance Evaluation walks you through the basics of some key tools and shows you how to use them to find performance problems.
If you have feedback about the documentation, you can provide it using the built-in feedback form at the bottom of every page.
If you encounter bugs in Apple software or documentation, you are encouraged to report them to Apple. You can also file enhancement requests to indicate features you would like to see in future revisions of a product or document. To file bugs or enhancement requests, go to the Bug Reporting page of the Apple Developer website:
To file bugs, you must be registered as an Apple Developer. You can obtain a login name for free by following the instructions on the Apple Developer Registration page.
In addition to this document, there are several documents that cover more specific aspects of performance. You should investigate these documents for detailed tips on how to analyze and solve performance problems.
Code Size Performance Guidelines offers advice on how to improve the memory footprint of your program.
Code Speed Performance Guidelines offers advice on how to tune your algorithms and find performance bottlenecks.
Drawing Performance Guidelines offers advice on how to optimize your program’s drawing-related code.
File-System Performance Guidelines offers advice on how to access files more efficiently.
Launch Time Performance Guidelines offers advice on how to speed up the launch time of your application.
Memory Usage Performance Guidelines offers advice on how to use memory more efficiently and on how to analyze your current memory usage.
Concurrency Programming Guide provides detailed information and examples about how to execute tasks in parallel.
64-Bit Transition Guide discusses the performance impacts of 64-bit binaries and provides guidance on when creating such binaries is appropriate.