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
Sort by
Topic
Sort by
Resource Type
Sorted by
Date
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, Intel-Based Macs Guides 2009-02-04
vDSP Single-Vector Operations Reference (HTML) (PDF)
This document describes the C API for performing common routines on a single vector in vDSP.
Carbon, Vector Engines Reference 2009-01-07
vDSP Correlation, Convolution, and Filtering Reference (HTML) (PDF)
Describes an interface for performing correlation, convolution, and filtering operations on real or complex signals.
Carbon, Vector Engines Reference 2009-01-06
vDSP Matrix Operations Reference (HTML) (PDF)
Describes an interface for matrix arithmetic operations.
Carbon, Vector Engines Reference 2009-01-06
vDSP One-Dimensional Fast Fourier Transforms Reference (HTML) (PDF)
Describes an interface for performing one-dimensional fast Fourier transforms on an input signal.
Carbon, Vector Engines Reference 2009-01-06
vDSP Vector-To-Scalar Operations Reference (HTML) (PDF)
Describes functions that receive a vector as input and compute scalars as output.
Carbon, Vector Engines Reference 2009-01-06
vDSP Vector-to-Vector Arithmetic Operations Reference (HTML) (PDF)
Describes functions that receive a vector as input and return a vector as output.
Carbon, Vector Engines Reference 2009-01-06
vecLib Framework Reference (HTML) (PDF)
Describes the C API for vector mathematical functions in the vecLib subframework of the Accelerate framework.
Carbon, General, Vector Engines Reference 2009-01-06
Xcode Debugging Guide (HTML) (PDF)
Describes the Xcode debugging facilities and the recommended debugging techniques.
Tools Guides 2009-01-06
NSAutoreleasePool Class Reference (HTML) (PDF)
Describes the interface to the deferred-release mechanism in Cocoa's reference-counted memory management system.
Cocoa Reference 2009-01-02
vDSP Two-Dimensional Fast Fourier Transforms Reference (HTML) (PDF)
Improved function discussions and corrections.
Carbon, Vector Engines Reference 2008-11-19
vDSP Reference Collection (HTML) (PDF)
Describes the vDSP programming interface defined in the Accelerate framework for digital signal processing.
Vector Engines Reference 2008-10-15
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
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.
Audio, Carbon, Cocoa, Core Foundation, Darwin, Graphics & Imaging, Hardware & Drivers, Java, Multiprocessing, Tools, Vector Engines Technical Q&As 2008-09-16
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.
Carbon, Cocoa, Graphics & Imaging Technical Q&As 2008-08-08
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
SIMD Primer (HTML) (DMG) (ZIP)
Introduction to using SIMD/SSE
High Performance Computing, Intel-Based Macs, Vector Engines Sample Code 2008-06-06
URL CacheInfo (HTML) (DMG) (ZIP)
Demonstrates resource caching behavior using the Cocoa URL loading system.
Cocoa Sample Code 2008-06-05
Shark User Guide (HTML) (PDF)
Explains how to analyze code performance by profiling the system.
Tools Guides 2008-04-14
64-Bit Transition Guide (HTML) (PDF)
Describes the 64-bit features available in Mac OS X.
Darwin, High Performance Computing Guides 2008-04-08
NSRunLoop Class Reference (HTML) (PDF)
Describes the object that manages events on a thread.
Cocoa Reference 2008-02-08
Threading Programming Guide (HTML) (PDF)
Explains how to use threads in Cocoa applications.
Carbon, Cocoa, Core Foundation, Multiprocessing Guides 2008-02-08
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
GeekGameBoard (HTML) (DMG) (ZIP)
Shows how to use Core Animation for the user interface of a board or card game.
Graphics & Imaging Sample Code 2007-12-19
64-Bit Guide for Carbon Developers (HTML) (PDF)
Explains the changes necessary to create a 64-bit executable version of a Carbon application.
Carbon Guides 2007-12-11
Leopard Technology Series for Developers: Graphics & Media Overview (HTML)
Describes Leopard's graphics and media capabilities.
Graphics & Imaging Articles 2007-12-11
Accelerate Release Notes (HTML)
Vector Engines Release Notes 2007-10-31
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).
Darwin, Hardware & Drivers Release Notes 2007-10-31
CoreFoundation Framework Release Notes (HTML)
Core Foundation Release Notes 2007-10-31
Xgrid Programming Guide (HTML) (PDF)
Explains how to create client applications that use Xgrid, Apple's parallel multiprocessing technology.
High Performance Computing, Multiprocessing Guides 2007-10-31
Cocoa OpenGL (HTML) (DMG) (ZIP)
Demonstrates using Cocoa with OpenGL, including window setup and event handling.
Graphics & Imaging Sample Code 2007-10-22
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
Accelerate Reference Update (HTML) (PDF)
Summarizes the symbols added to the Accelerate framework.
Vector Engines Release Notes 2007-07-18
Xgrid Foundation Reference Update (HTML) (PDF)
Summarizes the symbols added to the Xgrid Foundation framework.
Darwin, Multiprocessing Release Notes 2007-07-18
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
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 Reference Collection (HTML) (PDF)
Describes the C programming interface for high-performance image processing.
Graphics & Imaging, Vector Engines 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
vDSP Complex Vector Conversion Reference (HTML) (PDF)
Describes functions that convert complex vectors between interleaved and split forms.
Carbon, Vector Engines Reference 2007-06-15
vDSP Vector Scalar Arithmetic Operations Reference (HTML) (PDF)
Describes vDSP functions that perform arithmetic operations combining a scalar with each element of a vector.
Carbon, Vector Engines Reference 2007-06-15
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
vDSP Examples (HTML) (DMG) (ZIP)
vDSP sample code
Graphics & Imaging, High Performance Computing, Tools, Vector Engines Sample Code 2007-05-10
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
RecordAudioToFile (HTML) (DMG) (ZIP)
Demonstrates recording audio to an AAC file using Core Audio
Audio Sample Code 2007-02-27
NSAssertionHandler Class Reference (HTML) (PDF)
Describes the facility for handling false assertions.
Cocoa Reference 2007-02-22
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
Enabling multi-threaded execution of the OpenGL framework (HTML)
TN2085: OpenGL on Intel-based Macintosh systems can use multi-threading to increase the performance of CPU-bound OpenGL-based applications.
Graphics & Imaging Technical Notes 2006-11-07
GCC Porting Guide (HTML) (PDF)
Provides guidance on how to migrate projects to new GCC releases.
Intel-Based Macs Guides 2006-10-03
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
General Guides 2006-10-03
FBOBunnies (HTML) (DMG) (ZIP)
Demonstrates how to use framebuffer objects (FBO)
Graphics & Imaging Sample Code 2006-09-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
Code Size Performance Guidelines (HTML) (PDF)
Guidelines for reducing the size of an application binary.
Carbon, Cocoa, Tools Guides 2006-06-28
Memory Usage Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of memory-related code.
Carbon, Cocoa, Core Foundation, Hardware & Drivers, Tools Guides 2006-06-28
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, Tools, Vector Engines Sample Code 2006-06-09
Xsan Programming Guide (HTML) (PDF)
Describes managing files and storage pools with Xsan.
High Performance Computing, Storage Guides 2006-05-23
Xsan Reference (HTML) (PDF)
Describes the Xsan API commands.
Storage Reference 2006-05-23
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
Drawing Performance Guidelines (HTML) (PDF)
Guidelines for improving the speed of drawing code.
Graphics & Imaging Guides 2006-04-04
Launch Time Performance Guidelines (HTML) (PDF)
Guidelines for improving the launch performance of an application.
Carbon, Cocoa, Tools Guides 2006-04-04
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
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
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
Coalesced Updates (HTML)
TN2133: How to achieve the maxium frame rate in your Mac OS X application
Graphics & Imaging Technical Notes 2006-01-20
Debugging Graphics with QuartzDebug (HTML) (日本語 HTML)
QA1236: Explains how to use QuartzDebug to debug graphics issues.
Graphics & Imaging Technical Q&As 2006-01-12
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
Taking Advantage of the Accelerate Framework (HTML)
Learn how your application can run on PowerPC- or Intel-based Macs without processor-specific customization.
Audio, Carbon, Cocoa, Graphics & Imaging, Vector Engines Articles 2005-10-03
AltiVec/SSE Migration Guide (HTML) (PDF)
Explains how to convert PowerPC AltiVec code to Intel SSE code.
Intel-Based Macs, Vector Engines Guides 2005-09-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
Cocoa Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of Cocoa applications.
Cocoa Guides 2005-08-11
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
Code Speed Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance and efficiency of code.
Carbon, Cocoa, Tools Guides 2005-07-07
File-System Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of file-related code.
Carbon, Cocoa, Storage, Tools Guides 2005-07-07
Porting Multithreaded Applications from Win32 to Mac OS X (HTML)
Learn how Mac OS X handles multithreading, before porting your Win32 application.
Carbon, Cocoa, Multiprocessing Articles 2005-06-20
vecLib Reference Update (HTML) (PDF)
Summarizes the symbols added to the vecLib framework.
Vector Engines Release Notes 2005-06-04
Xgrid Foundation Reference (HTML)
Describes the API for monitoring and controlling Xgrid cluster operations.
High Performance Computing Reference 2005-06-04
How can I optimize a Quartz Composer composition depending on the hardware it runs on? (HTML)
QA1433: Explains how to design compositions that adapt to the hardware limitations.
Graphics & Imaging Technical Q&As 2005-06-01
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
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, Multiprocessing Articles 2005-02-14
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
Tiger Developer Overview Series: Developing 64-bit Applications (HTML)
Learn how Mac OS X Tiger breaks the limitations of 32-bit computing.
Darwin, High Performance Computing Articles 2004-12-20
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
dist_fft (HTML) (DMG) (ZIP)
Gigaelement FFTs on Apple G5 clusters
Audio, Hardware & Drivers, Vector Engines Sample Code 2004-08-23
Using the 3DMixer Audio Unit (HTML)
TN2112: Discusses how to use Core Audio's 3DMixer version 2.0
Audio Technical Notes 2004-06-14
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
PowerPC Numerics (PDF)
Describes the Mac OS X numerics environment for implementing IEEE standards 754 and C99.
General Guides 2004-01-22
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
MapLargeFile (HTML) (DMG) (ZIP)
Shows a technique for mapping files greater than 4GB into memory for faster access.
Carbon, Cocoa, Core Foundation, Darwin Sample Code 2003-11-19
MPDelayUntilTest (HTML) (DMG) (ZIP)
Tests and demonstrates the MT/MP MPDelayUntil API.
Multiprocessing Sample Code 2003-10-27
MPPeriodicalTest (HTML) (DMG) (ZIP)
Tests and demonstrates the MT/MP timers.
Multiprocessing Sample Code 2003-10-27
Optimizing for the Power Mac G5 (HTML)
Learn how to optimize your code for the Power Mac G5.
Vector Engines Articles 2003-10-24
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
CopyBits vs. CopyMask (HTML) (DMG) (ZIP)
Deprecated - CopyBits (using a mask region) vs. CopyMask (using a mask BitMap). Which do you think is faster?
Carbon Sample Code 2003-07-22
Maximizing Mac OS X Application Performance (HTML)
Learn how to achieve better performance on Mac OS X.
Carbon, Cocoa, Graphics & Imaging, Tools Articles 2003-06-23
BSDLLCTest (HTML) (DMG) (ZIP)
Program sample demonstrates how to send and receive raw LLC Ethernet packets.
Hardware & Drivers Sample Code 2003-06-12
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
Graphics & Imaging Technical Q&As 2003-04-17
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Carbon, Cocoa, Graphics & Imaging Technical Q&As 2003-02-25
Ensuring Backwards Binary Compatibility - Weak Linking and Availability Macros on Mac OS X (HTML) (日本語 HTML)
TN2064: Ensuring that Mach-O applications built using today's Mac OS X runs on previous versions of the OS.
Carbon, Cocoa Technical Notes 2003-02-18
icon cache demo (HTML) (DMG) (ZIP)
Demonstrates the use of an icon cache to limit the search for icon resource to one resource file.
Carbon, Graphics & Imaging Sample Code 2003-01-30
Debugging Programming Topics for Core Foundation (HTML) (PDF)
Tips and techniques for debugging Core Foundation code.
Carbon Guides 2003-01-17
BlitNoVBL (HTML) (DMG) (ZIP)
Shows how to draw directly to the screen without syncing to the VBL of the monitor.
Graphics & Imaging Sample Code 2003-01-14
BlitVBL (HTML) (DMG) (ZIP)
Shows how to have Mac OS X try its best to sync to the VBL for you.
Graphics & Imaging Sample Code 2003-01-14
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
PThreadSorts (HTML) (DMG) (ZIP)
Applies various sorting algorithms to pictures using POSIX threads (pthreads) on Mac OS X.
Carbon Sample Code 2003-01-14
SharedMemory (HTML) (DMG) (ZIP)
Shows how multiple applications can access the same memory using the Unix shmget system call.
Cocoa Sample Code 2003-01-14
VelEng FFT (HTML) (DMG) (ZIP)
G4 Velocity Engine implementation of Fast Fourier Transform (FFT) and associated convolution/correlation routines.
Audio, Carbon, Graphics & Imaging, Hardware & Drivers, Tools, Vector Engines Sample Code 2003-01-14
VelEng Multiprecision (HTML) (DMG) (ZIP)
An implementation of arbitrary precision arithmetic using the PowerPC Velocity-Engine (G4) vector instructions.
High Performance Computing, Vector Engines Sample Code 2003-01-14
VelEng Wavelet (HTML) (DMG) (ZIP)
This demonstrates a Velocity Engine (G4) implementation of wavelet processing of color images
Vector Engines Sample Code 2003-01-14
Debugger Services Reference (HTML) (PDF)
Describes the C API for standard exception-handling and assertion functions used in Carbon applications.
Carbon Reference 2003-01-01
Error Handler Reference (HTML) (PDF)
Describes the C API for a Mac OS 9 service that assumes control when certain low-level system errors occur.
Carbon Reference 2003-01-01
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) (日本語 HTML)
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Carbon, Cocoa, Graphics & Imaging Technical Q&As 2002-12-04
Debugging Cocoa Applications (HTML) (PDF)
Tips and techniques for debugging Cocoa applications.
Cocoa Guides 2002-11-12
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
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Darwin, Tools Technical Q&As 2001-10-25
GDB for MacsBug Veterans (HTML)
TN2030: Translate your experience with MacsBug into a working knowledge of the GNU source-level debugger (GDB).
Carbon, Darwin, Tools Technical Notes 2001-10-18
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Graphics & Imaging Technical Q&As 2000-11-08
Optimization Strategies for Mac OS X (HTML)
TN1174: Achieving the best possible performance in your applications.
Carbon, 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.
Carbon, Cocoa, Hardware & Drivers Technical Q&As 1997-10-13
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Carbon, Cocoa Technical Q&As 1997-03-14
Using Temporary Memory with OpenPicture (HTML)
Deprecated - QD20: Provides several techniques of causing OpenPicture to allocate temporary memory for a picture handle.
Carbon Technical Q&As 1996-02-01
Error -151 and NewGWorld (HTML)
Deprecated - QD18: Explains what the error code -151 means when in NewGWorld.
Carbon Technical Q&As 1995-09-15
Problem with PaintRgn on 256-color Screens (HTML)
Deprecated - QD23: PaintRgn with RGBForeColor and transfer mode addOver doesn't return color to original on 256-color-screens.
Carbon Technical Q&As 1995-09-15