yes, i did a simple benchmark:
timethese($ARGV[0]||-1, {
hash => sub { $foo->set_name("x");return $foo->get_name },
array => sub { $bar->set_name("x");return $bar->get_name },
});
$foo is a blessed hash and $bar a blessed array. both have 15 attributes.
the array subroutine takes about 93% of the time.
memory saving depends, of course,
on the length of the hash keys. with 15 hash keys of length 5 i save about
15% 35%. (measured with Devel::Size::total_size)
edit: i measured wrong for the memory test. i was just copying references before. |