The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.