--- trunk/lib/Sack/Node.pm 2009/10/03 21:09:51 92 +++ trunk/lib/Sack/Node.pm 2009/10/03 21:43:34 93 @@ -8,6 +8,7 @@ use Carp qw(confess); use Data::Dump qw(dump); use Storable; +use Time::HiRes qw(time); sub new { @@ -39,7 +40,7 @@ while ( 1 ) { my $data = Storable::fd_retrieve( $client ); - warn "[$port] <<<< ", dump keys %$data; + warn "[$port] <<<< ", dump( $data ); my $result; @@ -62,6 +63,7 @@ } + our $rec; our $out; @@ -71,7 +73,7 @@ undef $out; my $affected = 0; - $self->report_start; + my $start_t = time; my $coderef = eval "sub { $code }"; if ( $@ ) { @@ -81,7 +83,7 @@ foreach my $pos ( 0 .. $#{ $self->{data} } ) { - $rec = $self->{data}->{$pos}; + $rec = $self->{data}->[$pos]; if ( ! $rec ) { print STDERR "END @ $pos"; last; @@ -99,8 +101,13 @@ $pos % 1000 == 0 ? print STDERR "." : 0 ; }; - $self->report( "$affected affected" ); + my $dt = time - $start_t; + my $report = [ $self->{port}, $affected, $dt, scalar $self->{data} / $dt ]; + warn sprintf "[%d] %d affected in %1.4fs %.2f/s\n", @$report; + + warn "out ", dump( $out ); + return $out; } 1;