[Bangalore-pm] Need Help to optimise the code

Kumar, Ravish ravish.kumar at gs.com
Mon Jun 15 05:58:23 PDT 2009


Check this link for array process :

http://perlmonks.com/?node_id=149566

 

 

 

From: bangalore-pm-bounces+ravish.kumar=gs.com at pm.org
[mailto:bangalore-pm-bounces+ravish.kumar=gs.com at pm.org] On Behalf Of
Srinivas Reddy
Sent: Monday, June 15, 2009 6:25 PM
To: simran
Cc: bangalore-pm at pm.org
Subject: Re: [Bangalore-pm] Need Help to optimise the code

 

Hi Thnx a lot for your quick help. Sry C is rules out as this willl form
a part of perl script and we have 'C' Expertise issue as well. I think
kumars solution would really help . Let us rewrite it and check the
performance. 

 

I am still looking at a function which takes 2 arrays and gives me the
difference in them , in my case these array contain my xls file ( row ,
col and value associated with each cell ) . 

 

Regards,

 

Srinivas Reddy

Asia Technology and Global Projects Manager 

Skype : sreddyisi

Cell : +91 9740076449

LandLine : +91 9900524073/74/76./78

Fax : +91 8026729764

Url : www.securities.com <http://www.securities.com/>  

www.thefinancialnet.com <http://www.thefinancialnet.com> 

elearning.securities.com

P Please consider the environment before printing this email

________________________________

From: simrangambhir at gmail.com [mailto:simrangambhir at gmail.com] On Behalf
Of simran
Sent: Monday, June 15, 2009 6:17 PM
To: Srinivas Reddy
Cc: bangalore-pm at pm.org
Subject: Re: [Bangalore-pm] Need Help to optimise the code

 

Hi Srinivas, 

The code is not very complex, and unless you change the structure, it
will not optimise too much... better to write it neatly (and with better
arg passing... as suggested in the email by Ravish. 

If you are looking for absolute speed, better to write in in C and plug
it in via XS. 

simran.

2009/6/15 Srinivas Reddy <SReddy at securities.com>

Hi , 

 

Please help to optimize the code below.  We basically read 2 xls files
into an array @xls2 and @xls1 . For each cell we want to compare (
starting from col 32 ) values in each cell and if they are not equal we
need to store it in a different array. This we will then use to bold
those particular cells. 

 

The loop which does this comparison could be replacement by some in
built array difference kind of function. I am new to perl so apologies
if I ve used any wrong terminologies here.  Appreciate your help on the
same. Please find attached whole code as well for reference 

 

sub cell_handler2 {

 

        my $workbook    = $_[0];

        my $sheet_index = $_[1];

        my $row         = $_[2];

        my $col         = $_[3];

        my $cell        = $_[4];

             # Construct array for Dx code

             

        push @xls2 , {

                        'row2' => $row,

                        'col2' => $col,

                        'value2' => $cell->value(),

        };

        return @xls2;

 

}

#print Dumper(@xls2);

# Print the End Time to read second excel file

print scalar(localtime) . ": End Reading Excel2 \n";

 

print scalar(localtime) . ": Start Populating Bolding Array \n";

# Inefficient way of looping

# Please change this as it could boost the performance significantly 

for(@xls2) {

            if($_->{'col2'} > 32 && $_->{'row2'} > '0' ) {

                                    $newvalue = $_->{'value2'};

                                    $newrow = $_->{'row2'};

                                    $newcol = $_->{'col2'};

                                    for(@xls1) {

                                                $oldrow = $_->{'row1'};

                                                $oldcol = $_->{'col1'};


                                                if($_->{'col1'} > 32 &&
$_->{'row1'} > 0 && $_->{'row1'} eq $newrow && $_->{'col1'} eq $newcol)
{

 
$oldvalue = $_->{'value1'};

 
last;

                                                }

                                    }

                                    if($oldvalue ne $newvalue) {

                                                push @bold_array , {

                                                            'row' =>
$_->{'row2'},

                                                            'col' =>
$_->{'col2'},

                                                            'value' =>
$_->{'value2'},

                                                };

                                    }

            }

}

 

 

Regards,

 

Srinivas Reddy


______________________________________________________________________
This communication contains information which is confidential. It is for
the
exclusive use of the intended recipient(s). If you are not the intended
recipient(s) please note any distribution, copying or use of this
communication or the information in it is strictly prohibited. If you
have
received this communication in error please notify us by e-mail or
by telephone (as above) and then delete the e-mail and all attachments
and
any copies thereof.
______________________________________________________________________


_______________________________________________
Bangalore-pm mailing list
Bangalore-pm at pm.org
http://mail.pm.org/mailman/listinfo/bangalore-pm

 


______________________________________________________________________
This communication contains information which is confidential. It is for
the
exclusive use of the intended recipient(s). If you are not the intended
recipient(s) please note any distribution, copying or use of this
communication or the information in it is strictly prohibited. If you
have
received this communication in error please notify us by e-mail or
by telephone (as above) and then delete the e-mail and all attachments
and
any copies thereof.
______________________________________________________________________

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/bangalore-pm/attachments/20090615/9a20d5bf/attachment-0001.html>


More information about the Bangalore-pm mailing list