X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=samples%2Fdevel%2Fdprof_conf.d;fp=samples%2Fdevel%2Fdprof_conf.d;h=a99369c0cd07208e51bd2dde1c64da5d48cfa073;hb=4eee158dce82376f2f37de29d91c53f60a24aebe;hp=0000000000000000000000000000000000000000;hpb=85070b46d0a93ddbeef07341421adb8389a55418;p=chaz%2Fp5-CGI-Ex diff --git a/samples/devel/dprof_conf.d b/samples/devel/dprof_conf.d new file mode 100644 index 0000000..a99369c --- /dev/null +++ b/samples/devel/dprof_conf.d @@ -0,0 +1,77 @@ +# -*-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