The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

  ObjStore::AVHV - Hash interface, array performance

SYNOPSIS

  package MatchMaker::Person;
  use base 'ObjStore::AVHV';
  use fields qw( height hairstyle haircolor shoetype favorites );

DESCRIPTION

Support for extremely efficient records.

Even without optimization or benchmarks, the memory savings achieved by factoring the hash keys is quite significant and a large performance win. Perl implements a similar strategy by globally sharing hash keys across all (transient) hashes.

TODO

  • More documentation

  • This could be implemented with zero per-record overhead if we stored the layout in a per-class global. This would definitely be slower though.