;; ;; ;; Sample INI file for IceCAP 4.3. ;; ;; IceCAP is MICROSOFT CONFIDENTIAL, and should not be distributed except ;; under NDA. ;; ;; To customize your IceCAP runs, copy this file to your working directory ;; or to your Windows directory and make the appropriate changes. ;; [IceCAP] ;; ;;**************************************************************************** ;; The Profile= value is read once for each process that starts. HOWEVER, the ;; Global value (third parameter) is read only ONCE, when the logger starts. ;;**************************************************************************** ;; ;; ;; Profile sets the initial profiling state for the Thread, Process, and ;; Global levels. ;; Syntax is: Profile=On|Off[,On|Off,[On|Off|Never]]. Default is On,On,On. ;; ;; IceCAP 3.6 syntax works fine for setting the thread-level default value. ;; Note that we only support Never at the Global level. ;; ; Profile=On ; Profile=Off ;; ;; IceCAP 4.x allows greater flexibility, to control all three levels. ;; ; Profile=On,On,On ; Profile=On,Off,On ; Profile=On,On,Off ; Profile=Off,Off,Never ;; ;; ;;**************************************************************************** ;; The following settings are read ONCE when the logger is initializing. ;; These are global settings which are ONLY read from the [IceCAP] section ;; of the INI file. For any of the sample settings below, remove the comment ;; indicator ";" at the beginning of the line to make use of the setting. ;;**************************************************************************** ;; ;; DataCompression determines whether or not the logger compresses the ;; collected data. Note that compression takes additional cpu cycles which ;; may effect the performance of the profiled application. Default is None. ;; Note: At this time, Aggressive is the same as Standard. ;; ; DataCompression=None ; DataCompression=Standard ; DataCompression=Aggressive ;; ;; ;; InMemoryCollection determines whether or not to put the IceCAP logger ;; into a special mode where no data is written until either the profiled ;; application terminates or until the current ICP file is closed. Note ;; that opening an new ICP file will result in the second data set also ;; being collected in memory if the first was collected that way. ;; Default is Off. ;; ; InMemoryCollection=Off ; InMemoryCollection=On ;; ;; ;; EnableUIDisplay determines whether or not the logger loads its UI ;; components to show the the current profiling state and allow control ;; over profiling. Default is On. ;; ; EnableUIDisplay=Off ; EnableUIDisplay=On ;; ;; ;; Shutdown specifies whether, when the logger is started automatically, it ;; will shut down automatically ("Automatic", the default) or whether it ;; will continue running until manually shut down ("Manual"). The latter ;; behavior is useful when profiling a dynamically loaded component which ;; is loaded and unloaded and reloaded over the course of a single scenario. ;; ; Shutdown=Automatic ; Shutdown=Manual ;; ;; ;; MaxProcesses specifies the maximum number of processes which can be ;; profiled simultaneously. By default, this is 8. ;; ; MaxProcesses=8 ;; ;; ;; MaxThreads specifies the maximum number of threads which can be profiled ;; simultaneously (across multiple processes). By default, this is 32 on ;; machines with 128MB of memory and is adjusted on a sliding scale for ;; machines with more RAM. ;; ; MaxThreads=64 ;; ;; ;; NumberOfBuffers specifies the maximum number of buffers which can be in ;; use at one time. By default, this is set to the (MaxThreads + 1) (one ;; buffer per thread plus one extra for the index). This value must be ;; larger than MaxThreads or an error message will be issued. ; NumberOfBuffers=256 ;; ;; ;; SizeOfBuffers specifies the size (in "K") of I/O buffers to be used to ;; collecting profile data. By default, this is 64 (64k or 65535 bytes). ;; On a system with limited disks but plenty of available RAM, it may be ;; useful to increase the buffer size (keeping in mind that this is the ;; size used PER THREAD being profiled). Maximum size is 1024 (1 megabyte). ;; Minimum size is 4. ;; ; SizeOfBuffers=64 ;; ;; ;; ClearProcessSecurityACL controls whether any special handling is done ;; relative to the ACL of a process handle. This may be necessary in ;; some cases when redirecting output to a new ICP file during a profile ;; run. Three settings are supported: 'default' (which is the default), ;; 'standard', and 'impersonating'. Default will not cause any special ;; ACL handling to take place. Standard should be used to clear process ;; security for a standard service application. Impersonating should be ;; used to clear process security for a service which is impersonating ;; another user. We recommend contacting ICAPSUP before making use of ;; these settings if you are unsure about whether or not they are needed. ;; ; ClearProcessSecurityACL=default ; ClearProcessSecurityACL=standard ; ClearProcessSecurityACL=impersonating ;; ;; ;;**************************************************************************** ;; The following settings are IceCAP-specific (i.e. don't apply if collecting ;; data for DLP, and are read ONCE when the logger is initializing. These ;; settings must be contained in the [IceCAP] section as well. ;;**************************************************************************** ;; ;; P6PerfCounter specifies an additional P6 performance counter whose value ;; is to be collected in addition to time. The optional qualifier specifies ;; to which Ring the counter should apply (0 for Kernel, 3 for User, * or ;; blank for all). By default, this option collects no additional data. If ;; data is collected, it will be recorded in the User1 counter value slot. ;; If the P6 counter C0,* is added, IceCAP analysis will automatically ;; calculate CPI for you. (ie. P6PerfCounter=C0,*) ;; ; P6PerfCounter=24,* ;; ;; ;; For some P6 Performance Counters, a Unit Mask can be used to fine-tune ;; what is being collected. To allow users to specify this unit mask, the ;; following new INI setting has been added. Default value is 0. ;; ; P6PerfCounterUnitMask=0 ; P6PerfCounterUnitMask=f ;; ;; UserCounter specifies one or more optional additional user-defined ;; counters whose value should be recorded with the IceCAP time (and ;; possibly P6 counter) data. At present, IceCAP supports a maximum of 15 ;; user counter values, which includes a P6 counter if one is being ;; recorded. To specify a user counter, the user specifies a DLL name, ;; a counterinfo function name, and a counter initialization function ;; name. See the IceCAP documentation for additional info about ;; writing a User counter. ;; ; UserCounter=NTUserPerf.dll,GetNtCounterInfo,InitNtCounters ;; ;; ;; CollectPFEvents determines whether page fault data is collected and if so, ;; for which processes. It can take the following values: ;; all - pagefault data is collected for all processes in the system ;; profiled - pagefault data is collected only for profiled processes ;; none - default - no pagefault data is collected ;; Note: If you are collecting kernel-mode profiles, CollectPFEvents=profiled ;; will have the same effect of CollectPFEvents=all. ;; ; CollectPFEvents=all ; CollectPFEvents=profiled ; CollectPFEvents=none ;; ;; ;; If CollectPFEvents is not set to 'none', then the PageFaultCategory setting ;; determines what types of page faults are recorded. It can take one or more ;; of the following values (comma separated): ;; Hard (default), Transition, DemandZero, CopyOnWrite, Guard, ;; Soft (equivalent to "Transition, DemandZero,CopyOnWrite,Guard"), ;; All (equivalent to all of the above) ;; Note: Due to a bug in WMI, we cannot collect guard page fault data. This ;; bug exists in Windows 2000 and current Whistler builds, and it is not ;; expected to be fixed in the near term. ;; ; PageFaultCategory=Hard ; PageFaultCategory=Transition ; PageFaultCategory=Soft ; PageFaultCategory=All ;; ;; If CollectPFEvents is not set to 'none', then the WMIBuffers setting determines ;; the number of buffers that the WMI subsystem will allocate for its own use. ;; The size of the buffers is the specified below. The default is 32 buffers. ;; ; WMIBuffers=32 ;; ;; ;; If CollectPFEvents is not set to 'none', then the WMIBufferSize setting ;; determines the size (in K) of the buffers that the WMI subsystem will ;; allocate for its own use. The default is 4K buffers. ;; ; WMIBufferSize=4 ;; ;; ;; ;;**************************************************************************** ;; The following fields are read ONCE when the logger is initializing. If ;; the logger is started manually, they will be read from the [IceCAP] section. ;; If the logger is started from an instrumented process, it will first look ;; for a section with that process's base application name ([WinWord] for ;; example), then if it doesn't find the entry, it will look in the [IceCAP] ;; section. ;;**************************************************************************** ;; ;; DetectKernelTransitions determines whether or not a P6/PII performance ;; counter is used to track transitions between user mode and kernel mode. ;; By default, this is On for P6/PII processors, and Off for vanilla ;; Pentium processors. By turning this off, only Elapsed time can be ;; measured. It can, however, reduce collection overhead as a result. ;; ; DetectKernelTransitions=On ; DetectKernelTransitions=Off ;; ;; ;; Output overrides the path and/or filename used for the log file (ICP ;; file). For additional details, please refer to the documentation. ;; ; Output=C:\ICPFILES ; Output=C:\ICPFILES\SCENARIO1.ICP ;; ;; Additional, application-specific sections can be added to specify profile ;; settings for specific processes. ;; [WinWord] ;; ; Profile=On ; Profile=Off ;;