#!/usr/bin/perl use strict; use warnings; use Benchmark qw(:all) ; # Set up an array of data to test my $data = '0906928472847292INR~UTRIR8709990166~ 700000~INR~200806 +23~RC425484~IFSCSEND001 ~Remiter Details ~10000 +07 ~TEST RTGS TRF7 ~ + ~ ~ ~RTGS~REVOSN OIL CORPOR +ATION ~IOCL ~09065010889~0906501088900122INR~ 7~ 1 +~ 1'; my @data; push @data, $data for 1 .. 1000; cmpthese( 1000, { 'Full split' => sub {my @refnos; for (@data){my @splitted + = split(/~/,$_); push(@refnos,$splitted[1]);}}, 'Limited split' => sub {my @refnos; for (@data){my @splitted + = split(/~/,$_,3); push(@refnos,$splitted[1]);}}, 'Optimized split' => sub {my @refnos; for (@data){push @refnos +, (split(/~/,$_,3))[1];}}, 'regex' => sub {my @refnos; for (@data){push @refnos +, /~([^~]+)~/;}}, } );
Rate Full split Limited split Optimized split + regex Full split 23.3/s -- -81% -90% + -91% Limited split 120/s 413% -- -51% + -54% Optimized split 244/s 946% 104% -- + -7% regex 262/s 1024% 119% 7% + --
In reply to Re^2: Needed Performance improvement in reading and fetching from a file
by wfsp
in thread Needed Performance improvement in reading and fetching from a file
by harishnuti
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |