Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^4: ItemStyle causing high memory consumption

by ghosh123 (Monk)
on Apr 17, 2012 at 02:28 UTC ( [id://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.

Replies are listed 'Best First'.
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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://965423]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2024-03-19 02:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found