Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^4: ItemStyle causing high memory consumption

by ghosh123 (Monk)
on Apr 17, 2012 at 02:28 UTC ( #965423=note: print w/ replies, xml ) Need Help??


in reply to Re^3: ItemStyle causing high memory consumption
in thread ItemStyle causing high memory consumption

Hi Zentara, Thanks for all your posts. Let me make my requirement very simple. Forget about object oriented programming a also whether B.pm is derived from Tk::Tree or not. Just think about procedural programming. I just need to build the logic where the called function (i.e getItemStyle )can stringify the passed parameter set and make them the key of a hash. The value of the hash shoud be the created ItemStyle object. I am trying to write the pseudocode below :

&getItemStyle($tree, 'text', -anchor => 'w',-fg => 'red'); sub getItemStyle { my $obj = shift; ## holds $tree my $type = shift; ## holds text ## Now stringify the "-anchor =>'w' -fg => 'red' ## and make them a hash key and create the ItemStyle. ## So that next time if I call getItemStyle with same ## same parameters(-anchor and -fg ), it does not create ## the ItemStyle all over again and checks the hash if ## the paramters exist as a key then returns its value. ## Also we need to sort the parameters so that if we ## cal getItemStyle with the same two parameters and ## reverse the order of mentioning them (-fg => red , ## -anchor =>'w') , it considers it as the same call ## as (-anchor => 'w', -fg =>red) happened earlier .

Hope the problem is clear now. Main thing is to elegantly and easily stringify the parameters, use them as a hash key, store the object in the value corresponding to that key and return. If it is a new parameter set, then make a new key and create the itemstyle.


Comment on Re^4: ItemStyle causing high memory consumption
Download Code
Re^5: ItemStyle causing high memory consumption
by zentara (Archbishop) on Apr 17, 2012 at 11:01 UTC
    Hope the problem is clear now

    Sorry, I don't see why you should need to jump thru all these hoops, just to set a common ItemStyle, and why it would decrease the memory usage. However, it's your code and you see things with more clarity.


    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku ................... flash japh

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2014-07-24 00:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (155 votes), past polls