# -*-perl-*-
# run with perl -d:DProf $0

use CGI::Ex::Conf qw(conf_read conf_write);
use POSIX qw(tmpnam);
use Data::Dumper qw(Dumper);

#my $cob = CGI::Ex::Conf->new;
my $tmp = tmpnam .".sto";
END { unlink $tmp };

my $conf = {
    one   => 1,
    two   => 2,
    three => 3,
    four  => 4,
    five  => 5,
    six   => 6,
    seven => 7,
    eight => 8,
    nine  => 9,
    ten   => 10,
};

#$cob->write($tmp, $conf);
conf_write($tmp, $conf);
#print `cat $tmp`; exit;

for (1 .. 100_000) {
#    my $ref = $cob->read($tmp);
#    my $ref = conf_read($tmp);
#    print Dumper $ref; exit;

    conf_write($tmp, $conf);
}


__END__

### conf_read
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 38.5   2.120  0.000 100000   0.0000 0.0000  Storable::_retrieve
 38.1   2.100  2.100 100000   0.0000 0.0000  Storable::pretrieve
 20.9   1.150  5.860 100000   0.0000 0.0001  CGI::Ex::Conf::read_ref
 8.73   0.480  6.720 100000   0.0000 0.0001  CGI::Ex::Conf::conf_read
 6.91   0.380  0.380 100001   0.0000 0.0000  CGI::Ex::Conf::new
 4.73   0.260  0.000 100000   0.0000 0.0000  Storable::retrieve
 4.18   0.230  4.710 100000   0.0000 0.0000  CGI::Ex::Conf::read_handler_storab
                                             le
 0.36   0.020  0.040      3   0.0067 0.0133  main::BEGIN
 0.18   0.010  0.010      6   0.0017 0.0017  Exporter::import
 0.18   0.010  0.010      4   0.0025 0.0025  CGI::Ex::Conf::BEGIN
 0.18   0.010  0.020      1   0.0100 0.0199  CGI::Ex::Conf::write_handler_stora
                                             ble
 0.18   0.010  0.010      5   0.0020 0.0020  AutoLoader::AUTOLOAD
 0.00   0.000  0.000      1   0.0000 0.0000  POSIX::load_imports
 0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
 0.00   0.000  0.000      1   0.0000 0.0000  Storable::store

### conf_write
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 60.3   9.510  9.510 100001   0.0001 0.0001  Storable::pstore
 32.8   5.170  0.000 100001   0.0001 0.0000  Storable::_store
 7.68   1.210 16.450 100001   0.0000 0.0002  CGI::Ex::Conf::write_ref
 2.60   0.410 17.220 100001   0.0000 0.0002  CGI::Ex::Conf::conf_write
 2.28   0.360  0.360 100001   0.0000 0.0000  CGI::Ex::Conf::new
 2.16   0.340 15.240 100001   0.0000 0.0002  CGI::Ex::Conf::write_handler_stora
                                             ble
 1.33   0.210  0.000 100001   0.0000 0.0000  Storable::store
 0.06   0.010  0.010      3   0.0033 0.0033  AutoLoader::import
 0.06   0.010  0.010      2   0.0050 0.0050  DynaLoader::BEGIN
 0.06   0.010  0.010      4   0.0025 0.0025  CGI::Ex::Conf::BEGIN
 0.06   0.010  0.030      3   0.0033 0.0099  main::BEGIN
 0.00   0.000  0.000      1   0.0000 0.0000  POSIX::load_imports
 0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
 0.00       - -0.000      1        -      -  main::END
 0.00       - -0.000      1        -      -  bytes::import