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
|
use Benchmark;
use Apache::Session::Serialize::UUEncode;
use Apache::Session::Serialize::Base64;
use Apache::Session::Serialize::Storable;
use vars qw($hash);
$hash = {
serialized => undef,
data => {
foo => 'A'x32,
bar => [1,2,3,4,5,6,7,8,9,0],
baz => {
blah => 'A'x32,
bleh => 'B'x32
}
}
};
sub uue {
my $z = Apache::Session::Serialize::UUEncode::serialize($hash);
Apache::Session::Serialize::UUEncode::unserialize($hash);
}
sub base64 {
my $z = Apache::Session::Serialize::Base64::serialize($hash);
Apache::Session::Serialize::Base64::unserialize($hash);
}
sub storable {
my $z = Apache::Session::Serialize::Storable::serialize($hash);
Apache::Session::Serialize::Storable::unserialize($hash);
}
timethese(-3, {
Base64 => \&base64,
UUE => \&uue,
Storable => \&storable
});
$hash->{data}->{foo} = 'A'x32000;
timethese(-3, {
'Big Base64' => \&base64,
'Big UUE' => \&uue,
'Big Storable' => \&storable,
});
print "Length with UUE: ". length(Apache::Session::Serialize::UUEncode::serialize($hash)) ."\n";
print "Length with Base64: ". length(Apache::Session::Serialize::Base64::serialize($hash)) ."\n";
print "Length with Storable: ". length(Apache::Session::Serialize::Storable::serialize($hash)) ."\n";
|