#!/usr/local/bin/perl use lib "../lib"; use App::Options qw(:none); use Benchmark qw(:all) ; chdir("../t"); ####################################################################### # The purpose of this benchmark file is to understand how long it # takes to parse a "typical" set of options. # I used the option file represented by the main regression test # suite in the "t" directory. # Result: 196 parses/second, or ~ .005 seconds # This seems an acceptable overhead ;-) for the flexibility that # this module provides. ####################################################################### sub baseline { my (%values); App::Options->init(values => \%values); } sub baseline2 { my (%values); App::Options->init(values => \%values); App::Options->init(values => \%values); } sub baseline3 { my (%values); App::Options->init(values => \%values); %values = (); App::Options->init(values => \%values); } $count = 400; cmpthese($count, { 'baseline' => \&baseline, 'baseline2' => \&baseline2, 'baseline3' => \&baseline3, });