/[Biblio-Isis]/trunk/scripts/bench.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/scripts/bench.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 14 - (show annotations)
Wed Dec 29 20:11:34 2004 UTC (19 years, 3 months ago) by dpavlin
File MIME type: text/plain
File size: 1079 byte(s)
benchmark hash creation for various implementations

1 #!/usr/bin/perl -w
2
3 use strict;
4 use blib;
5
6 use IsisDB;
7 use OpenIsis;
8 use MARC::File::USMARC;
9
10 use Benchmark qw( timethese cmpthese ) ;
11
12 my $isisdb = shift @ARGV || '/data/isis_data/ps/LIBRI/LIBRI';
13
14 my $isis = IsisDB->new (
15 isisdb => $isisdb,
16 debug => shift @ARGV,
17 );
18
19 my $isis_filter = IsisDB->new (
20 isisdb => $isisdb,
21 debug => shift @ARGV,
22 hash_filter => sub {
23 my $v = shift;
24 return lc($v);
25 }
26 );
27
28 my $rows = $isis->{'maxmfn'};
29
30 my $db = OpenIsis::open( $isisdb );
31
32 print "rows: $rows\n\n";
33
34 my $mfn = 1;
35
36 my $r = timethese( -5, {
37 IsisDB => sub {
38 $isis->fetch( $mfn++ % $rows + 1 );
39 },
40 IsisDB_hash => sub {
41 $isis->to_hash( $mfn++ % $rows + 1 );
42 },
43 IsisDB_hash_filter => sub {
44 $isis_filter->to_hash( $mfn++ % $rows + 1 );
45 },
46
47 OpenIsis => sub {
48 OpenIsis::read( $db, $mfn++ % $rows + 1 );
49 },
50
51 OpenIsis_hash => sub {
52 my $row = OpenIsis::read( $db, $mfn++ % $rows + 1 );
53 my $rec;
54 no strict 'refs';
55 foreach my $f (keys %{$row}) {
56 foreach my $v (@{$row->{$f}}) {
57 push @{$rec->{$f}}, OpenIsis::subfields($v);
58 }
59 }
60
61 },
62 } );
63 cmpthese $r;
64

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26