Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: creating and managing many hashes

by Discipulus (Canon)
on Feb 18, 2018 at 09:08 UTC ( [id://1209413]=note: print w/replies, xml ) Need Help??


in reply to creating and managing many hashes

Hello Gtforce,

without other details (it's the data already in memory?) it's a matter of guessing, but..

pass by reference? Are you filling new datastructures to pass your data around? If the original data it's alreaady read you can take a reference to some items and pass just the reference to your subroutines. See also the same matter at effective perl programmer and Is it possible to do pass by reference in Perl?

This big amount of data and relations between parts let me think of databases: you can have a first step where you put all your data into a (temporary?) database (sqlite for example) and a second step where you just SELECT appropriate items and you update your statistics.

Be sure of freeing no more used variables. Four days for just 2 millions records seems a bit slow for me.

If my suggestions do not fit your task please provide a bit more details.

HtH

L*

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Replies are listed 'Best First'.
Re^2: creating and managing many hashes
by Gtforce (Sexton) on Feb 18, 2018 at 13:08 UTC
    Discipulus, good advice regarding freeing up variables that are no longer in use (it not only was slowing processing, but was also giving me inaccurate results). undef()'ing them at the right places helped. Both, memory and cpu are not constraints (not even close to max'ing out on either with my current approach - tiny footprint on both using simple arrays and loops). Any advice on speeding up the first process of going from 2000 products to 2 million pairs would be greatly appreciated, thanks.
      If you are brave enough you can try parallel processing: try MCE by our brother marioroy

      Search here at perlmonks: he produced many working examples

      L*

      There are no rules, there are no thumbs..
      Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

        I attempted using MCE last month, but struggled a bit. Will attempt again, thanks.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (2)
As of 2024-04-26 01:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found