File: dbstore.b

package info (click to toggle)
libapache-session-perl 1.94-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 448 kB
  • sloc: perl: 1,514; makefile: 2
file content (53 lines) | stat: -rw-r--r-- 1,197 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use strict;
use Benchmark;
use Apache::Session::Store::DB_File;

use vars qw($rs $ws $n);

my $dir = int(rand(10000));
mkdir $dir, 0700;
chdir $dir;

$ws = {
    args => {FileName => 'bench.dbm'},
    data => {_session_id => 0},
    serialized => "A"x2**10
};
$rs = {
    args => {FileName => 'bench.dbm'},
    data => {_session_id => 0},
    serialized => "A"x2**10
};

sub insert {
    my $store = new Apache::Session::Store::DB_File;
    $store->insert($ws);
    $ws->{data}->{_session_id}++;
}

sub materialize {
    $rs->{data}->{_session_id} = int(rand($ws->{data}->{_session_id} - 1));
    my $store = new Apache::Session::Store::DB_File;
    $store->materialize($rs);
}

timethis(1000, \&insert, 'Insert First 1000');
timethis(1000, \&materialize, 'Random Access n=1000');

for (my $i = 0; $i < 9000; $i++) {
    &insert;
}

timethis(1000, \&insert, 'Insert 10000-11000');
timethis(1000, \&materialize, 'Random Access n=11000');

for (my $i = 0; $i < 89000; $i++) {
    &insert;
}

timethis(1000, \&insert, 'Insert 100000-101000');
timethis(1000, \&materialize, 'Random Access n=101000');

unlink './bench.dbm';
chdir '..';
rmdir $dir;