On Tue, Oct 27, 2009 at 06:06:44PM +0000, Joel Reymont wrote:
> 
> On Oct 27, 2009, at 6:03 PM, Jonathan Adams wrote:
> 
> >Clear clears all values in the aggregation to 0; to remove all  
> >elements from
> >the aggregation, you want trunc(@a).
> 
> That's what I wanted to say but doesn't printa(@a) come before the  
> clear?

Your original script, as a #! script:

--- cut here ---
#!/usr/sbin/dtrace -s

hotspot27563:::
{
        /* every time a probe is hit, record it in the aggregation under name */
        @[probename]=count();
}

profile:::tick-1sec
{
        printa(@);              /* print the current contents of @ */
        clear(@);               /* clear the counts in @ to 0 */
}
--- cut here ---

Without the clear(), you would just print the running counts every second.
With the clear(), you print the running counts, then clear them to zero
*without removing the aggregation entries*.
With s/clear/trunc/g, you would *remove all aggregation entries* from @.

Since I don't have a java process handy, I'll demonstrate using the proc:::
provider:

% dtrace -n'proc:::{...@[probename]=count()}' -n'tick-1s{printa(@);}'
dtrace: description 'proc:::' matched 15 probes
dtrace: description 'tick-1s' matched 1 probe
CPU     ID                    FUNCTION:NAME
  0  66088                         :tick-1s 
  signal-send                                                      30
  signal-handle                                                    31
...
  0  66088                         :tick-1s 
  signal-handle                                                    97
  signal-send                                                     131

  0  66088                         :tick-1s 
  exit                                                              2
  lwp-exit                                                          2
  create                                                            3
  lwp-create                                                        3
  lwp-start                                                         3
  signal-discard                                                    3
  start                                                             3
  exec                                                              4
  exec-success                                                      4
  signal-handle                                                   121
  signal-send                                                     162

  0  66088                         :tick-1s 
  signal-discard                                                    5
  exit                                                             10
  lwp-exit                                                         10
  create                                                           11
  exec                                                             11
  exec-success                                                     11
  lwp-create                                                       11
  lwp-start                                                        11
  start                                                            11
  signal-handle                                                   158
  signal-send                                                     203

  0  66088                         :tick-1s 
  signal-discard                                                    5
  exit                                                             10
  lwp-exit                                                         10
  exec-success                                                     11
  create                                                           13
  exec                                                             13
  lwp-create                                                       13
  lwp-start                                                        13
  start                                                            13
  signal-handle                                                   176
  signal-send                                                     252
...
  0  66088                         :tick-1s 
  signal-discard                                                    5
  exec                                                             18
  exec-success                                                     18
  exit                                                             18
  lwp-exit                                                         18
  create                                                           19
  lwp-create                                                       19
  lwp-start                                                        19
  start                                                            19
  signal-handle                                                   299
  signal-send                                                     399
^C


With clear(), this would look like:

% dtrace -n'proc:::{...@[probename]=count()}' -n'tick-1s{printa(@);clear(@)}'
dtrace: description 'proc:::' matched 15 probes
dtrace: description 'tick-1s' matched 1 probe
CPU     ID                    FUNCTION:NAME
  0  66088                         :tick-1s 
  signal-send                                                      30
  signal-handle                                                    31
...
  0  66088                         :tick-1s 
  signal-handle                                                    67
  signal-send                                                     100

  0  66088                         :tick-1s 
  exit                                                              2
  lwp-exit                                                          2
  create                                                            3
  lwp-create                                                        3
  lwp-start                                                         3
  signal-discard                                                    3
  start                                                             3
  exec                                                              4
  exec-success                                                      4
  signal-handle                                                    24
  signal-send                                                      31

  0  66088                         :tick-1s 
  exit                                                              2
  signal-discard                                                    2
  exec                                                              7
  exec-success                                                      7
  create                                                            8
  lwp-create                                                        8
  lwp-exit                                                          8
  lwp-start                                                         8
  start                                                             8
  signal-handle                                                    37
  signal-send                                                      41

  0  66088                         :tick-1s 
  signal-discard                                                    0
  exit                                                              0
  lwp-exit                                                          0
  exec-success                                                      0
  create                                                            2
  exec                                                              2
  lwp-create                                                        2
  lwp-start                                                         2
  start                                                             2
  signal-handle                                                    18
  signal-send                                                      49
...
  0  66088                         :tick-1s 
  signal-discard                                                    0
  exec                                                              0
  exec-success                                                      0
  exit                                                              0
  lwp-exit                                                          0
  create                                                            0
  lwp-create                                                        0
  lwp-start                                                         0
  start                                                             0
  signal-handle                                                     5
  signal-send                                                       6
^C


With trunc(), this looks like:

% dtrace -n'proc:::{...@[probename]=count()}' -n'tick-1s{printa(@);trunc(@)}'
dtrace: description 'proc:::' matched 15 probes
dtrace: description 'tick-1s' matched 1 probe
CPU     ID                    FUNCTION:NAME
  0  66088                         :tick-1s 
  signal-send                                                      30
  signal-handle                                                    31
...
  0  66088                         :tick-1s 
  signal-handle                                                    67
  signal-send                                                     100

  0  66088                         :tick-1s 
  exit                                                              2
  lwp-exit                                                          2
  create                                                            3
  lwp-create                                                        3
  lwp-start                                                         3
  signal-discard                                                    3
  start                                                             3
  exec                                                              4
  exec-success                                                      4
  signal-handle                                                    24
  signal-send                                                      31

  0  66088                         :tick-1s 
  exit                                                              2
  signal-discard                                                    2
  exec                                                              7
  exec-success                                                      7
  create                                                            8
  lwp-create                                                        8
  lwp-exit                                                          8
  lwp-start                                                         8
  start                                                             8
  signal-handle                                                    37
  signal-send                                                      41

  0  66088                         :tick-1s 
  create                                                            2
  exec                                                              2
  lwp-create                                                        2
  lwp-start                                                         2
  start                                                             2
  signal-handle                                                    18
  signal-send                                                      49
...
  0  66088                         :tick-1s 
  signal-handle                                                     5
  signal-send                                                       6
^C


Is that clear?

Cheers,
- jonathan

> 
> ---
> firefox for android!
> http://wagerlabs.com
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to