Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^5: Optimize my code with Hashes

by jethro (Monsignor)
on Aug 27, 2008 at 14:30 UTC ( [id://707173]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Optimize my code with Hashes
in thread Optimize my code with Hashes

Sorry if my answer sounded too harsh, I'm not a native english speaker myself

The part of the code you show seems to be quite efficient and from what I can see the author of this code knows how to program in perl. I even tried out the program (the bit you posted) on my machine and it needed just over 1 second (3 seconds on a sun blade 100) to init the hash with 50000 bogus entries and run the loop over it. Naturally with empty subroutines, so no surprise really.

What you don't show is what createEDentry and updateEDentry do. Probably that is where most of the work is done.

If you want to try yourself, here is my test code. Run it on your machine, if it takes less than 20 seconds, the problem is not in the code you have shown us.

my %used_dn=(); my %en2dn=(); my %ed_en; my %pfinfo=(); my $i=50000; while ($i>0) { $pfinfo{$i--}= "$i|Henion,David|A|Active|010474|HAWKEY,Michael G|S +C3789"; } my $log=0; $i=0; foreach my $en (keys %pfinfo) { logAndSkip(\*LOG,"Considering the entry from PeopleFirst extract: $e +n...") if ($log); # Get the PF information my @pfi=(); #reset the array @pfi=split/\|/,$pfinfo{$en}; # If employee number does not exists in ED, it looks like a creation if (!exists $ed_en{$en}) { createEDentry(\*LOG,\@pfi,\%used_dn,\%en2dn); } # Looks like an ED entry update else { updateEDentry(\*LOG,$en2dn{$en},\@pfi,\%en2dn); } } # End Foreach sub LogAndSkip {} sub createEDentry { my ($LOG,$pfi,$used,$en)=@_; } sub updateEDentry { my ($LOG,$pfi,$en)=@_; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://707173]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-25 07:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found