projects
/
Biblio-Isis
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added ignore_empty_subfields [0.24_1]
[Biblio-Isis]
/
scripts
/
bench.pl
diff --git
a/scripts/bench.pl
b/scripts/bench.pl
index
e7e130b
..
dac926b
100755
(executable)
--- a/
scripts/bench.pl
+++ b/
scripts/bench.pl
@@
-3,7
+3,7
@@
use strict;
use blib;
use strict;
use blib;
-use
IsisDB
;
+use
Biblio::Isis
;
use OpenIsis;
use MARC::File::USMARC;
use OpenIsis;
use MARC::File::USMARC;
@@
-11,12
+11,21
@@
use Benchmark qw( timethese cmpthese ) ;
my $isisdb = shift @ARGV || '/data/isis_data/ps/LIBRI/LIBRI';
my $isisdb = shift @ARGV || '/data/isis_data/ps/LIBRI/LIBRI';
-my $isis =
IsisDB
->new (
+my $isis =
Biblio::Isis
->new (
isisdb => $isisdb,
debug => shift @ARGV,
);
isisdb => $isisdb,
debug => shift @ARGV,
);
-my $rows = $isis->{'maxmfn'};
+my $isis_filter = Biblio::Isis->new (
+ isisdb => $isisdb,
+ debug => shift @ARGV,
+ hash_filter => sub {
+ my $v = shift;
+ return lc($v);
+ }
+);
+
+my $rows = $isis->count;
my $db = OpenIsis::open( $isisdb );
my $db = OpenIsis::open( $isisdb );
@@
-25,12
+34,31
@@
print "rows: $rows\n\n";
my $mfn = 1;
my $r = timethese( -5, {
my $mfn = 1;
my $r = timethese( -5, {
- Isis
DB
=> sub {
+ Isis => sub {
$isis->fetch( $mfn++ % $rows + 1 );
},
$isis->fetch( $mfn++ % $rows + 1 );
},
+ Isis_hash => sub {
+ $isis->to_hash( $mfn++ % $rows + 1 );
+ },
+ Isis_hash_filter => sub {
+ $isis_filter->to_hash( $mfn++ % $rows + 1 );
+ },
+
OpenIsis => sub {
OpenIsis::read( $db, $mfn++ % $rows + 1 );
},
OpenIsis => sub {
OpenIsis::read( $db, $mfn++ % $rows + 1 );
},
+
+ OpenIsis_hash => sub {
+ my $row = OpenIsis::read( $db, $mfn++ % $rows + 1 );
+ my $rec;
+ no strict 'refs';
+ foreach my $f (keys %{$row}) {
+ foreach my $v (@{$row->{$f}}) {
+ push @{$rec->{$f}}, OpenIsis::subfields($v);
+ }
+ }
+
+ },
} );
cmpthese $r;
} );
cmpthese $r;