Jump To:
Leopard Reference Library
The performance of Mac OS X applications and hardware devices can be measured, evaluated, and optimized using Apple's developer tools, technologies, and programming interfaces. Developers can fine-tune their applications for high performance using tools such as the Shark code-profiling application, features such as multiprocessing, and APIs such as the one for the vDSP library.

A guided introduction to improving performance in Mac OS X software.   Essential information for improving the performance of developer applications.   API references, organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Resource Type
Sort by
Date
Leopard Technology Series for Developers: Graphics & Media Overview (HTML)
Describes Leopard's graphics and media capabilities.
Graphics & Imaging Articles 2007-12-11
MassiveImage (HTML) (DMG) (ZIP)
Shows how to use a CGDataProvider to save a very large image with Image IO
Graphics & Imaging Sample Code 2007-09-27
Maximizing Mac OS X Application Performance (HTML)
Learn how to achieve better performance on Mac OS X.
Graphics & Imaging Articles 2003-06-23
OpenGL Filter Basics Cocoa (HTML) (DMG) (ZIP)
How to use Objective-C and MVC design patterns in installing and utilizing filters in an OpenGL rendering pipeline
Graphics & Imaging Sample Code 2008-02-06
OpenGL Release Highlights - Mac OS X 10.3 Panther (HTML)
TN2131: Contains a list of bugs along with a short description on a release-by-release basis
Graphics & Imaging Technical Notes 2005-02-04
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Graphics & Imaging Technical Q&As 2000-11-08
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Graphics & Imaging Technical Q&As 2003-02-25
QuartzCache (HTML) (DMG) (ZIP)
Demonstrates several caching techniques using CGBitmapContext, CGImageRef re-use, CGLayerRefs, CGImageSource.
Graphics & Imaging Sample Code 2005-06-01
QuartzLines (HTML) (DMG) (ZIP)
Drawing Lines using Quartz's CGPath & CGContextStrokeLineSegments functions.
Graphics & Imaging Sample Code 2005-06-01
Real world profiling with the OpenGL Profiler (HTML)
TN2178: This document describes how to use OpenGL Profiler, a very powerful tool for your OpenGL development.
Graphics & Imaging Technical Notes 2008-09-16
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Graphics & Imaging Technical Q&As 2008-08-08
Specifiying if the CPU or the GPU should be used for rendering. (HTML)
QA1416: Which processor will be used for rendering in Core Image and how to affect it.
Graphics & Imaging Technical Q&As 2005-08-16
Synchronizing OpenGL rendering updates to the vertical refresh of the display (HTML)
QA1521: How to avoid tearing by synchronizing your rendering to the display VBL
Graphics & Imaging Technical Q&As 2007-07-16
Taking Advantage of the Accelerate Framework (HTML)
Learn how your application can run on PowerPC- or Intel-based Macs without processor-specific customization.
Graphics & Imaging Articles 2005-10-03
vDSP Examples (HTML) (DMG) (ZIP)
vDSP sample code
Graphics & Imaging Sample Code 2007-05-10
VelEng FFT (HTML) (DMG) (ZIP)
G4 Velocity Engine implementation of Fast Fourier Transform (FFT) and associated convolution/correlation routines.
Graphics & Imaging Sample Code 2003-01-14
VideoViewer (HTML) (DMG) (ZIP)
Simple example of video rendering using QuickTime visual contexts, OpenGL, Core Video and Core Image.
Graphics & Imaging Sample Code 2005-08-01
vImage Alpha Compositing Reference (HTML) (PDF)
Describes the programming interface for high-performance alpha compositing operations.
Graphics & Imaging Reference 2007-07-12
vImage Conversion Reference (HTML) (PDF)
Describes the programming interface for high performance image conversion operations.
Graphics & Imaging Reference 2007-07-12
vImage Convolution Reference (HTML) (PDF)
Describes the programming interface for high performance image convolution operations.
Graphics & Imaging Reference 2007-07-12
vImage Data Types and Constants Reference (HTML) (PDF)
Describes the data types and constants used by the vImage framework.
Graphics & Imaging Reference 2007-07-12
vImage Decompression Filtering Reference (HTML) (PDF)
Describes the programming interface for decompression filtering operations.
Graphics & Imaging Reference 2007-07-12
vImage Geometry Reference (HTML) (PDF)
Describes the programming interface for high performance geometric operations on images.
Graphics & Imaging Reference 2007-07-12
vImage Histogram Reference (HTML) (PDF)
Describes the programming interface for high performance image histogram operations.
Graphics & Imaging Reference 2007-07-12
vImage Morphology Reference (HTML) (PDF)
Describes the programming interface for high performance morphological operations on images.
Graphics & Imaging Reference 2007-07-12
vImage Programming Guide (HTML) (PDF)
Explains how to use the C programming interface for high-speed vector image processing.
Graphics & Imaging Guides 2008-10-15
vImage Reference Collection (HTML) (PDF)
Describes the C programming interface for high-performance image processing.
Graphics & Imaging Reference 2007-07-12
vImage Transform Reference (HTML) (PDF)
Describes the programming interface for high performance image transform operations.
Graphics & Imaging Reference 2007-07-12
Affinity API Release Notes for Mac OS X v10.5 (HTML)
Explains how to influence which CPU core runs a group of threads (for performance optimization).
Hardware & Drivers Release Notes 2007-10-31
BSDLLCTest (HTML) (DMG) (ZIP)
Program sample demonstrates how to send and receive raw LLC Ethernet packets.
Hardware & Drivers Sample Code 2003-06-12
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Hardware & Drivers Technical Q&As 2008-09-16
dist_fft (HTML) (DMG) (ZIP)
Gigaelement FFTs on Apple G5 clusters
Hardware & Drivers Sample Code 2004-08-23
I/O Kit Fundamentals (HTML) (PDF)
The basics of developing device drivers. Includes descriptions of I/O Kit families.
Hardware & Drivers Guides 2007-05-17
Memory Usage Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of memory-related code.
Hardware & Drivers Guides 2006-06-28
Optimization Strategies for Mac OS X (HTML)
TN1174: Achieving the best possible performance in your applications.
Hardware & Drivers Technical Notes 1999-09-01
OTScheduleDeferredTask When Task Running (HTML) (日本語 HTML)
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Hardware & Drivers Technical Q&As 1997-10-13
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Hardware & Drivers Technical Q&As 2006-02-22
Sleep vs. Doze on Mac OS X (HTML)
QA1309: Discusses and demonstrates sleep versus doze detection on Machintosh Mac OS X
Hardware & Drivers Technical Q&As 2003-10-09
Thermal considerations for Mac Pro FB-DIMMs (HTML)
TN2156: Design considerations and specifications for the AMB and Heat spreader for the Mac Pro
Hardware & Drivers Technical Notes 2006-11-10
VelEng FFT (HTML) (DMG) (ZIP)
G4 Velocity Engine implementation of Fast Fourier Transform (FFT) and associated convolution/correlation routines.
Hardware & Drivers Sample Code 2003-01-14
64-Bit Transition Guide (HTML) (PDF)
Describes the 64-bit features available in Mac OS X.
High Performance Computing Guides 2008-04-08
Introduction to MPI Distributed Programming on Mac OS X (HTML)
Learn how to create tightly coupled, distributed algorithms to run on multiple computers using MPI.
High Performance Computing Articles 2005-02-14
MultiprecisionFP (HTML) (DMG) (ZIP)
How to utilize the gmp and arprec multiprecision floating point packages on Mac OS X
High Performance Computing Sample Code 2007-03-26
SIMD Primer (HTML) (DMG) (ZIP)
Introduction to using SIMD/SSE
High Performance Computing Sample Code 2008-06-06
Test64BitMultiprec (HTML) (DMG) (ZIP)
Implements (PPC) A*Y+B where A & B are arrays of 64-bit words and Y is a 64-bit integer
High Performance Computing Sample Code 2006-06-09
Tiger Developer Overview Series: Developing 64-bit Applications (HTML)
Learn how Mac OS X Tiger breaks the limitations of 32-bit computing.
High Performance Computing Articles 2004-12-20
Universal Binary Programming Guidelines, Second Edition (HTML) (PDF)
Conceptual information and tips for writing code that runs on PowerPC-based and Intel-based Macintosh computers.
High Performance Computing Guides 2009-02-04
vDSP Examples (HTML) (DMG) (ZIP)
vDSP sample code
High Performance Computing Sample Code 2007-05-10
VelEng Multiprecision (HTML) (DMG) (ZIP)
An implementation of arbitrary precision arithmetic using the PowerPC Velocity-Engine (G4) vector instructions.
High Performance Computing Sample Code 2003-01-14
Xgrid Foundation Reference (HTML)
Describes the API for monitoring and controlling Xgrid cluster operations.
High Performance Computing Reference 2005-06-04
Xgrid Programming Guide (HTML) (PDF)
Explains how to create client applications that use Xgrid, Apple's parallel multiprocessing technology.
High Performance Computing Guides 2007-10-31
Xgrid: High Performance Computing for the Rest of Us (HTML)
Learn how mathematicians and scientists are making the most of Xgrid's power and easy setup.
High Performance Computing Articles 2004-03-29
Xsan Programming Guide (HTML) (PDF)
Describes managing files and storage pools with Xsan.
High Performance Computing Guides 2006-05-23
AltiVec/SSE Migration Guide (HTML) (PDF)
Explains how to convert PowerPC AltiVec code to Intel SSE code.
Intel-Based Macs Guides 2005-09-08
GCC Porting Guide (HTML) (PDF)
Provides guidance on how to migrate projects to new GCC releases.
Intel-Based Macs Guides 2006-10-03
SIMD Primer (HTML) (DMG) (ZIP)
Introduction to using SIMD/SSE
Intel-Based Macs Sample Code 2008-06-06
Universal Binary Programming Guidelines, Second Edition (HTML) (PDF)
Conceptual information and tips for writing code that runs on PowerPC-based and Intel-based Macintosh computers.
Intel-Based Macs Guides 2009-02-04
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Java Technical Q&As 2008-09-16
Fractal Performance (HTML) (DMG) (ZIP)
Three fractal applications that show various bottlenecks and how they can be fixed.
Java Sample Code 2006-04-17
JavaSplashScreen (HTML) (DMG) (ZIP)
Deprecated - Quickly display a splash screen while instantiating the 1.4.x/1.5 JVM from a Cocoa application.
Java Sample Code 2006-04-12
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Multiprocessing Technical Q&As 2008-09-16
Introduction to MPI Distributed Programming on Mac OS X (HTML)
Learn how to create tightly coupled, distributed algorithms to run on multiple computers using MPI.
Multiprocessing Articles 2005-02-14
MPDelayUntilTest (HTML) (DMG) (ZIP)
Tests and demonstrates the MT/MP MPDelayUntil API.
Multiprocessing Sample Code 2003-10-27
MPFileCopy (HTML) (DMG) (ZIP)
Demonstrates how to copy a folder and its contents using the HFS Plus APIs from an MP task.
Multiprocessing Sample Code 2003-01-14
MPPeriodicalTest (HTML) (DMG) (ZIP)
Tests and demonstrates the MT/MP timers.
Multiprocessing Sample Code 2003-10-27
Porting Multithreaded Applications from Win32 to Mac OS X (HTML)
Learn how Mac OS X handles multithreading, before porting your Win32 application.
Multiprocessing Articles 2005-06-20
Threading Programming Guide (HTML) (PDF)
Explains how to use threads in Cocoa applications.
Multiprocessing Guides 2008-02-08
Xgrid Foundation Reference Update (HTML) (PDF)
Summarizes the symbols added to the Xgrid Foundation framework.
Multiprocessing Release Notes 2007-07-18
Xgrid Programming Guide (HTML) (PDF)
Explains how to create client applications that use Xgrid, Apple's parallel multiprocessing technology.
Multiprocessing Guides 2007-10-31
Deploying Mac OS X Server for High Performance Computing (PDF)
Explains how to configure Mac OS X Server for computational clustering.
Storage Guides 2005-10-04
File-System Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of file-related code.
Storage Guides 2005-07-07
Xsan 2 Administrator's Guide (PDF)
Explains how to set up and manage Xsan volumes in a storage area network.
Storage Guides 2008-06-09
Xsan 2 Setup Guide (PDF)
Explains how to set up a volume on a storage area network (SAN) using Xsan 2.
Storage Guides 2008-06-09
Xsan Programming Guide (HTML) (PDF)
Describes managing files and storage pools with Xsan.
Storage Guides 2006-05-23
Xsan Reference (HTML) (PDF)
Describes the Xsan API commands.
Storage Reference 2006-05-23
Code Size Performance Guidelines (HTML) (PDF)
Guidelines for reducing the size of an application binary.
Tools Guides 2006-06-28
Code Speed Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance and efficiency of code.
Tools Guides 2005-07-07
Common QA and Roadmap for USB Software Development on Mac OS X (HTML)
QA1370: Roadmap for development of USB Software on Mac OS X and some Common Questions and Answers
Tools Technical Q&As 2006-02-28
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Tools Technical Q&As 2008-09-16
File-System Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of file-related code.
Tools Guides 2005-07-07
GDB for MacsBug Veterans (HTML)
TN2030: Translate your experience with MacsBug into a working knowledge of the GNU source-level debugger (GDB).
Tools Technical Notes 2001-10-18
Improving Your Software with Xcode andStatic Code Analysis Techniques (HTML)
Learn about static analysis and get started using it with an Xcode project.
Tools Articles 2006-07-10
Launch Time Performance Guidelines (HTML) (PDF)
Guidelines for improving the launch performance of an application.
Tools Guides 2006-04-04
Mac OS X 10.2 (HTML)
TN2053: Describes software development-related changes provided in system software update Mac OS X 10.2.
Tools Technical Notes 2002-09-04
Mac OS X: v10.1.1 - v10.1.3 (HTML)
TN2043: Describes changes provided by system software updates 10.1.1 through 10.1.3.
Tools Technical Notes 2002-03-06
Maximizing Mac OS X Application Performance (HTML)
Learn how to achieve better performance on Mac OS X.
Tools Articles 2003-06-23
Memory Usage Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of memory-related code.
Tools Guides 2006-06-28
Optimizing with Shark: Big Payoff, Small Effort (HTML)
Learn to improve your application's performance by sampling a real application using Shark.
Tools Articles 2004-01-19
Optimizing Your Application with System Trace in Shark 4 (HTML)
See how your code interacts with Mac OS X using the power of Shark.
Tools Articles 2006-01-30
Optimizing Your Applications with Shark 4 (HTML)
Learn how using Shark 4 can help you dramatically improve performance in your application.
Tools Articles 2004-11-08
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Tools Technical Q&As 2001-10-25
Shark User Guide (HTML) (PDF)
Explains how to analyze code performance by profiling the system.
Tools Guides 2008-04-14
Test64BitMultiprec (HTML) (DMG) (ZIP)
Implements (PPC) A*Y+B where A & B are arrays of 64-bit words and Y is a 64-bit integer
Tools Sample Code 2006-06-09
vDSP Examples (HTML) (DMG) (ZIP)
vDSP sample code
Tools Sample Code 2007-05-10
VelEng FFT (HTML) (DMG) (ZIP)
G4 Velocity Engine implementation of Fast Fourier Transform (FFT) and associated convolution/correlation routines.
Tools Sample Code 2003-01-14
Xcode Debugging Guide (HTML) (PDF)
Describes the Xcode debugging facilities and the recommended debugging techniques.
Tools Guides 2009-01-06
Accelerate Reference Update (HTML) (PDF)
Summarizes the symbols added to the Accelerate framework.
Vector Engines Release Notes 2007-07-18
Accelerate Release Notes (HTML)
Vector Engines Release Notes 2007-10-31
AltiVec/SSE Migration Guide (HTML) (PDF)
Explains how to convert PowerPC AltiVec code to Intel SSE code.
Vector Engines Guides 2005-09-08
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Vector Engines Technical Q&As 2008-09-16