Benchmark: timing 200000 iterations of A_unpack_line_no_array, substr_into_array, substr_no_array, unpack_line_into_array, unpack_line
_no_array...
A_unpack_line_no_array: 3 wallclock secs ( 1.56 usr + 0.00 sys = 1.56 CPU) @ 128205.13/s (n=200000)
substr_into_array: 21 wallclock secs (21.54 usr + 0.00 sys = 21.54 CPU) @ 9285.05/s (n=200000)
substr_no_array: 5 wallclock secs ( 4.82 usr + 0.00 sys = 4.82 CPU) @ 41493.78/s (n=200000)
unpack_line_into_array: 10 wallclock secs (10.62 usr + 0.00 sys = 10.62 CPU) @ 18832.39/s (n=200000)
unpack_line_no_array: 1 wallclock secs ( 1.48 usr + 0.00 sys = 1.48 CPU) @ 135135.14/s (n=200000)
Rate substr_into_array unpack_line_into_array substr_no_array A_unpack_line_no_array unpack_line_no_array
substr_into_array 9285/s -- -51% -78% -93% -93%
unpack_line_into_array 18832/s 103% -- -55% -85% -86%
substr_no_array 41494/s 347% 120% -- -68% -69%
A_unpack_line_no_array 128205/s 1281% 581% 209% -- -5%
unpack_line_no_array 135135/s 1355% 618% 226% 5% --
####
Benchmark: timing 200000 iterations of A_unpack_line_no_array, substr_into_array, substr_no_array, unpack_line_into_array, unpack_line_no_array...
A_unpack_line_no_array: 2 wallclock secs ( 2.53 usr + 0.00 sys = 2.53 CPU) @ 79051.38/s (n=200000)
substr_into_array: 3 wallclock secs ( 4.02 usr + 0.00 sys = 4.02 CPU) @ 49751.24/s (n=200000)
substr_no_array: 1 wallclock secs ( 0.84 usr + 0.00 sys = 0.84 CPU) @ 238095.24/s (n=200000)
unpack_line_into_array: 4 wallclock secs ( 4.22 usr + 0.00 sys = 4.22 CPU) @ 47393.36/s (n=200000)
unpack_line_no_array: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 95238.10/s (n=200000)
Rate unpack_line_into_array substr_into_array A_unpack_line_no_array unpack_line_no_array substr_no_array
unpack_line_into_array 47393/s -- -5% -40% -50% -80%
substr_into_array 49751/s 5% -- -37% -48% -79%
A_unpack_line_no_array 79051/s 67% 59% -- -17% -67%
unpack_line_no_array 95238/s 101% 91% 20% -- -60%
substr_no_array 238095/s 402% 379% 201% 150% --
####
#substr_into_array:
sub {
my $line = shift;
my @data;
$data[0] = substr($line, 413, 30);
$data[1] = substr($line, 373, 30);
$data[2] = substr($line, 343, 30);
$data[3] = substr($line, 243, 10);
$data[4] = substr($line, 283, 15);
$data[5] = substr($line, 253, 30);
$data[6] = substr($line, 328, 15);
$data[7] = substr($line, 298, 30);
$data[8] = substr($line, 524, 30);
$data[9] = substr($line, 559, 30);
$data[10] = substr($line, 443, 6);
$data[11] = substr($line, 489, 30);
$data[12] = substr($line, 454, 30);
$data[13] = substr($line, 240, 3);
$data[14] = substr($line, 236, 4);
return \@data;
};
#--------------------------------------
#substr_no_array:
sub {
(substr($_[0], 413, 30),
substr($_[0], 373, 30),
substr($_[0], 343, 30),
substr($_[0], 243, 10),
substr($_[0], 283, 15),
substr($_[0], 253, 30),
substr($_[0], 328, 15),
substr($_[0], 298, 30),
substr($_[0], 524, 30),
substr($_[0], 559, 30),
substr($_[0], 443, 6),
substr($_[0], 489, 30),
substr($_[0], 454, 30),
substr($_[0], 240, 3),
substr($_[0], 236, 4),
);
};
#--------------------------------------
#unpack_line_into_array:
sub {
my @data = unpack('@413a30
@373a30
@343a30
@243a10
@283a15
@253a30
@328a15
@298a30
@524a30
@559a30
@443a6
@489a30
@454a30
@240a3
@236a4
', $_[0]);
return \@data;};
#--------------------------------------
unpack_line_no_array:
sub {
unpack('@413a30
@373a30
@343a30
@243a10
@283a15
@253a30
@328a15
@298a30
@524a30
@559a30
@443a6
@489a30
@454a30
@240a3
@236a4
', $_[0]);
};