in reply to Re^3: Techniques On Saving Memory
in thread Techniques On Saving Memory
A closure prevents a variable from being GC'd when it goes out of scope by increasing the ref count. What I am suggesting is keeping the memory around so that you lookup the stringified reference later, the memory is still there. I am suggesting unfaking it by decreasing the ref count when you are done (no longer need to use the stringified reference).
What hash? Why use a hash and how would that save memory if you do the Tie::RefHash thing of storing the smashed and unsmashed references?
In my original post, I indicated I was trying to change a HoA into a regular hash. The value would be a fixed number of bytes, but unfortunately part of the packed string would need to be a reference. What I am saying is that as long as you control the addition/deletion/modification of this hash, you can also properly control the GC.
If you do the RefHash thing, you don't need to do any controlling--once you delete the (value) reference, Perl takes care of the rest. But trading a hash for an array is not going to save memory.
Not my goal. See my original problem. The hash keys will be regular plain jane keys - it is the values that will be conserving memory. Instead of being anonymous arrays they would be packed strings.
Cheers - L~R
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Techniques On Saving Memory
by BrowserUk (Patriarch) on Mar 09, 2005 at 22:28 UTC | |
by Limbic~Region (Chancellor) on Mar 09, 2005 at 23:14 UTC | |
by BrowserUk (Patriarch) on Mar 09, 2005 at 23:43 UTC | |
by Limbic~Region (Chancellor) on Mar 09, 2005 at 23:52 UTC | |
by BrowserUk (Patriarch) on Mar 10, 2005 at 00:45 UTC |