r59633 - in /branches/upstream/libdevel-nytprof-perl/current: Changes META.yml bin/nytprofhtml bin/nytprofmerge lib/Devel/NYTProf.pm lib/Devel/NYTProf/Core.pm lib/Devel/NYTProf/FileInfo.pm lib/Devel/NYTProf/Reader.pm

gregoa at users.alioth.debian.org gregoa at users.alioth.debian.org
Sun Jun 20 22:07:26 UTC 2010


Author: gregoa
Date: Sun Jun 20 22:06:47 2010
New Revision: 59633

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=59633
Log:
[svn-upgrade] new version libdevel-nytprof-perl (4.03)

Modified:
    branches/upstream/libdevel-nytprof-perl/current/Changes
    branches/upstream/libdevel-nytprof-perl/current/META.yml
    branches/upstream/libdevel-nytprof-perl/current/bin/nytprofhtml
    branches/upstream/libdevel-nytprof-perl/current/bin/nytprofmerge
    branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf.pm
    branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Core.pm
    branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/FileInfo.pm
    branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Reader.pm

Modified: branches/upstream/libdevel-nytprof-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/Changes?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/Changes (original)
+++ branches/upstream/libdevel-nytprof-perl/current/Changes Sun Jun 20 22:06:47 2010
@@ -2,7 +2,7 @@
 
 Changes - List of significant changes to Devel::NYTProf
 
-(As of $Date: 2010-06-17 15:51:01 +0100 (Thu, 17 Jun 2010) $ $Revision: 1310 $)
+(As of $Date: 2010-06-19 19:56:26 +0100 (Sat, 19 Jun 2010) $ $Revision: 1316 $)
 
 =cut
 
@@ -11,6 +11,13 @@
 subroutine profiler docs need update
 add u key to treemap to trigger moving 'up' a level
 add "calls N subs" to treemap mouseover box
+
+=head2 Changes in Devel::NYTProf 4.03 (svn 1316) 19th June 2010
+
+  Fixed another nytprofhtml performance problem for profiles with
+    many files/evals. Much faster merging of evals now.
+
+  For subs that recurse, show max depth and time in subroutine table.
 
 =head2 Changes in Devel::NYTProf 4.02 (svn 1309) 17th June 2010
 

Modified: branches/upstream/libdevel-nytprof-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/META.yml?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/META.yml (original)
+++ branches/upstream/libdevel-nytprof-perl/current/META.yml Sun Jun 20 22:06:47 2010
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               Devel-NYTProf
-version:            4.02
+version:            4.03
 abstract:           Powerful fast feature-rich perl source code profiler
 author:
     - Adam Kaplan <akaplan at cpan.org>, Tim Bunce <timb at cpan.org>

Modified: branches/upstream/libdevel-nytprof-perl/current/bin/nytprofhtml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/bin/nytprofhtml?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/bin/nytprofhtml (original)
+++ branches/upstream/libdevel-nytprof-perl/current/bin/nytprofhtml Sun Jun 20 22:06:47 2010
@@ -7,7 +7,7 @@
 ## http://search.cpan.org/~akaplan/Devel-NYTProf
 ##
 ##########################################################
-# $Id: nytprofhtml 1310 2010-06-17 14:51:01Z tim.bunce at gmail.com $
+# $Id: nytprofhtml 1316 2010-06-19 18:56:26Z tim.bunce at gmail.com $
 ###########################################################
 use warnings;
 use strict;
@@ -43,7 +43,7 @@
 my $json_any = eval { require JSON::Any; JSON::Any->import; JSON::Any->new }
     or warn "Can't load JSON::Any module - HTML visualizations skipped.\n";
 
-our $VERSION = '4.02';
+our $VERSION = '4.03';
 
 if ($VERSION != $Devel::NYTProf::Core::VERSION) {
     die "$0 version '$VERSION' doesn't match version '$Devel::NYTProf::Core::VERSION' of $INC{'Devel/NYTProf/Core.pm'}\n";
@@ -320,12 +320,16 @@
             my $is_opcode = ($pkg eq 'CORE' or $subr =~ /^CORE:/);
             unshift @hints, ($is_opcode) ? 'opcode' : 'xsub';
         }
+        if (my $recdepth = $sub->recur_max_depth) {
+            unshift @hints, sprintf "recurses: max depth %d, inclusive time %s",
+                $recdepth, fmt_time($sub->recur_incl_time);
+        }
 
         $sub_links .= sprintf qq{%*s<a %s>%s</a>%s</span></td>},
             $max_pkg_name_len+2, $pkg,
             $reporter->href_for_sub($subname),
             $subr,
-            (@hints) ? "&nbsp;(".join(", ", at hints).")" : "";
+            (@hints) ? "&nbsp;(".join("; ", at hints).")" : "";
 
         $sub_links .= "</tr>\n";
     }

Modified: branches/upstream/libdevel-nytprof-perl/current/bin/nytprofmerge
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/bin/nytprofmerge?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/bin/nytprofmerge (original)
+++ branches/upstream/libdevel-nytprof-perl/current/bin/nytprofmerge Sun Jun 20 22:06:47 2010
@@ -18,7 +18,7 @@
 require Devel::NYTProf::Data;
 use List::Util qw(min);
 
-our $VERSION = '4.02';
+our $VERSION = '4.03';
     
 if ($VERSION != $Devel::NYTProf::Core::VERSION) {
     die "$0 version '$VERSION' doesn't match version '$Devel::NYTProf::Core::VERSION' of $INC{'Devel/NYTProf/Core.pm'}\n";

Modified: branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf.pm?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf.pm (original)
+++ branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf.pm Sun Jun 20 22:06:47 2010
@@ -7,11 +7,11 @@
 ## http://search.cpan.org/dist/Devel-NYTProf/
 ##
 ###########################################################
-## $Id: NYTProf.pm 1310 2010-06-17 14:51:01Z tim.bunce at gmail.com $
+## $Id: NYTProf.pm 1316 2010-06-19 18:56:26Z tim.bunce at gmail.com $
 ###########################################################
 package Devel::NYTProf;
 
-our $VERSION = '4.02';
+our $VERSION = '4.03';
 
 package    # hide the package from the PAUSE indexer
     DB;

Modified: branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Core.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Core.pm?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Core.pm (original)
+++ branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Core.pm Sun Jun 20 22:06:47 2010
@@ -7,14 +7,14 @@
 # http://search.cpan.org/dist/Devel-NYTProf/
 #
 ###########################################################
-# $Id: Core.pm 1310 2010-06-17 14:51:01Z tim.bunce at gmail.com $
+# $Id: Core.pm 1316 2010-06-19 18:56:26Z tim.bunce at gmail.com $
 ###########################################################
 package Devel::NYTProf::Core;
 
 
 use XSLoader;
 
-our $VERSION = '4.02';    # increment with XS changes too
+our $VERSION = '4.03';    # increment with XS changes too
 
 XSLoader::load('Devel::NYTProf', $VERSION);
 

Modified: branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/FileInfo.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/FileInfo.pm?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/FileInfo.pm (original)
+++ branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/FileInfo.pm Sun Jun 20 22:06:47 2010
@@ -344,14 +344,33 @@
             if $donor_fi->src_digest ne $survivor_fi->src_digest;
 
         # remove eval from NYTP_FIDi_HAS_EVALS
-        if (my $eval_fis = $self->[NYTP_FIDi_HAS_EVALS()]) {
+        # XXX DISABLED - moved to after donor loop
+        if (0 and my $eval_fis = $self->[NYTP_FIDi_HAS_EVALS()]) {
             my $count = @$eval_fis;
-            @$eval_fis = grep { $_ != $donor_fi } @$eval_fis;
-            warn "_delete_eval missed" if @$eval_fis == $count;
-            # XXX needs to update NYTP_FIDi_SUBS_DEFINED NYTP_FIDi_SUBS_CALLED ?
+            # XXX this is very expensive when there are many siblings
+            # could possibly be deferred till outside the donor loop
+            # so alll donors could be deleted at once
+            while ($count--) {
+                if ($eval_fis->[$count] == $donor_fi) {
+                    splice @$eval_fis, $count, 1;
+                    undef $count; # mark as done
+                    last;
+                }
+            }
+            warn "_delete_eval missed for ".$donor_fi->filename
+                if defined $count;
         }
 
         $donor_fi->_nullify;
+    }
+
+    # remove donors
+    if (my $eval_fis = $self->[NYTP_FIDi_HAS_EVALS()]) {
+        my %donors = map { +"$_" => 1 } @donors;
+        my $count = @$eval_fis;
+        @$eval_fis = grep { !$donors{$_} } @$eval_fis;
+        warn "_delete_eval mismatch"
+            if @$eval_fis != $count - @donors;
     }
 
     # now the fid merging is complete...

Modified: branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Reader.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Reader.pm?rev=59633&op=diff
==============================================================================
--- branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Reader.pm (original)
+++ branches/upstream/libdevel-nytprof-perl/current/lib/Devel/NYTProf/Reader.pm Sun Jun 20 22:06:47 2010
@@ -7,11 +7,11 @@
 ## http://search.cpan.org/dist/Devel-NYTProf/
 ##
 ###########################################################
-## $Id: Reader.pm 1309 2010-06-17 14:50:32Z tim.bunce at gmail.com $
+## $Id: Reader.pm 1316 2010-06-19 18:56:26Z tim.bunce at gmail.com $
 ###########################################################
 package Devel::NYTProf::Reader;
 
-our $VERSION = '4.01';
+our $VERSION = '4.03';
 
 use warnings;
 use strict;
@@ -202,7 +202,7 @@
         if ($opts{show_progress}) {
             local $| = 1;
             ++$progress;
-            printf "\r %d%% ... ", $progress/@fis*100;
+            printf "\r %3d%% ... ", $progress/@fis*100;
         }
 
         my $meta = $fi->meta;




More information about the Pkg-perl-cvs-commits mailing list