Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

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 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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://965423]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2018-06-18 00:32 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (107 votes). Check out past polls.