1use strict; 2use warnings; 3use Benchmark; 4use lib '../../lib'; 5use lib '../../../Class-Std-Fast/lib'; 6 7use SOAP::WSDL::XSD::Typelib::Builtin::string; 8 9my $obj = SOAP::WSDL::XSD::Typelib::Builtin::string->new(); 10 11timethese 20000, { 12 'new' => sub { SOAP::WSDL::XSD::Typelib::Builtin::string->new() }, 13 'new + params' => sub { SOAP::WSDL::XSD::Typelib::Builtin::string->new({ 14 value => 'Teststring', 15 }) 16 }, 17}; 18 19$obj->set_value('Foobar'); 20timethese 20000, { 21 serialize => sub { $obj->serialize() } 22}; 23 24my $data; 25timethese 1000000, { 26 'set_FOO' => sub { $obj->set_value('Test') }, 27 'get_FOO' => sub { $data = $obj->get_value() }, 28}; 29 30 31 32__END__ 33 34Benchmark: timing 20000 iterations of new, new + params... 35 new: 1 wallclock secs ( 0.41 usr + 0.00 sys = 0.41 CPU) @ 48780.49/s (n=20000) 36new + params: 1 wallclock secs ( 0.53 usr + 0.01 sys = 0.54 CPU) @ 37037.04/s (n=20000) 37Benchmark: timing 1000000 iterations of get_FOO, set_FOO... 38 get_FOO: 2 wallclock secs ( 1.43 usr + 0.01 sys = 1.44 CPU) @ 694444.44/s (n=1000000) 39 set_FOO: 0 wallclock secs ( 1.43 usr + 0.01 sys = 1.44 CPU) @ 694444.44/s (n=1000000) 40 41 42::Fast 43--- 44Benchmark: timing 20000 iterations of new, new + params... 45 new: 0 wallclock secs ( 0.44 usr + 0.01 sys = 0.45 CPU) @ 44444.44/s (n=20000) 46new + params: 1 wallclock secs ( 0.55 usr + 0.00 sys = 0.55 CPU) @ 36363.64/s (n=20000) 47Benchmark: timing 1000000 iterations of get_FOO, set_FOO... 48 get_FOO: 0 wallclock secs ( 0.81 usr + 0.00 sys = 0.81 CPU) @ 1234567.90/s (n=1000000) 49 set_FOO: 2 wallclock secs ( 0.87 usr + 0.01 sys = 0.88 CPU) @ 1136363.64/s (n=1000000) 50 51::Fast with inlined ID 52Benchmark: timing 20000 iterations of new, new + params... 53 new: 0 wallclock secs ( 0.41 usr + 0.00 sys = 0.41 CPU) @ 48780.49/s (n=20000) 54new + params: 1 wallclock secs ( 0.52 usr + 0.00 sys = 0.52 CPU) @ 38461.54/s (n=20000) 55Benchmark: timing 1000000 iterations of get_FOO, set_FOO... 56 get_FOO: 2 wallclock secs ( 0.80 usr + 0.00 sys = 0.80 CPU) @ 1250000.00/s (n=1000000) 57 set_FOO: 2 wallclock secs ( 0.89 usr + -0.01 sys = 0.88 CPU) @ 1136363.64/s (n=1000000)