Dan McGee wrote: > > [EMAIL PROTECTED] /tmp > $ time ./repopkg.orig testing | wc -l > 28 > > real 0m13.195s > user 0m9.166s > sys 0m3.343s > > [EMAIL PROTECTED] /tmp > $ time ./repopkg testing | wc -l > 28 > > real 0m6.445s > user 0m4.523s > sys 0m1.203s >
I still wasn't happy with the performance, so I tried to do it in perl as you suggested. This is my first perl script so it wouldn't surprise me if it was poorly written. Also, I don't have testing repo enabled so I am not perfectly sure the script works correctly, but it works fine with normal repos and the performance difference is huge. $ time ./repolist.sh extra | wc -l 372 real 0m4.739s user 0m4.260s sys 0m0.440s $ time ./repolist.pl extra | wc -l 372 real 0m0.100s user 0m0.070s sys 0m0.020s #!/usr/bin/perl %count = (); $output = `pacman -Sl $ARGV[0]`; @sync = split(/\n/, $output); foreach $pkg (@sync) { @info = split(/ /, $pkg); $pkg = @info[1] . " " . @info[2]; $count{$pkg}++; } $output = `pacman -Q`; @local = split(/\n/, $output); foreach $pkg (@local) { $count{$pkg}++; } foreach $element (keys %count) { if ($count{$element} == 2) { push @{ [EMAIL PROTECTED] }, $element; } } @intersection = sort @intersection; foreach $pkg (@intersection) { print $pkg . "\n"; } Maybe someone can rewrite this in two lines? :D _______________________________________________ pacman-dev mailing list pacman-dev@archlinux.org http://archlinux.org/mailman/listinfo/pacman-dev