sigenable

132

1627.70

0.00000

0.00000

0.00000

0.00012

pstat

1

49.32

0.00010

0.00010

0.00010

0.00010

lwp_cond_broadcast

6

73.99

0.00000

0.00001

0.00006

0.00008

ttrace

1

49.32

0.00007

0.00007

0.00007

0.00007

open

6

295.95

0.00001

0.00001

0.00002

0.00007

ioctl

1

49.32

0.00004

0.00004

0.00004

0.00004

shmctl

2

98.65

0.00000

0.00002

0.00004

0.00004

brk

15

184.97

0.00000

0.00000

0.00000

0.00003

mpctl

16

789.19

0.00000

0.00000

0.00000

0.00003

sigaction

22

1085.13

0.00000

0.00000

0.00001

0.00003

close

10

493.24

0.00000

0.00000

0.00001

0.00002

-------------------------------------------------------------------------------

Total

418

317.52

0.00000

0.01721

8.74711

8.86298

--------------------------------------------------------------------------------

Interpreting the Data

For each measurement (run status, I/O, or system calls), one table is collected and printed for each process which sums the data from all threads in that process. This can cause confusion when interpreting the results.

For example:

Target

Execution Time

 

Real

time:

3.149

seconds

User

time:

0.689

seconds

System time:

0.165

seconds

...

 

 

 

System

Usage - Run Status

--------------------------------------------------------------------------------

Relative

-------- Time (thread secs)

--------

-------

Percentage

--------

Time

Running

Eligible

Waiting

Running

Eligible

Waiting

--------------------------------------------------------------------------------

Overall

0.0904

0.0124

34.9427

0.26%

0.04%

99.71%

--------------------------------------------------------------------------------

This report output says that the entire program ran in 3.149 seconds, and yet 34.9427 seconds were spent waiting. This is because a lot of threads are running in this program and the sum of all of their wait times is 34.9427 seconds.

Attaching to a Running Process to Perform Precise Measurements

You can attach to a running process for precise measurements (which use dynamic instrumentation) until the process ends. The dependent shared libraries of the program must be mapped as private before you can attach to the process to add instrumentation.

Enable private mapping of the shared libraries by using the chatr(1) command with the +dbg enable option on the program file.

You can attach to the process for these measurements:

cgprof

fcount

fcover

To attach to a process, you must specify the process ID (PID). The syntax is:

caliper measurement [options] pid

For example:

$ caliper cgprof 7654

To perform precise measurements of a process:

1.Run chatr(1) with the +dbg enable option on the program you want to measure. For example:

$ chatr +dbg enable ./myprog

160 HP Caliper Features Specific to HP-UX