Launch Time Performance Guidelines. (Legacy)
|
|
|
- Melinda Peters
- 10 years ago
- Views:
Transcription
1 Launch Time Performance Guidelines (Legacy)
2 Contents Introduction to Launch Time Performance Guidelines 4 Organization of This Document 4 Launch Time Tips 5 Delay Initialization Code 5 Simplify Your Main Nib File 6 Minimize Global Variables 6 Minimize Strings File Sizes 7 Reduce the Impact of Expensive Operations 7 Avoid Memory Turnover 8 Use Local Resources 8 Gathering Launch Time Metrics 9 Measuring Launch Speed 9 Gathering Data Using Checkpoints 9 Using Explicit Timestamps 10 Measuring Cocoa Application Launch Times 11 Sampling the Application Launch 11 Using Shark 11 Using the sample Command-Line Tool 12 Minimizing File Access At Launch Time 14 Delay Any Unnecessary File I/O 14 Using fs_usage to Review File I/O 14 Prebinding Your Application 17 Prebinding Your Code 17 Caveats for Prebinding 18 Determining if Your Executable Is Prebound 21 Fixing Prebinding Information 22 Document Revision History 23 Index 25 2
3 Figures, Tables, and Listings Gathering Launch Time Metrics 9 Figure 1 Sampling the launch of an application with Shark 12 Minimizing File Access At Launch Time 14 Listing 1 Sample output from fs_usage 15 Prebinding Your Application 17 Table 1 Prebinding address ranges prior to OS X v10.2) 18 Table 2 Prebinding address ranges for OS X v10.2 to v10.3.x 19 Table 3 Prebinding address ranges for OS X v10.4 and later 20 3
4 Introduction to Launch Time Performance Guidelines Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid. This document provides specific tips on how to identify and improve your application s performance at launch time. The launch of an application provides users with the first impression of your application. If your application launches quickly, it leaves users with a good impression. Organization of This Document This document contains the following articles: Launch Time Tips (page 5) describes some standard techniques for improving the performance of your application at launch time. Gathering Launch Time Metrics (page 9) describes ways to measure the speed of your application launch. Minimizing File Access At Launch Time (page 14) shows you how to measure and reduce your file usage at launch time. Prebinding Your Application (page 17) explains the prebinding process and shows you how to determine if your application is prebound. 4
5 Launch Time Tips Launch time is an important metric to measure for any application. It is the first experience a user has with your application, and it is something the user sees on a regular basis. The less time it takes your application to launch, the faster your application will seem to the user. Your overriding goal during launch should be to display the application s menu bar and main window and then start responding to user commands as quickly as possible. Making your application responsive to commands quickly provides a better experience for the user. The following sections provide some general tips on how to make your application launch faster. Regardless of what techniques you choose to improve your launch times, the only way to know you ve improved performance is through measurement. Gather and record launch time metrics early in your development process and monitor them especially when implementing new optimizations. For information on how to measure launch-time performance, see Gathering Launch Time Metrics (page 9). Delay Initialization Code Many applications spend a lot of time initializing code that isn t used until much later. Delaying the initialization of subsystems that are not immediately needed can speed up your launch time considerably. Remember that the goal is to display your application interface quickly, so try to initialize only the subsystems related to that goal initially. Once you have posted your interface, your application can continue to initialize additional subsystems as needed. However, remember that just because your application is able to process commands does not mean you need all of that code right away. The preferred way of initializing subsystems is on an as-needed basis. Wait until the user executes a command that requires a particular subsystem and then initialize it. That way, if the user never executes the command, you will not have wasted any time running the code to prepare for it. For a Carbon application, you should perform your basic initialization before beginning your application s main event loop. Once that loop is running, you can set up a one-shot timer to execute any additional code that your application absolutely requires for basic operation. Do not load code for specific features until the user chooses a command that uses that feature. 5
6 Launch Time Tips Simplify Your Main Nib File For a Cocoa application, avoid putting a lot of extraneous initialization code in your awakefromnib methods. The system calls the awakefromnib method of your main nib file before your application enters its main event loop. Use that method to initialize the objects in that nib and to prepare your application interface. For all other initialization, use the applicationdidfinishlaunching method of your NSApplication object instead. For more information on nib files and how they are loaded, see Loading Resources. Simplify Your Main Nib File Loading a nib file is an expensive process that can slow down your application launch time if you are not careful. When a nib file is loaded, all of the objects in that file are instantiated and made ready for use. The more objects you include in your application s main nib, the more time it takes to load that file and launch your application. The instantiation process for objects in a nib file requires that any frameworks used by those objects must themselves be resident in memory. Thus loading a nib for a Cocoa application would likely require the loading of both the AppKit and Foundation frameworks, if they were not already resident in memory. Similarly, if you declare a custom class in your main nib file and that class relies on other frameworks, the system must load those frameworks as well. When designing your application s main nib file, you should include only those objects needed to display your application s initial user interface. Usually, this would involve just your application s menu bar and initial window, if any. For any custom classes you include in the nib, make sure their initialization code is as minimal as possible. Defer any time-consuming operations or memory allocations until after the class is instantiated. Minimize Global Variables For both applications and frameworks, be careful not to declare global variables that require significant amounts of initialization. The system initializes global variables before calling your application s main routine. If you use a global variable to declare an object, the system must call the constructor or initialization method for that object during launch time. In general, it s best to avoid declaring objects as global variables altogether when you can use a pointer instead. If you are implementing a framework, or any type of reusable code module for that matter, you should also minimize the number of global variables you declare. Each application that links to a framework acquires a copy of that framework s global variables. These variables might require several pages of virtual memory, which then increases the memory footprint of the target application. An increased memory footprint can lead to paging in the application, which has a tremendous impact on performance. 6
7 Launch Time Tips Minimize Strings File Sizes One way to minimize the global variables in a framework is to store the variables in a malloc-allocated block of memory instead. In this technique, you access the variables through a pointer to the memory, which you store as a global variable. Another advantage of this technique is that it allows you to defer the creation of any global variables until the first time they are actually used. See Optimizing Your Memory Allocations in Memory Usage Performance Guidelines for more information. Minimize Strings File Sizes Loading large numbers of unused strings at launch time adds an unnecessary burden to your application s memory footprint. In low-memory situations, a larger footprint could trigger paging and impact the launch time of your application. If you find yourself loading hundreds of unused strings at launch time, you might consider using separate resource files to store those strings not needed to launch the application. In general, minimizing the number of strings in your Localizable.strings file is a good idea and can improve your application launch time. You must be careful, though, not to break up your remaining strings files too much in an effort to minimize the number of strings loaded by each successive operation. Separating your strings into many small files increases the overall amount of time spent doing file I/O, which can hinder performance rather than improve it. Before breaking your strings files into more than a few files, you should gather metrics to make sure it is warranted. Reduce the Impact of Expensive Operations Application launch time is not the time to perform any operation involving a potentially large data set. If your application handles a scalable data set, make sure to gather performance metrics with a large data set. Even with efficient algorithms, processing large amounts of data takes time and should be deferred until after your application finishes launching. If you must load data early, try to do so in a way that reduces the impact on your application s launch time. One way is to design your program in a way that lets you load only a portion of the data set. For a really large data set, the user will be unable to see it all on the screen at one time anyway. Loading and displaying data incrementally improves launch time as well as the general performance of your application. Another way is to use a background thread to load the data shortly after the launch cycle completes. For more information about improving the speed of your operations, see Code Speed Performance Guidelines. 7
8 Launch Time Tips Avoid Memory Turnover Avoid Memory Turnover Allocating and deleting memory takes time. If you find your algorithms allocating and deleting temporary memory in a tight loop, you might think of a way to remove those allocation routines from the loop. Rather than create a new string object each time, you could create one string object and re-initialize its contents with each pass of the loop. One way to determine if you re allocating too much memory at launch time is to launch your application running under MallocDebug or ObjectAlloc. These tools show you the allocation patterns of your application. If you find your application allocating large amounts of temporary memory, you might go back through your algorithms to see if there are any blocks you can reuse or recycle. For information about the OS X virtual memory system and how to allocate memory efficiently, see Memory Usage Performance Guidelines. Use Local Resources At launch time, it s important to know where your resources are located. All of your application s critical resources should be located inside the application bundle itself. Searching for resources outside of the bundle has potentially serious costs, as you may not know whether the resource is local or on the network. In particular, you should keep in mind that items such as plug-ins, loadable bundles, and user preferences may reside somewhere out on the network. Attempting to load these resources at launch time can delay the availability of your application. It s best to avoid accessing external resources at launch time. If a resource is on a network server and the network is not available, your application could hang while it waits for the needed resource to become available. This is not a desirable situation and should be avoided by eliminating startup dependencies on these types of resources. If you do need to load these resources early, try loading them after your application has finished launching or from a background thread. 8
9 Gathering Launch Time Metrics The following sections describe some techniques for gathering launch-time performance metrics. Measuring Launch Speed One of the more important measurements you can make during your application launch cycle, is how long it takes before your application is ready to process user commands. The following sections describe several techniques for measuring the launch speed of your application. Gathering Data Using Checkpoints One way to gather information about your application s launch performance is to use checkpoints. Checkpoints let you bracket any block of code you want to monitor with identifying information. In the simplest case, you can insert a checkpoint at the beginning of your main function and again right after your initialization code finishes and record the time at which those checkpoints were encountered. If you need a fine grain view of your application launch, you can write checkpoint code that retrieves the current time from the system and write it to a log file. If you do not need quite so much detail, you can implement a simpler form of checkpoint using file-system calls. In this technique, you call a function that touches the file system and then use fs_usage to record the time that call was made. The following code snippet uses the stat system function as a checkpoint to mark the beginning of the launch cycle for the TextEdit application. The function attempts to touch a non-existent file, which in this case is just a string with the name of the checkpoint. The call itself fails but registers as an attempt to access a file and therefore shows up in the output from fs_usage. struct stat statbuf; stat("start:launch TextEdit", &statbuf); With this code inserted into your application, you can then open a Terminal window and launch fs_usage with the -w option. You might want to redirect the output from fs_usage through the grep tool to report entries only from your application. For example, to report entries from the TextEdit application, you would use the following command: 9
10 Gathering Launch Time Metrics Measuring Launch Speed % sudo fs_usage -w grep TextEdit With fs_usage running, launch your application. In the output from fs_usage, look for a stat call with the name of your checkpoint. For example, inserting the checkpoint START: launch TextEdit at the beginning of the TextEdit application yields output similar to the following: 14:13: stat [ 2] START:launch TextEdit TextEdit You can then use the timestamp on the left to determine the amount of time elapsed between the two checkpoints. This information tells you the elapsed time taken to execute the code between those two checkpoints. Note: Be aware that the elapsed time between two checkpoints does not necessarily reflect the time spent executing your application code. It is simply an indication of how long it took to complete the task given the current activity level of the system. For more information on using fs_usage, see Using fs_usage to Review File I/O (page 14). Using Explicit Timestamps One way to measure the speed of any operation, including launch times, is to use system routines to get the current time at the beginning and end of the operation. Once you have the two time values, you can take the difference and log the results. The advantage of this technique is that it lets you measure the duration of specific blocks of code. OS X includes several different ways to get the current time: mach_absolute_time reads the CPU time base register and is the basis for other time measurement functions. The Core Services UpTime function provides nanosecond resolution for time measurements. The BSD gettimeofdayfunction (declared in <sys/time.h>)provides microsecond resolution. (Note, this function incurs some overhead but is still accurate for most uses.) In Cocoa, you can create an NSDate object with the current time at the beginning of the operation and then use the timeintervalsincedate: method to get the time difference. 10
11 Gathering Launch Time Metrics Sampling the Application Launch Measuring Cocoa Application Launch Times If you are writing a Cocoa application, you can use hooks in the AppKit framework to shutdown your application immediately after it finishes launching. Setting the NSQuitAfterLaunch environment variable to any value causes a Cocoa-based application to exit immediately after completing its launch cycle. You can use this variable in conjunction with fs_usage to record the initial and final activity times of the application. Important: Setting the value of the NSQuitAfterLaunch environment variable to zero does not disable its effect. Instead, you must use the unsetenv command to remove the definition of this variable entirely. Sampling the Application Launch Sampling your application launch can identify where your application is spending its time. Sampling records which functions were called at regular intervals during your application s runtime. Using this data, you can identify operations that might be taking too much time and target them for optimization. Using Shark The Shark application provides a graphical interface for gathering call stack data at program launch time. To gather this data, do the following: 1. Launch Shark. 2. Set the sampling configuration to Time Profile. 3. Select Process from the target popup menu. Another popup menu appears with a list of running processes and a Launch option. (See Figure 1.) 4. Select the Launch option to display the Launch Process window. 5. From the Launch Process window, select the process you want to launch along with any arguments or environment variables you need to launch the program. 6. Make sure the Start sampling immediately check box is enabled. 7. Click OK to dismiss the Launch Process window. Shark immediately launches the selected process and begins sampling. 11
12 Gathering Launch Time Metrics Sampling the Application Launch 8. When your application is done launching, click the Stop button (or use the Option+Esc hotkey) to stop sampling and view the results. Figure 1 Sampling the launch of an application with Shark In addition to gathering sample data, you can also use shark to trace specific function calls, including malloc calls, at launch time. For more information about Shark, see the Shark User Manual. Using the sample Command-Line Tool Another way to gather launch-time performance metrics is to use the sample command-line tool. Like Sampler, the sample tool periodically samples an application and creates a runtime graph of the functions that were called. You can use the sampled data to see get a more detailed view of what your application was doing during launch. You must run sample with the -wait option to generate information for a launching application. The -wait option tells sample to wait for the existence of the process and to begin sampling it with the specified interval and duration when it appears. For example, you could use the following command to sample the launch of the TextEdit application for 5 seconds at 10 millisecond intervals. 12
13 Gathering Launch Time Metrics Sampling the Application Launch sample TextEdit wait When calling the sample tool, let the sampled application continue running until the sampling period is over. When the sample tool writes out its report, it uses the application s symbol table to identify the routines that were called. If you quit the application before the sampling period is over, the symbol information may become unavailable. You can also use the -maydie option to try to locate the symbol information explicitly. 13
14 Minimizing File Access At Launch Time Accessing a file is one of the slowest operations performed on a computer, so it is important that you do it as little as possible, especially at launch time. There is always some file access that must occur at launch time, such as loading your executable code and reading in your main nib file, but reducing your initial dependence on startup files can provide significant speed improvements. Delay Any Unnecessary File I/O If you can delay the reading of a file until after launch time, do so. The following list includes some files whose contents you may not need until after launch: Frameworks not used directly by your application avoid calling code that uses non-essential frameworks until after launch. Nib files whose contents are not displayed immediately make sure your nib files and awakefromnib: code are not doing too much at launch time. See Simplify Your Main Nib File (page 6) for more information. User preference files user preferences may not be local so read them later if you can. Font files consider delaying font initialization until after the application has launched. Network files avoid reading files located on the network if at all possible. If you must read a file at launch time, do so only once. If you need multiple pieces of data from the same file, such as from a preferences file, consider reading all of the data once rather than accessing the file multiple times. Using fs_usage to Review File I/O One way to identify the files used by your application at launch time is with the fs_usage tool. To monitor launch-time activity from your application, start running fs_usage in a Terminal window before you launch your application. The tool generates a continuous stream of data regarding all file system accesses. 14
15 Minimizing File Access At Launch Time Using fs_usage to Review File I/O Important: You must have root access to run fs_usage. You can use the su or sudo commands to run the tool. To view file activity for all processes with the fs_usage tool, you would enter the following at the Terminal prompt. % sudo fs_usage If you wanted to limit the display to files accessed by a particular process, you could redirect the output through the grep tool. For example, to display file behavior for the TextEdit application, you would enter the following at the Terminal prompt: % sudo fs_usage grep TextEdit After entering your root password, fs_usage begins running. There should be a flurry of activity generated by fs_usage when you launch your application. Once your application finishes launching, stop fs_usage by typing Control-C in your Terminal window. Listing 1 shows a small portion of the output obtained during the launch of the TextEdit application. Pay attention to the second and fourth columns, which identify the operation and the elapsed time (in seconds) spent in that operation. You can generate additional info by passing the -w option to fs_usage or by maximizing the width of your Terminal window. Listing 1 Sample output from fs_usage 10:56:13 CACHE_HIT TextEdit 11:00:04 CACHE_HIT TextEdit 11:00:04 CACHE_HIT TextEdit 11:00:04 CACHE_HIT TextEdit 11:00:04 lstat tions/textedit.app/contents/macos TextEdit 11:00:04 lstat tedit.app/contents/macos/textedit TextEdit 11:00:04 stat /Applications/TextEdit.app TextEdit 11:00:04 access /Applications/TextEdit.app TextEdit 11:00:04 lstat ents/resources/documentwindow.nib TextEdit 11:00:04 statfs ents/resources/documentwindow.nib TextEdit 11:00:04 open ents/resources/documentwindow.nib TextEdit 11:00:04 getdirentries TextEdit 15
16 Minimizing File Access At Launch Time Using fs_usage to Review File I/O 11:00:04 getdirentries TextEdit 11:00:04 close TextEdit The preceding sample data shows how much time was spent getting information about the TextEdit binary file and its document window nib file. In this example, most of the operations took only microseconds to perform. You should search your own output to see if there are any files being accessed that aren t really needed, or whose access takes a significant amount of time. 16
17 Prebinding Your Application Prebinding is the process of computing the addresses for symbols imported by a shared library or application prior to their use. Resolving these addresses before their use reduces the amount of work performed by the dynamic loader (dyld) at runtime and results in faster launch times for applications. In OS X v10.4, dyld was improved in a way that eliminated the need for prebinding information in most situations. The system libraries are now the only executables that are still prebound, and they are prebound in a way that optimizes performance on the target system. Because of the improved prebinding of the system libraries, applications and third-party libraries no longer need to be prebound. A side benefit to this new behavior is that applications now have more usable address space than in previous versions of the operating system. If you are developing applications for versions of OS X prior to v10.4, prebinding is considered optional. Changes in v made application prebinding unnecessary but applications running on earlier versions of the operating system still received some benefits from prebinding. If you feel your application launches slowly on pre systems, build your application prebound and see if launch time improves. If you are developing frameworks or other dynamic shared libraries for versions of OS X prior to 10.4, it is still recommended that you specify a base address for your library. Specifying this address allows prebinding to occur for applications that use your library. If your library is running in OS X v10.4 and later, specifying a base address is optional but can be useful for debugging shared libraries. The atos command-line tool lets you identify symbols located in memory. It is easier to identify specific symbols if your library has a known base address. The following sections tell you how to prebind your application and framework projects and how to update that prebinding information if it becomes invalid. Prebinding Your Code Prior to OS X v10.4, prebinding was enabled for all new projects built using Xcode. In OS X v10.4 and later, this setting is no longer enabled due to changes that make prebinding unnecessary. If you aren t sure if your project is being built with prebinding enabled, you can check the build settings for your project. Prebinding settings are set on a per-target basis in the Build options view of the Xcode inspector window. If the Prebinding option is enabled for your target, it is being built with prebinding information. 17
18 Prebinding Your Application Caveats for Prebinding If you are not using Xcode, there are several other ways to enable prebinding of your application or framework. During the link phase, the ld tool looks to see if the LD_PREBIND environment variable is set. If it is, the tool enables prebinding unless a command-line option specifically disables it. If you are calling ld from the command-line, you can pass it the -prebind option to enable prebinding explicitly. If you are developing a framework for versions of OS X prior to 10.4, you should always build and ship it with prebinding enabled. If your framework is not prebound, applications that reference your framework cannot be prebound either, which can impact their launch time. In addition to enabling prebinding, you need to specify a preferred memory address for your framework. You do this by passing the -seg1addr option to ld. In Xcode, you add this option to the "Other Linker Flags" build setting. From the command line, simply include this option along with the other linker options in your makefile. For more information about using this option, see the ld man page. Caveats for Prebinding If you build with prebinding enabled, there are still times when ld may be unable to prebind your application. Prebinding fails if there are any symbol-name conflicts in the linked libraries or if the preferred address spaces for any libraries overlap. Prebinding also fails if any linked frameworks are not themselves prebound. When prebinding fails, the dynamic linker has to readjust the addresses of symbols in the affected libraries, which can slow down launch time. In order to minimize symbol-name conflicts, Apple introduced a two-level namespace mechanism in OS X v Two-level namespaces use both the library name and the symbol name to identify each symbol, which reduces the chances of a collision. An executable built with the two-level namespace format is still compatible with versions of OS X prior to version By default, Xcode builds all new projects using two-level namespaces. Apple builds and ships its libraries with prebinding enabled and in a way that makes sure there are no address-space overlaps. However, other applications may install libraries and frameworks whose prebound addresses do overlap. Table 1 lists the virtual memory address ranges available to your code on versions of OS X prior to version This table also lists the address ranges reserved for Apple-supplied frameworks and services. You can use this information to choose an appropriate location for your framework and library code. Table 1 Prebinding address ranges prior to OS X v10.2) Address range 0x to 0x410FFFFF 0x to 0x412FFFFF Usage Application and user framework address range. Address range reserved for use by Apple frameworks. Do not use this address range for your libraries. 18
19 Prebinding Your Application Caveats for Prebinding Address range 0x to 0x606DFFFF 0x606E0000 to 0x6FFFFFFF 0x to 0x8FFFFFFF 0x to 0x9FFFFFFF 0xA to 0xAFFFFFFF 0xB to 0xBFFFFFFF 0xC to 0xFEFFFFFF 0xFF to 0xFFBFFFFF 0xFFC00000 to 0xFFFFFFFF Usage Address range is preferred for use by Apple frameworks Additional space available for third-party application and framework code. Address range reserved for use by Apple frameworks. Do not use this address range. Additional space available for third-party application and framework code. Preferred for use by the Window Manager. Preferred for use by thread stacks. Additional space available for third-party application and framework code. Preferred for use by the pasteboard and other system services. Additional space available for third-party application and framework code. Table 2 lists the virtual memory address ranges available with OS X version 10.2 through version 10.3.x. In cases where an address range is preferred by Apple frameworks or services, you may still be able to use portions of that range. The availability of a given range depends on which frameworks or services your application uses. Table 2 Prebinding address ranges for OS X v10.2 to v10.3.x Address range 0x to 0x4FFFFFFF 0x to 0x8FDFFFFF 0x8FE00000 to 0xAFFFFFFF 0xB to 0xBFFFFFFF 0xC to 0xEBFFFFFF Usage Application address range. Preferred address range for Apple frameworks. Applications may use this range as necessary. Reserved for use by Apple frameworks. Do not use this address range. Preferred address range for the application s main thread. The Window Manager may also use portions of this range. Applications may use this range as necessary. Additional space available for third-party application and framework code. 19
20 Prebinding Your Application Caveats for Prebinding Address range 0xEC to 0xEFFFFFFF 0xF to 0xFDFFFFFF 0xFE to 0xFFBFFFFF 0xFFC00000 to 0xFFFDFFFF 0xFFFE0000 to 0xFFFFFFFF Usage Preferred for use by the Apple prebinding tools. Applications may use this range as necessary. Preferred for use by additional thread stacks. Applications may use this range as necessary. Reserved for use by the pasteboard and other system services. Do not use this address range. Preferred for use by other system services. Applications may use this range as necessary. Reserved for use by system services. Do not use this address range. Table 3 lists the virtual memory address ranges available with OS X version 10.4 and later. This version consolidates the system libraries into a single address range and frees up more contiguous space for your application to use. Table 3 Prebinding address ranges for OS X v10.4 and later Address range 0x to 0x8FDFFFFF 0x8FE00000 to 0xAFFFFFFF 0xB to 0xBFFFFFFF 0xC to 0xEBFFFFFF 0xEC to 0xEFFFFFFF 0xF to 0xFDFFFFFF 0xFE to 0xFFBFFFFF 0xFFC00000 to 0xFFFDFFFF Usage Application address range. Reserved exclusively for Apple system libraries. Do not use this address range. Preferred address range for the application s main thread. Additional space available for third-party applications and framework code. Preferred for use by the Apple prebinding tools. Applications may use this range as necessary. Preferred for use by additional thread stacks. Applications may use this range as necessary. Reserved for use by the pasteboard and other system services. Do not use this address range. Preferred for use by other system services. Applications may use this range as necessary. 20
21 Prebinding Your Application Determining if Your Executable Is Prebound Address range 0xFFFE0000 to 0xFFFFFFFF Usage Reserved for use by system services. Do not use this address range. An application s binary code is loaded beginning at address 0x You should never define a framework with a low address range as it will very likely collide with the address range of any applications that use it. Instead, use an address range that is higher in the available address space. Determining if Your Executable Is Prebound The simplest way to determine if your Mach-O executable is prebound is to use the otool command-line tool to examine the object file. Running this tool with the -h and -v options displays the Mach header information for the executable. If your executable is prebound, you should see the word PREBOUND in the flags section of the header. The following code listing shows the output for the TextEdit application. Mach header magic cputype cpusubtype filetype ncmds sizeofcmds flags MH_MAGIC PPC ALL EXECUTE NOUNDEFS DYLDLINK PREBOUND TWOLEVEL Prior to OS X v10.4, another way to determine if a Mach-O executable is prebound is to enable the prebinding debugging option and launch your executable. (This does not work for applications in OS X v10.4 and later because prebinding for main executables is ignored.) From the csh shell, you can do this using the following steps: 1. Launch Terminal. 2. At the Terminal prompt, type the following: setenv DYLD_PREBIND_DEBUG 3. At the Terminal prompt, enter the path to your application s executable file. For TextEdit, you would enter something like the following: /Applications/TextEdit.app/Contents/MacOS/TextEdit 21
22 Prebinding Your Application Fixing Prebinding Information If your application is prebound, the dyld tool outputs the message prebinding enabled to the command line. If you see messages about some number of two-level prebound libraries being used, then your application is only partially prebound. Fixing Prebinding Information In all versions of OS X, you should not need to do anything to keep your prebinding information up-to-date on the user s system. On versions of OS X that require it, the system automatically fixes prebinding information as needed. In addition, the Installer program runs the update_prebinding tool at the end of the install cycle to update prebinding information. You should never need to call this tool directly. 22
23 Document Revision History This table describes the changes to Launch Time Performance Guidelines. Date Notes Moved to Retired Documents Library Updated prebinding guidelines Explained how to set the preferred address for frameworks. Added information about what happens when prebinding fails Updated prebinding information for OS X v Replaced Sampler examples with Shark examples. Document title changed. Old title was Launch Time Performance Corrected prebinding address ranges Updated address ranges pertaining to prebinding Minor bug fixes for OS X v First revision of this programming topic. Some of the information appeared in the document Inside OS X: Performance. 23
24 Apple Inc. Copyright 2003, 2014 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, mechanical, electronic, photocopying, recording, or otherwise, without prior written permission of Apple Inc., with the following exceptions: Any person is hereby authorized to store documentation on a single computer or device for personal use only and to print copies of documentation for personal use provided that the documentation contains Apple s copyright notice. No licenses, express or implied, are granted with respect to any of the technology described in this document. Apple retains all intellectual property rights associated with the technology described in this document. This document is intended to assist application developers to develop applications only for Apple-branded products. Apple Inc. 1 Infinite Loop Cupertino, CA Apple, the Apple logo, Carbon, Cocoa, Mac, OS X, and Xcode are trademarks of Apple Inc., registered in the U.S. and other countries..mac is a service mark of Apple Inc., registered in the U.S. and other countries. Times is a registered trademark of Heidelberger Druckmaschinen AG, available from Linotype Library GmbH. APPLE MAKES NO WARRANTY OR REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS DOCUMENT, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS DOCUMENT IS PROVIDED AS IS, AND YOU, THE READER, ARE ASSUMING THE ENTIRE RISK AS TO ITS QUALITY AND ACCURACY. IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT, ERROR OR INACCURACY IN THIS DOCUMENT, even if advised of the possibility of such damages. Some jurisdictions do not allow the exclusion of implied warranties or liability, so the above exclusion may not apply to you.
25 Index A applicationdidfinishlaunching method 6 awakefromnib method 6 C checkpoints 9 D data, loading 7 F files, loading 14 font files 14 frameworks, and global variables 6 fs_usage tool 9, 14 G gettimeofday function 10 global variables 6 I initialization code, delaying 5 L launch time measuring speed 9 sampling M mach_absolute_time function 10 main event loop 5 memory allocating 8 N network files 14 nib files 14 instantiation process 6 simplifying 6 NSQuitAfterLaunch environment variable 11 P prebinding preference files 14 R resources, using efficiently 8 S sample tool 12 Shark 11 stat function 9 subsystems, initializing 5 T timeintervalsincedate: method 10 timestamps 10 tools 25
26 Index fs_usage 9, 14 sample 12 Shark 11 U UpTime function 10 26
Xcode User Default Reference. (Legacy)
Xcode User Default Reference (Legacy) Contents Introduction 5 Organization of This Document 5 Software Version 5 See Also 5 Xcode User Defaults 7 Xcode User Default Overview 7 General User Defaults 8 NSDragAndDropTextDelay
ios Team Administration Guide (Legacy)
ios Team Administration Guide (Legacy) Contents About ios Development Team Administration 5 At a Glance 6 Team Admins Manage Team Membership and Assign Roles in the Member Center 6 Development Devices
Creating Carbon Menus. (Legacy)
Creating Carbon Menus (Legacy) Contents Carbon Menus Concepts 4 Components of a Carbon Menu 4 Carbon Menu Tasks 6 Creating a Menu Using Nibs 6 The Nib File 7 The Menus Palette 11 Creating a Simple Menu
Xcode Source Management Guide. (Legacy)
Xcode Source Management Guide (Legacy) Contents Introduction 5 Organization of This Document 5 See Also 6 Source Management Overview 7 Source Control Essentials 7 Snapshots 8 Managing Source in Xcode 8
TestFlight FAQ. 2014-7-17 Apple Inc.
TestFlight FAQ apple 2014-7-17 Apple Inc. 2014 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means,
Xcode Project Management Guide. (Legacy)
Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project
Apple Applications > Safari 2008-10-15
Safari User Guide for Web Developers Apple Applications > Safari 2008-10-15 Apple Inc. 2008 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,
itunes Connect App Analytics Guide v1
itunes Connect App Analytics Guide v1 apple 2015-04-22 Apple Inc. 2015 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any
WiFiPerf User Guide 1.5
WiFiPerf User Guide 1.5 AccessAgility LLC 2012 AccessAgility LLC. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any
Apple Certificate Library Functional Specification
Apple Certificate Library Functional Specification apple 2005-01-13 apple Apple Computer, Inc. 2005 Apple Computer, Inc. All rights reserved. No part of this publication may be reproduced, stored in a
Mail Programming Topics
Mail Programming Topics Contents Introduction 4 Organization of This Document 4 Creating Mail Stationery Bundles 5 Stationery Bundles 5 Description Property List 5 HTML File 6 Images 8 Composite Images
Event Kit Programming Guide
Event Kit Programming Guide Contents Introduction 4 Who Should Read This Document? 4 Organization of This Document 4 See Also 4 Fetching Events 6 Initializing an Event Store 6 Fetching Events with a Predicate
Copy Tool For Dynamics CRM 2013
Copy Tool For Dynamics CRM 2013 Page 1 of 15 Copy Tool 2013 Copyright Warranty disclaimer Limitation of liability License agreement Copyright 2013 Dynamics Professional Solutions. All rights reserved.
ERserver. iseries. Work management
ERserver iseries Work management ERserver iseries Work management Copyright International Business Machines Corporation 1998, 2002. All rights reserved. US Government Users Restricted Rights Use, duplication
FOR WINDOWS FILE SERVERS
Quest ChangeAuditor FOR WINDOWS FILE SERVERS 5.1 User Guide Copyright Quest Software, Inc. 2010. All rights reserved. This guide contains proprietary information protected by copyright. The software described
Apple URL Scheme Reference
Apple URL Scheme Reference Contents About Apple URL Schemes 4 At a Glance 4 Composing Items Using Mail 4 Starting a Phone or FaceTime Conversation 4 Specifying Text Messages 5 Opening Locations in Maps
Networking & Internet 2010-07-06
Wireless Enterprise App Distribution Networking & Internet 2010-07-06 Apple Inc. 2010 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted,
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
System Monitoring and Diagnostics Guide for Siebel Business Applications. Version 7.8 April 2005
System Monitoring and Diagnostics Guide for Siebel Business Applications April 2005 Siebel Systems, Inc., 2207 Bridgepointe Parkway, San Mateo, CA 94404 Copyright 2005 Siebel Systems, Inc. All rights reserved.
CA Nimsoft Monitor. Probe Guide for Active Directory Server. ad_server v1.4 series
CA Nimsoft Monitor Probe Guide for Active Directory Server ad_server v1.4 series Legal Notices Copyright 2013, CA. All rights reserved. Warranty The material contained in this document is provided "as
NetBackup Backup, Archive, and Restore Getting Started Guide
NetBackup Backup, Archive, and Restore Getting Started Guide UNIX, Windows, and Linux Release 6.5 Veritas NetBackup Backup, Archive, and Restore Getting Started Guide Copyright 2007 Symantec Corporation.
Dell NetVault Backup Plug-in for SharePoint 1.3. User s Guide
Dell NetVault Backup Plug-in for 1.3 2014 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software
Contents. 2. cttctx Performance Test Utility... 8. 3. Server Side Plug-In... 9. 4. Index... 11. www.faircom.com All Rights Reserved.
c-treeace Load Test c-treeace Load Test Contents 1. Performance Test Description... 1 1.1 Login Info... 2 1.2 Create Tables... 3 1.3 Run Test... 4 1.4 Last Run Threads... 5 1.5 Total Results History...
Proactive Performance Management for Enterprise Databases
Proactive Performance Management for Enterprise Databases Abstract DBAs today need to do more than react to performance issues; they must be proactive in their database management activities. Proactive
Quest ChangeAuditor 5.1 FOR ACTIVE DIRECTORY. User Guide
Quest ChangeAuditor FOR ACTIVE DIRECTORY 5.1 User Guide Copyright Quest Software, Inc. 2010. All rights reserved. This guide contains proprietary information protected by copyright. The software described
Usage Analysis Tools in SharePoint Products and Technologies
Usage Analysis Tools in SharePoint Products and Technologies Date published: June 9, 2004 Summary: Usage analysis allows you to track how websites on your server are being used. The Internet Information
CA Nimsoft Monitor. Probe Guide for URL Endpoint Response Monitoring. url_response v4.1 series
CA Nimsoft Monitor Probe Guide for URL Endpoint Response Monitoring url_response v4.1 series Legal Notices This online help system (the "System") is for your informational purposes only and is subject
AvePoint Tags 1.1 for Microsoft Dynamics CRM. Installation and Configuration Guide
AvePoint Tags 1.1 for Microsoft Dynamics CRM Installation and Configuration Guide Revision G Issued August 2014 Table of Contents About AvePoint Tags for Microsoft Dynamics CRM... 3 Required Permissions...
VPN Client User s Guide. 9235966 Issue 2
VPN Client User s Guide 9235966 Issue 2 Copyright 2004 Nokia. All rights reserved. Reproduction, transfer, distribution or storage of part or all of the contents in this document in any form without the
WiFiSurvey Using AirPort Utility for WiFi Scanning Guide
WiFiSurvey Using AirPort Utility for WiFi Scanning Guide WiFiSurvey User Guide (January 10, 2016) AccessAgility LLC 2016 AccessAgility LLC. All rights reserved. No part of this publication may be reproduced,
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X DU-05348-001_v6.5 August 2014 Installation and Verification on Mac OS X TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. System Requirements... 1 1.2. About
Security Analytics Engine 1.0. Help Desk User Guide
2015 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software license or nondisclosure agreement.
Dell Unified Communications Command Suite - Diagnostics 8.0. Data Recorder User Guide
Dell Unified Communications Command Suite - Diagnostics 8.0 2014 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide
TIBCO ActiveMatrix BusinessWorks Plug-in for TIBCO Managed File Transfer Software Installation
TIBCO ActiveMatrix BusinessWorks Plug-in for TIBCO Managed File Transfer Software Installation Software Release 6.0 November 2015 Two-Second Advantage 2 Important Information SOME TIBCO SOFTWARE EMBEDS
Sophos Anti-Virus for Mac OS X Help. For networked and single computers running Mac OS X version 10.4 or later
Sophos Anti-Virus for Mac OS X Help For networked and single computers running Mac OS X version 10.4 or later Product version: 7 Document date: October 2009 Contents 1 About Sophos Anti-Virus...3 2 On-access
Kofax Export Connector 8.3.0 for Microsoft SharePoint
Kofax Export Connector 8.3.0 for Microsoft SharePoint Administrator's Guide 2013-02-27 2013 Kofax, Inc., 15211 Laguna Canyon Road, Irvine, California 92618, U.S.A. All rights reserved. Use is subject to
HP LoadRunner. Software Version: 11.00. Ajax TruClient Tips & Tricks
HP LoadRunner Software Version: 11.00 Ajax TruClient Tips & Tricks Document Release Date: October 2010 Software Release Date: October 2010 Legal Notices Warranty The only warranties for HP products and
Authorize.Net Mobile Application
Authorize.Net Mobile Application ios User Guide October 2015 Authorize.Net Developer Support http://developer.authorize.net Authorize.Net LLC 082007 Ver.2.0 Authorize.Net LLC ( Authorize.Net ) has made
Nimsoft Monitor. ntevl Guide. v3.6 series
Nimsoft Monitor ntevl Guide v3.6 series Legal Notices Copyright 2012, CA. All rights reserved. Warranty The material contained in this document is provided "as is," and is subject to being changed, without
Foglight 1.0.0.0. Cartridge for Active Directory Installation Guide
Foglight 1.0.0.0 Cartridge for Active Directory Installation Guide 2010 Quest Software, Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described
Cisco UCS Director Payment Gateway Integration Guide, Release 4.1
First Published: April 16, 2014 Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (6387) Fax: 408 527-0883
Dell Spotlight on Active Directory 6.8.3. Server Health Wizard Configuration Guide
Dell Spotlight on Active Directory 6.8.3 Server Health Wizard Configuration Guide 2013 Dell Software Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software
Acronis Backup & Recovery 11.5 Quick Start Guide
Acronis Backup & Recovery 11.5 Quick Start Guide Applies to the following editions: Advanced Server for Windows Virtual Edition Advanced Server SBS Edition Advanced Workstation Server for Linux Server
Policy Based Encryption E. Administrator Guide
Policy Based Encryption E Administrator Guide Policy Based Encryption E Administrator Guide Documentation version: 1.2 Legal Notice Legal Notice Copyright 2012 Symantec Corporation. All rights reserved.
Policy Based Encryption E. Administrator Guide
Policy Based Encryption E Administrator Guide Policy Based Encryption E Administrator Guide Documentation version: 1.2 Legal Notice Legal Notice Copyright 2012 Symantec Corporation. All rights reserved.
10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition
10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can
Running a Workflow on a PowerCenter Grid
Running a Workflow on a PowerCenter Grid 2010-2014 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise)
How To Use The Correlog With The Cpl Powerpoint Powerpoint Cpl.Org Powerpoint.Org (Powerpoint) Powerpoint (Powerplst) And Powerpoint 2 (Powerstation) (Powerpoints) (Operations
orrelog SQL Table Monitor Adapter Users Manual http://www.correlog.com mailto:[email protected] CorreLog, SQL Table Monitor Users Manual Copyright 2008-2015, CorreLog, Inc. All rights reserved. No part
Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide
Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights
Nimsoft Monitor. dns_response Guide. v1.6 series
Nimsoft Monitor dns_response Guide v1.6 series CA Nimsoft Monitor Copyright Notice This online help system (the "System") is for your informational purposes only and is subject to change or withdrawal
8.7. Resource Kit User Guide
8.7 Resource Kit User Guide 2011 Quest Software, Inc. ALL RIGHTS RESERVED. This document contains proprietary information protected by copyright. The software described in this document is furnished under
Information on Syslog For more information on syslog, see RFC 5424. Released: December 2006 Interoperability issues: None. Table 1: Syslog at a Glance
Syslog on Spectralink 84-Series Handsets Syslog is a standard for logging data and forwarding log messages in an IP network. You can use syslog to manage and secure devices, and to generate informational,
Setting up PostgreSQL
Setting up PostgreSQL 1 Introduction to PostgreSQL PostgreSQL is an object-relational database management system based on POSTGRES, which was developed at the University of California at Berkeley. PostgreSQL
NetBak Replicator 4.0 User Manual Version 1.0
NetBak Replicator 4.0 User Manual Version 1.0 Copyright 2012. QNAP Systems, Inc. All Rights Reserved. 1 NetBak Replicator 1. Notice... 3 2. Install NetBak Replicator Software... 4 2.1 System Requirements...
Application Menu and Pop-up List Programming Topics
Application Menu and Pop-up List Programming Topics Contents Introduction to Application Menus and Pop-up Lists 4 Organization of This Document 4 How Menus Work 5 Menu Basics 5 Application Menus 6 Pop-Up
WINDOWS 7 & HOMEGROUP
WINDOWS 7 & HOMEGROUP SHARING WITH WINDOWS XP, WINDOWS VISTA & OTHER OPERATING SYSTEMS Abstract The purpose of this white paper is to explain how your computers that are running previous versions of Windows
Quest Collaboration Services 3.5. How it Works Guide
Quest Collaboration Services 3.5 How it Works Guide 2010 Quest Software, Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide
CA Nimsoft Monitor. Probe Guide for CPU, Disk and Memory. cdm v4.7 series
CA Nimsoft Monitor Probe Guide for CPU, Disk and Memory cdm v4.7 series Legal Notices Copyright 2013, CA. All rights reserved. Warranty The material contained in this document is provided "as is," and
Universal Management Service 2015
Universal Management Service 2015 UMS 2015 Help All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording,
Eliminate Memory Errors and Improve Program Stability
Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent
Sophos SafeGuard Native Device Encryption for Mac Administrator help. Product version: 7
Sophos SafeGuard Native Device Encryption for Mac Administrator help Product version: 7 Document date: December 2014 Contents 1 About SafeGuard Native Device Encryption for Mac...3 1.1 About this document...3
AdwareMedic. About AdwareMedic... 2. How to use AdwareMedic... 3. Frequently Asked Questions... 7. Version History... 9 License Agreement...
AdwareMedic http://www.adwaremedic.com [email protected] About AdwareMedic... 2 System Requirements... 2 Limitations... 2 How to use AdwareMedic... 3 Scan for Adware... 4 Optional items... 5 Firefox
Dell Statistica Document Management System (SDMS) Installation Instructions
Dell Statistica Document Management System (SDMS) Installation Instructions 2015 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described
Call Center - Agent Application User Manual
Forum 700 Call Center Agent Application User Manual Legal notice: Belgacom and the Belgacom logo are trademarks of Belgacom. All other trademarks are the property of their respective owners. The information
EView/400i Management Pack for Systems Center Operations Manager (SCOM)
EView/400i Management Pack for Systems Center Operations Manager (SCOM) Concepts Guide Version 6.3 November 2012 Legal Notices Warranty EView Technology makes no warranty of any kind with regard to this
Dell Enterprise Reporter 2.5. Configuration Manager User Guide
Dell Enterprise Reporter 2.5 2014 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software license
BlackBerry Desktop Manager Version: 1.0.1. User Guide
BlackBerry Desktop Manager Version: 1.0.1 User Guide SWD-857131-0929025909-001 Contents Basics... 2 About BlackBerry Desktop Manager... 2 System requirements: BlackBerry Desktop Manager... 2 Set up your
How To Install Acronis Backup & Recovery 11.5 On A Linux Computer
Acronis Backup & Recovery 11.5 Server for Linux Update 2 Installation Guide Copyright Statement Copyright Acronis International GmbH, 2002-2013. All rights reserved. Acronis and Acronis Secure Zone are
Dell NetVault Backup Plug-in for Advanced Encryption 2.2. User s Guide
Dell Backup Plug-in for Advanced Encryption 2.2 2014 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished
NetBeans Profiler is an
NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that
Introduction to Version Control in
Introduction to Version Control in In you can use Version Control to work with different versions of database objects and to keep the database updated. You can review, manage, compare, and revert to any
Project management integrated into Outlook
y Project management integrated into Outlook InLoox PM 7.x Help for the configuration for MySQL-Server An InLoox Whitepaper Published: October 2011 Copyright: InLoox GmbH 2011 You find up-to-date information
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
App Distribution Guide
App Distribution Guide Contents About App Distribution 10 At a Glance 11 Enroll in an Apple Developer Program to Distribute Your App 11 Generate Certificates and Register Your Devices 11 Add Store Capabilities
Quest Collaboration Services 3.6.1. How it Works Guide
Quest Collaboration Services 3.6.1 How it Works Guide 2011 Quest Software, Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide
5-Bay Raid Sub-System Smart Removable 3.5" SATA Multiple Bay Data Storage Device User's Manual
5-Bay Raid Sub-System Smart Removable 3.5" SATA Multiple Bay Data Storage Device User's Manual www.vipower.com Table of Contents 1. How the SteelVine (VPMP-75511R/VPMA-75511R) Operates... 1 1-1 SteelVine
TheFinancialEdge. Administration Guide
TheFinancialEdge Administration Guide 102011 2011 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical, including
Dell One Identity Manager 7.0. Help Desk Module Administration Guide
Dell 2015 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software license or nondisclosure
Oracle Enterprise Manager
Oracle Enterprise Manager System Monitoring Plug-in for Oracle TimesTen In-Memory Database Installation Guide Release 11.2.1 E13081-02 June 2009 This document was first written and published in November
3M Stats and Status Software for 3M Detection System Model 8900/9900. Staff Guide
3M Stats and Status Software for 3M Detection System Model 8900/9900 Staff Guide Copyright 2009, 3M. All rights reserved. 3M Stats and Status Software for 3M Detection System Model 8900/9900 Staff Guide
Porting CodeWarrior Projects to Xcode. (Legacy)
Porting CodeWarrior Projects to Xcode (Legacy) Contents Introduction to Porting CodeWarrior Projects to Xcode 7 Prerequisites 7 Further Reading 8 Organization of This Document 8 Feedback and Mail List
Mobile App Monitoring. Release Notes. Release 8.0
Mobile App Monitoring Release 8.0 Mobile App Monitoring 8.0 Mobile App Monitoring 8.0 July 2014 Copyright Notice Copyright 1995-2014 Keynote Systems, Inc. All rights reserved. THE INFORMATION CONTAINED
Creating Custom Crystal Reports Tutorial
Creating Custom Crystal Reports Tutorial 020812 2012 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical,
TheFinancialEdge. Administration Guide
TheFinancialEdge Administration Guide 110309 2009 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical, including
Symantec Enterprise Vault
Symantec Enterprise Vault Guide for Mac OS X Users 10.0 Symantec Enterprise Vault: Guide for Mac OS X Users The software described in this book is furnished under a license agreement and may be used only
4.0. Offline Folder Wizard. User Guide
4.0 Offline Folder Wizard User Guide Copyright Quest Software, Inc. 2007. All rights reserved. This guide contains proprietary information, which is protected by copyright. The software described in this
Practical Performance Understanding the Performance of Your Application
Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance
CA Nimsoft Monitor. Probe Guide for Active Directory Response. ad_response v1.6 series
CA Nimsoft Monitor Probe Guide for Active Directory Response ad_response v1.6 series Legal Notices This online help system (the "System") is for your informational purposes only and is subject to change
AXIS Camera Station Quick Installation Guide
AXIS Camera Station Quick Installation Guide Copyright Axis Communications AB April 2005 Rev. 3.5 Part Number 23997 1 Table of Contents Regulatory Information.................................. 3 AXIS Camera
Built-in Plug-ins User s Guide
Quest NetVault Backup version 9.1 Built-in Plug-ins User s Guide Version: Product Number: NVG-129-9.1-EN-01 NVG-129-9.1-EN-01 05/10/13 2013 Quest Software, Inc. ALL RIGHTS RESERVED. This guide contains
Adapting the PowerPC 403 ROM Monitor Software for a 512Kb Flash Device
Adapting the PowerPC 403 ROM Monitor Software for a 512Kb Flash Device IBM Microelectronics Dept D95/Bldg 060 3039 Cornwallis Road Research Triangle Park, NC 27709 Version: 1 December 15, 1997 Abstract
A Presentation of TeachUcomp Incorporated. Copyright TeachUcomp, Inc. 2013. Mastering Outlook Made Easy for Lawyers CPE Edition v.2.
A Presentation of TeachUcomp Incorporated. Copyright TeachUcomp, Inc. 2013 Mastering Outlook Made Easy for Lawyers CPE Edition v.2.0 TeachUcomp, Inc. it s all about you Copyright: Copyright 2013 by TeachUcomp,
CA Nimsoft Monitor. Probe Guide for Sharepoint. sharepoint v1.6 series
CA Nimsoft Monitor Probe Guide for Sharepoint sharepoint v1.6 series Legal Notices This online help system (the "System") is for your informational purposes only and is subject to change or withdrawal
eggon SDK for ios 7 Integration Instructions
eggon SDK for ios 7 Integration Instructions The eggon SDK requires a few simple steps in order to be used within your ios 7 application. Environment This guide assumes that a standard ios Development
SW5706 Application deployment problems
SW5706 This presentation will focus on application deployment problem determination on WebSphere Application Server V6. SW5706G11_AppDeployProblems.ppt Page 1 of 20 Unit objectives After completing this
formerly Help Desk Authority 9.1.3 HDAccess Administrator Guide
formerly Help Desk Authority 9.1.3 HDAccess Administrator Guide 2 Contacting Quest Software Email: Mail: Web site: [email protected] Quest Software, Inc. World Headquarters 5 Polaris Way Aliso Viejo, CA 92656
The Top 10 Things DBAs Should Know About Toad for IBM DB2
The Top 10 Things DBAs Should Know About Toad for IBM DB2 Written by Jeff Podlasek, senior product architect, Dell Software Abstract Toad for IBM DB2 is a powerful tool for the database administrator.
