From 7016c147e405c61f790c209dfdaf93e0ae1543cc Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 30 Mar 2017 19:51:00 -0400 Subject: [PATCH] More optimizations. Progress meter also --- dumpstor.pl | 9 --------- lib/TestCpanInc.pm | 6 +++--- progress.pl | 29 +++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 12 deletions(-) create mode 100755 progress.pl diff --git a/dumpstor.pl b/dumpstor.pl index 7c268b5..f89a7f6 100755 --- a/dumpstor.pl +++ b/dumpstor.pl @@ -5,13 +5,4 @@ use 5.24.0; use Data::Dumper; use Storable; #$Data::Dumper::Terse = 1; - -my $cache = retrive $ARGV[0]; - -for my $key (keys $cache->%*) { - if ($key =~ /OurNet/) { - delete $cache->{$key}; - } -} - print Dumper([keys ((retrieve $ARGV[0])->%*)]); diff --git a/lib/TestCpanInc.pm b/lib/TestCpanInc.pm index 4f04499..150d572 100644 --- a/lib/TestCpanInc.pm +++ b/lib/TestCpanInc.pm @@ -22,7 +22,7 @@ sub remove_imc { } our $last_dep = time(); -our @total_deps = (); +our %total_deps = (); sub dep_order { my $module = shift; @@ -38,8 +38,8 @@ sub dep_order { } next if (Module::_is_banned($dep->name)); - next if ($dep->dist ~~ @total_deps); # skip it if we've already added this to the total deps - push @total_deps, $dep->dist; + next if ($total_deps{$dep->dist}); # skip it if we've already added this to the total deps + $total_deps{$dep->dist} = 1; push @orders, dep_order($dep, $level+1); } diff --git a/progress.pl b/progress.pl new file mode 100755 index 0000000..1f00726 --- /dev/null +++ b/progress.pl @@ -0,0 +1,29 @@ +#!/usr/bin/env perl + +use lib './lib'; +use strict; + +use Dist; +use Storable; +use Time::HiRes qw/time/; +use DateTime; + +my $dists = 0+%Dist::dist_to_mod; + +my $start_time = time(); +my $start_dt = DateTime->now(); +my $cache = retrieve 'modcache.stor'; +my $first_count = 0+$cache->%*; + +while (1) { + sleep(2); + my $cache = eval {retrieve 'modcache.stor'}; + next unless $cache; + my $count = 0+$cache->%*; + + my $rate = ($count-$first_count)/(time()-$start_time); + my $tocomplete = ($dists-$count)/($rate + 0.0000000001); + my $final_dt = $start_dt->clone()->add(seconds => $tocomplete); + printf "%d/%d [%02.2f%%] %0.2f/s %s\n", $count, $dists, 100*$count/$dists, $rate, $final_dt->iso8601; + +};