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% --