#!/usr/bin/perl -w use GDBM_File; use Benchmark; use vars qw(%hash $n); $n = 0; tie %hash, 'GDBM_File', '/tmp/foo.gdbm', &GDBM_WRCREAT, 0640; sub insert { $hash{$n} = "A"x2**10; $n++; } sub access { my $this = $hash{int(rand($n-1))}; } timethis(10000, \&insert, 'First 10000'); timethis(10000, \&access, 'Random Access n=10000'); timethis(90000, \&insert, 'Pad to 100000'); timethis(10000, \&insert, 'Insert 100000-110000'); timethis(10000, \&access, 'Random Access n=110000'); timethis(990000, \&insert, 'Pad to 1000000'); timethis(10000, \&insert, 'Insert 1000000-1001000'); timethis(10000, \&access, 'Random Access n=1001000');