Author: tim.bunce
Date: Fri Oct 17 04:01:59 2008
New Revision: 526

Modified:
    trunk/HACKING
    trunk/NYTProf.xs
    trunk/lib/Devel/NYTProf.pm
    trunk/lib/Devel/NYTProf/Data.pm
    trunk/t/test01.rdt
    trunk/t/test02.rdt
    trunk/t/test03.rdt
    trunk/t/test05.rdt
    trunk/t/test06.rdt
    trunk/t/test07.rdt
    trunk/t/test08.rdt
    trunk/t/test09.rdt
    trunk/t/test10.rdt
    trunk/t/test11.rdt
    trunk/t/test12.rdt
    trunk/t/test13.rdt
    trunk/t/test14.rdt
    trunk/t/test30-fork.0.rdt
    trunk/t/test30-fork.1.rdt
    trunk/t/test30-fork.1.x
    trunk/t/test40pmc.rdt
    trunk/t/test50-disable.rdt
    trunk/t/test60-subname.rdt
    trunk/t/test80-recurs.rdt

Log:
Use "wbx" mode for the file, except on windows.
Catch enable_profile being called when the profiler isn't initialized.
Warn if user selects a clock but clock_gettime() isnt available.
Add time-of-day to start pid and end pid tags.
Warn if the sum of the statement times is more than 110% of the overall  
profiler time.
Don't count time in fork() in child.
Add a bunch of new attributes:
     profiler_duration profiler_end_time profiler_start_time
     total_stmts_discounted total_stmts_duration total_stmts_measured
Update the Limitations section of the doc.
Added Nick and Jan to history.


Modified: trunk/HACKING
==============================================================================
--- trunk/HACKING       (original)
+++ trunk/HACKING       Fri Oct 17 04:01:59 2008
@@ -293,9 +293,7 @@
  subtract the difference. Then use the same logic to get inclusive and  
exclusive
  values as we use for inclusive and exclusive subroutine times.

-Could add an extra attribute that measures time spent when recursing  
(based on
-CvDEPTH(cv)) wich would be 0 for subs that didn't recurse (a handy  
boolean) and
-could be subtracted from the inclusive time to get the 'outer' inclusive  
time.
+Report max recursion depth and reci_time per sub in per-file reports.

  Could add ::Data method to write source code for each fid into  
$dir/nytprof_src_$fid.txt
  OR, probably better, add method to return source code array ref, that  
defaults to returning

Modified: trunk/NYTProf.xs
==============================================================================
--- trunk/NYTProf.xs    (original)
+++ trunk/NYTProf.xs    Fri Oct 17 04:01:59 2008
@@ -87,7 +87,6 @@

  #define NYTP_TAG_NO_TAG          '\0'   /* Used as a flag to mean "no tag"  
*/

-#define output_int(i)            output_tag_int(NYTP_TAG_NO_TAG, (unsigned  
int)(i))

  /* Hash table definitions */
  #define MAX_HASH_SIZE 512
@@ -248,7 +247,9 @@
  /* prototypes */
  static void output_header(pTHX);
  static void output_tag_int(unsigned char tag, unsigned int);
+#define     output_int(i)   output_tag_int(NYTP_TAG_NO_TAG, (unsigned  
int)(i))
  static void output_str(char *str, I32 len);
+static void output_nv(NV nv);
  static unsigned int read_int();
  static SV *read_str(pTHX_ SV *sv);
  static unsigned int get_file_id(pTHX_ char*, STRLEN, int created_via);
@@ -280,13 +281,7 @@
  #ifndef HAS_GETPPID
  #define getppid() 0
  #endif
-#define OUTPUT_PID() STMT_START { \
-    assert(out != NULL); output_tag_int(NYTP_TAG_PID_START, getpid());  
output_int(getppid()); \
-} STMT_END

-#define END_OUTPUT_PID(pid) STMT_START { \
-    assert(out != NULL); output_tag_int(NYTP_TAG_PID_END, pid);  
NYTP_flush(out); \
-} STMT_END

  /***********************************
   * Devel::NYTProf Functions        *
@@ -767,6 +762,24 @@
      return fclose(raw_file);
  }

+
+static NV
+gettimeofday_nv(void)
+{
+#ifdef HAS_GETTIMEOFDAY
+    struct timeval when;
+    gettimeofday(&when, (struct timezone *) 0);
+    return when.tv_sec + (when.tv_usec / 1000000.0);
+#else
+    if (u2time) {
+        UV time_of_day[2];
+        (*u2time)(aTHX_ &time_of_day);
+        return time_of_day[0] + (time_of_day[1] / 1000000.0);
+    }
+    return 0.0;
+#endif
+}
+
  /**
   * output file header
   */
@@ -806,15 +819,12 @@
                    compression_level, zlibVersion());
        NYTP_write(out, &tag, sizeof(tag));
        NYTP_start_deflate(out);
-
-       /* If the next action stops being OUTPUT_PID(), or it stops having
-          a flush() built in, consider adding a call to
-          sync_avail_out_to_ftell() "here" instead, most logically by putting
-          it in NYTP_start_deflate(out).  */
      }
  #endif
        
-    OUTPUT_PID();
+    output_tag_int(NYTP_TAG_PID_START, getpid());
+    output_int(getppid());
+    output_nv(gettimeofday_nv());

      write_cached_fids();                          /* empty initially,  
non-empty after fork */

@@ -1575,8 +1585,9 @@
          return;
      }

+    reinit_if_forked(aTHX);
+
      if (last_executed_fid) {
-        reinit_if_forked(aTHX);

          output_tag_int((unsigned char)((profile_blocks)
                        ? NYTP_TAG_TIME_BLOCK : NYTP_TAG_TIME_LINE), elapsed);
@@ -1745,6 +1756,14 @@
  open_output_file(pTHX_ char *filename)
  {
      char filename_buf[MAXPATHLEN];
+    /* 'x' is a GNU C lib extension for O_EXCL which gives us a little
+     * extra protection, but it isn't POSIX compliant */
+    char *mode = "wbx";
+    /* most systems that don't support it will silently ignore it
+     * but for some we need to remove it to avoid an error */
+#ifdef WIN32
+    mode = "wb";
+#endif

      if ((profile_opts & NYTP_OPTf_ADDPID)
      || out /* already opened so assume forking */
@@ -1756,12 +1775,13 @@

      /* some protection against multiple processes writing to the same file  
*/
      unlink(filename);   /* throw away any previous file */
-    out = NYTP_open(filename, "wb");
+
+    out = NYTP_open(filename, mode);
      if (!out) {
          int fopen_errno = errno;
          char *hint = "";
          if (fopen_errno==EEXIST && !(profile_opts & NYTP_OPTf_ADDPID))
-            hint = " (enable addpid mode to protect against concurrent  
writes)";
+            hint = " (enable addpid option to protect against concurrent  
writes)";
          disable_profile(aTHX);
          croak("Failed to open output '%s': %s%s", filename,  
strerror(fopen_errno), hint);
      }
@@ -1780,9 +1800,11 @@
      /* we're now the child process */
      if (trace_level >= 1)
          warn("New pid %d (was %d)\n", getpid(), last_pid);
+
      /* reset state */
      last_pid = getpid();
      last_executed_fileptr = NULL;
+    last_executed_fid = 0; /* don't count the fork in the child */
      if (sub_callers_hv)
          hv_clear(sub_callers_hv);

@@ -2169,6 +2191,10 @@
  enable_profile(pTHX)
  {
      int prev_is_profiling = is_profiling;
+    if (!out) {
+        warn("enable_profile: NYTProf not active");
+        return 0;
+    }
      if (trace_level)
          warn("NYTProf enable_profile%s", (prev_is_profiling)?" (already  
enabled)":"");
      is_profiling = 1;
@@ -2214,10 +2240,13 @@
      if (out) {
          write_sub_line_ranges(aTHX);
          write_sub_callers(aTHX);
+
          /* mark end of profile data for last_pid pid
           * (which is the pid that relates to the out filehandle)
           */
-        END_OUTPUT_PID(last_pid);
+        output_tag_int(NYTP_TAG_PID_END, last_pid);
+        output_nv(gettimeofday_nv());
+
          if (-1 == NYTP_close(out, 0))
              warn("Error closing profile data file: %s", strerror(errno));
          out = NULL;
@@ -2259,6 +2288,11 @@
              croak("clock_gettime CLOCK_REALTIME not available (%s),  
aborting",
                  strerror(errno));
      }
+#else
+    if (profile_clock != -1) {  /* user tried to select different clock */
+        warn("clock %d not available (clock_gettime not supported on this  
system)\n");
+        profile_clock = -1;
+    }
  #endif

      if (trace_level || profile_zero)
@@ -2658,6 +2692,15 @@
  }


+static void
+store_attrib_sv(pTHX_ HV *attr_hv, char *text, SV *value_sv)
+{
+    (void)hv_store(attr_hv, text, (I32)strlen(text), value_sv, 0);
+    if (trace_level >= 2)
+        warn(": %s = '%s'\n", text, SvPV_nolen(value_sv));
+}
+
+
  /**
   * Process a profile output file and return the results in a hash like
   * { fid_fileinfo  => [ [file, other...info ], ... ], # index by [fid]
@@ -2680,9 +2723,9 @@
      unsigned int last_file_num = 0;
      unsigned int last_line_num = 0;
      int statement_discount = 0;
-    NV total_stmt_seconds = 0.0;
-    int total_stmt_measures = 0;
-    int total_stmt_discounts = 0;
+    NV total_stmts_duration = 0.0;
+    int total_stmts_measured = 0;
+    int total_stmts_discounted = 0;
      HV *profile_hv;
      HV* profile_modes = newHV();
      HV *live_pids_hv = newHV();
@@ -2696,6 +2739,11 @@
      HV* sub_callers_hv = newHV();
      SV *tmp_str_sv = newSVpvn("",0);

+    /* these times don't reflect profile_enable & profile_disable calls */
+    NV profiler_start_time = 0.0;
+    NV profiler_end_time = 0.0;
+    NV profiler_duration = 0.0;
+
      av_extend(fid_fileinfo_av, 64);               /* grow it up front. */
      av_extend(fid_filecontents_av, 64);
      av_extend(fid_line_time_av, 64);
@@ -2732,7 +2780,7 @@
                  if (statement_discount)
                      warn("multiple statement discount after %u:%d\n",  
last_file_num, last_line_num);
                  ++statement_discount;
-                ++total_stmt_discounts;
+                ++total_stmts_discounted;
                  break;
              }

@@ -2804,8 +2852,8 @@
                          warn("\tblock %u, sub %u\n", block_line_num,  
sub_line_num);
                  }

-                total_stmt_measures++;
-                total_stmt_seconds += seconds;
+                total_stmts_measured++;
+                total_stmts_duration += seconds;
                  statement_discount = 0;
                  last_file_num = file_num;
                  break;
@@ -2985,10 +3033,15 @@
                  unsigned int pid  = read_int();
                  unsigned int ppid = read_int();
                  int len = my_snprintf(text, sizeof(text), "%d", pid);
+                profiler_start_time = (file_minor >= 1) ? read_nv() : 0;
+
                  (void)hv_store(live_pids_hv, text, len, newSVuv(ppid), 0);
                  if (trace_level)
-                    warn("Start of profile data for pid %s  
(ppid %d, %"IVdf" pids live)\n",
-                        text, ppid, HvKEYS(live_pids_hv));
+                    warn("Start of profile data for pid %s  
(ppid %d, %"IVdf" pids live) at %"NVff"\n",
+                        text, ppid, HvKEYS(live_pids_hv),  
profiler_start_time);
+
+                store_attrib_sv(aTHX_ attr_hv, "profiler_start_time",  
newSVnv(profiler_start_time));
+
                  break;
              }

@@ -2997,12 +3050,19 @@
                  char text[MAXPATHLEN*2];
                  unsigned int pid = read_int();
                  int len = my_snprintf(text, sizeof(text), "%d", pid);
+                profiler_end_time = (file_minor >= 1) ? read_nv() : 0;
+
                  if (!hv_delete(live_pids_hv, text, len, 0))
                      warn("Inconsistent pids in profile data (pid %d not  
introduced)",
                          pid);
                  if (trace_level)
-                    warn("End of profile data for pid %s, %"IVdf"  
remaining\n", text,
-                        HvKEYS(live_pids_hv));
+                    warn("End of profile data for pid %s (%"IVdf"  
remaining) at %"NVff"\n", text,
+                        HvKEYS(live_pids_hv), profiler_end_time);
+
+                store_attrib_sv(aTHX_ attr_hv, "profiler_end_time",  
newSVnv(profiler_end_time));
+                profiler_duration = profiler_end_time -  
profiler_start_time;
+                store_attrib_sv(aTHX_ attr_hv, "profiler_duration",  
newSVnv(profiler_duration));
+
                  break;
              }

@@ -3022,10 +3082,7 @@
                  }
                  *value++ = '\0';
                  value_sv = newSVpvn(value, end-value);
-                (void)hv_store(attr_hv, text, (I32)strlen(text), value_sv,  
0);
-                if (trace_level >= 2)
-                    /* includes \n */
-                    warn(": %s = '%s'\n", text, SvPV_nolen(value_sv));
+                store_attrib_sv(aTHX_ attr_hv, text, value_sv);
                  if ('t' == *text && strEQ(text, "ticks_per_sec")) {
                      ticks_per_sec = (unsigned int)SvUV(value_sv);
                  }
@@ -3070,9 +3127,27 @@
      sv_free((SV*)live_pids_hv);
      sv_free(tmp_str_sv);

-    if (trace_level >= 1)
-        warn("Statement totals: measured %d, discounted %d,  
time %"NVff"s\n",
-            total_stmt_measures, total_stmt_discounts, total_stmt_seconds);
+    store_attrib_sv(aTHX_ attr_hv, "total_stmts_measured",    
newSVnv(total_stmts_measured));
+    store_attrib_sv(aTHX_ attr_hv, "total_stmts_discounted",  
newSVnv(total_stmts_discounted));
+    store_attrib_sv(aTHX_ attr_hv, "total_stmts_duration",    
newSVnv(total_stmts_duration));
+
+    if (1) {
+        int show_summary_stats = (trace_level >= 1);
+
+        if (profiler_end_time && total_stmts_duration > profiler_duration  
* 1.1) {
+            warn("The sum of the statement timings is %.1f%% of the total  
time profiling."
+                 " (Values slightly over 100%% can be due simply to  
cumulative timing errors,"
+                 " whereas larger values can indicate a problem with the  
clock used.)\n",
+                total_stmts_duration / profiler_duration * 100);
+            show_summary_stats = 1;
+        }
+
+        if (show_summary_stats)
+            warn("Summary: statements profiled %d (%d-%d), sum of  
time %"NVff"s, profile spanned %"NVff"s\n",
+                total_stmts_measured-total_stmts_discounted,
+                total_stmts_measured, total_stmts_discounted,
+                total_stmts_duration,  
profiler_end_time-profiler_start_time);
+    }

      profile_hv = newHV();
      (void)hv_stores(profile_hv, "attribute",           
newRV_noinc((SV*)attr_hv));

Modified: trunk/lib/Devel/NYTProf.pm
==============================================================================
--- trunk/lib/Devel/NYTProf.pm  (original)
+++ trunk/lib/Devel/NYTProf.pm  Fri Oct 17 04:01:59 2008
@@ -334,14 +334,10 @@

  =head1 LIMITATIONS

-=head2 Only profiles code loaded after this module
-
-Loading via the perl -d option ensures it's loaded first.
-
  =head2 threads

  C<Devel::NYTProf> is not currently thread safe. If you'd be interested in
-helping us make it thread safe then please get in touch with us.
+helping to make it thread safe then please get in touch with us.

  =head2 For perl versions before 5.8.8 it may change what caller() returns

@@ -352,17 +348,12 @@
  =head2 Calls made via operator overloading

  Calls made via operator overloading are not noticed by any subroutine  
profiler.
+Though the statements executed by the code in the overload subs are  
profiled.

  =head2 goto

  The C<goto &$sub;> isn't recognised as a subroutine call by the subroutine  
profiler.

-=head2 Windows
-
-Currently there's no support for Windows. Some work is being done on a  
port.
-If you'd be interested in helping us port to Windows then please get in  
touch
-with us.
-
  =head2 #line directives

  The reporting code currently doesn't handle #line directives, but at least  
it
@@ -385,7 +376,7 @@

  If your system doesn't support the C<clock=N> option then you could try
  using the C<usecputime=1> option. That will give you cpu-time measurements
-but only at a very low 1/00th of a second resolution.
+but only at a very low 1/100th of a second resolution.

  =head1 BUGS

@@ -479,7 +470,8 @@
  cross-linked reports.

  Steve Peters came on board along the way with patches for portability and  
to
-keep NYTProf working with the latest development perl versions.
+keep NYTProf working with the latest development perl versions. Nicholas  
Clark
+added zip compression. Jan Dubois contributed Windows support.

  Adam's work is sponsored by The New York Times Co.  
L<http://open.nytimes.com>.
  Tim's work was partly sponsored by Shopzilla. L<http://www.shopzilla.com>.

Modified: trunk/lib/Devel/NYTProf/Data.pm
==============================================================================
--- trunk/lib/Devel/NYTProf/Data.pm     (original)
+++ trunk/lib/Devel/NYTProf/Data.pm     Fri Oct 17 04:01:59 2008
@@ -431,12 +431,14 @@
  sub normalize_variables {
      my $self       = shift;

-    $self->{attribute}{basetime}      = 0;
-    $self->{attribute}{xs_version}    = 0;
-    $self->{attribute}{perl_version}  = 0;
-    $self->{attribute}{clock_id}      = 0;
-    $self->{attribute}{ticks_per_sec} = 0;
-    $self->{attribute}{nv_size}       = 0;
+    for my $attr (qw(
+        basetime xs_version perl_version clock_id ticks_per_sec nv_size
+        profiler_duration profiler_end_time profiler_start_time
+        total_stmts_duration
+        total_stmts_measured total_stmts_discounted
+    )) {
+        $self->{attribute}{$attr} = 0;
+    }

      my $eval_regex = qr/ \( ((?:re_)?) eval \s \d+ \) /x;


Modified: trunk/t/test01.rdt
==============================================================================
--- trunk/t/test01.rdt  (original)
+++ trunk/t/test01.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       2       [ 0 4 ]
  fid_block_time        1       7       [ 0 4 ]

Modified: trunk/t/test02.rdt
==============================================================================
--- trunk/t/test02.rdt  (original)
+++ trunk/t/test02.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       2       [ 0 4 ]
  fid_block_time        1       7       [ 0 7 ]

Modified: trunk/t/test03.rdt
==============================================================================
--- trunk/t/test03.rdt  (original)
+++ trunk/t/test03.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       2       [ 0 2 ]
  fid_block_time        1       8       [ 0 2 ]

Modified: trunk/t/test05.rdt
==============================================================================
--- trunk/t/test05.rdt  (original)
+++ trunk/t/test05.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       5       [ 0 2 ]
  fid_block_time        1       9       [ 0 2 ]

Modified: trunk/t/test06.rdt
==============================================================================
--- trunk/t/test06.rdt  (original)
+++ trunk/t/test06.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       4       [ 0 1 ]
  fid_block_time        1       6       [ 0 410 ]

Modified: trunk/t/test07.rdt
==============================================================================
--- trunk/t/test07.rdt  (original)
+++ trunk/t/test07.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       1       [ 0 1 ]
  fid_fileinfo  1       [ /.../test07.p   1 2 0 0 ]

Modified: trunk/t/test08.rdt
==============================================================================
--- trunk/t/test08.rdt  (original)
+++ trunk/t/test08.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       1       0       0
  fid_block_time        1       1       1       1

Modified: trunk/t/test09.rdt
==============================================================================
--- trunk/t/test09.rdt  (original)
+++ trunk/t/test09.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       2       0       0
  fid_block_time        1       2       1       2

Modified: trunk/t/test10.rdt
==============================================================================
--- trunk/t/test10.rdt  (original)
+++ trunk/t/test10.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       1       0       0
  fid_block_time        1       1       1       1

Modified: trunk/t/test11.rdt
==============================================================================
--- trunk/t/test11.rdt  (original)
+++ trunk/t/test11.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       3       0       0
  fid_block_time        1       3       1       0

Modified: trunk/t/test12.rdt
==============================================================================
--- trunk/t/test12.rdt  (original)
+++ trunk/t/test12.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       1       [ 0 1 ]
  fid_block_time        2       1       [ 0 1 ]

Modified: trunk/t/test13.rdt
==============================================================================
--- trunk/t/test13.rdt  (original)
+++ trunk/t/test13.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       4       [ 0 3 ]
  fid_block_time        1       8       [ 0 1 ]

Modified: trunk/t/test14.rdt
==============================================================================
--- trunk/t/test14.rdt  (original)
+++ trunk/t/test14.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       17      [ 0 1 ]
  fid_block_time        1       18      [ 0 1 ]

Modified: trunk/t/test30-fork.0.rdt
==============================================================================
--- trunk/t/test30-fork.0.rdt   (original)
+++ trunk/t/test30-fork.0.rdt   Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       2       [ 0 2 ]
  fid_block_time        1       7       [ 0 3 ]

Modified: trunk/t/test30-fork.1.rdt
==============================================================================
--- trunk/t/test30-fork.1.rdt   (original)
+++ trunk/t/test30-fork.1.rdt   Fri Oct 17 04:01:59 2008
@@ -3,11 +3,16 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       7       [ 0 2 ]
  fid_block_time        1       11      [ 0 2 ]
-fid_block_time 1       17      [ 0 1 ]
  fid_block_time        1       19      [ 0 1 ]
  fid_block_time        1       20      [ 0 1 ]
  fid_block_time        1       22      [ 0 1 ]
@@ -15,13 +20,11 @@
  fid_line_time 1       7       [ 0 2 ]
  fid_line_time 1       11      [ 0 1 ]
  fid_line_time 1       12      [ 0 1 ]
-fid_line_time  1       17      [ 0 1 ]
  fid_line_time 1       19      [ 0 1 ]
  fid_line_time 1       20      [ 0 1 ]
  fid_line_time 1       22      [ 0 1 ]
  fid_sub_time  1       7       [ 0 2 ]
  fid_sub_time  1       11      [ 0 2 ]
-fid_sub_time   1       17      [ 0 1 ]
  fid_sub_time  1       19      [ 0 1 ]
  fid_sub_time  1       20      [ 0 1 ]
  fid_sub_time  1       22      [ 0 1 ]

Modified: trunk/t/test30-fork.1.x
==============================================================================
--- trunk/t/test30-fork.1.x     (original)
+++ trunk/t/test30-fork.1.x     Fri Oct 17 04:01:59 2008
@@ -17,7 +17,7 @@
  0,0,0,
  0,0,0,prefork();
  0,0,0,
-0,1,0,fork;
+0,0,0,fork;
  0,0,0,
  0,1,0,postfork();
  0,1,0,other();

Modified: trunk/t/test40pmc.rdt
==============================================================================
--- trunk/t/test40pmc.rdt       (original)
+++ trunk/t/test40pmc.rdt       Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       4       [ 0 1 ]
  fid_block_time        2       6       [ 0 1 ]

Modified: trunk/t/test50-disable.rdt
==============================================================================
--- trunk/t/test50-disable.rdt  (original)
+++ trunk/t/test50-disable.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       1       [ 0 1 ]
  fid_block_time        1       2       [ 0 1 ]

Modified: trunk/t/test60-subname.rdt
==============================================================================
--- trunk/t/test60-subname.rdt  (original)
+++ trunk/t/test60-subname.rdt  Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       5       [ 0 1 ]
  fid_block_time        1       9       [ 0 1 ]

Modified: trunk/t/test80-recurs.rdt
==============================================================================
--- trunk/t/test80-recurs.rdt   (original)
+++ trunk/t/test80-recurs.rdt   Fri Oct 17 04:01:59 2008
@@ -3,7 +3,13 @@
  attribute     clock_id        0
  attribute     nv_size 0
  attribute     perl_version    0
+attribute      profiler_duration       0
+attribute      profiler_end_time       0
+attribute      profiler_start_time     0
  attribute     ticks_per_sec   0
+attribute      total_stmts_discounted  0
+attribute      total_stmts_duration    0
+attribute      total_stmts_measured    0
  attribute     xs_version      0
  fid_block_time        1       2       [ 0 6 ]
  fid_block_time        1       7       [ 0 1 ]

--~--~---------~--~----~------------~-------~--~----~
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Reply via email to