Interesting Memory Optimization

Derek ddparnell at bigpond.com
Mon Mar 19 05:33:07 PDT 2012


On Fri, 16 Mar 2012 13:16:18 +1100, Kevin <kevincox.ca at gmail.com> wrote:

> This is in no way D specific but say you have two constant strings.
>
> const char[] a = "1234567890";
> // and
> const char[] b = "67890";
>
> You could lay out the memory inside of one another. IE: if a.ptr = 1  
> then b.ptr = 6.  I'm not sure if this has been done and I don't think it  
> would apply very often but it would be kinda cool.
>
> I thought of this because I wanted to pre-generate hex-representations  
> of some numbers I realized I could use half the memory if I nested them.  
> (At least I think it would be half).

Is the effort to do this really an issue with today's vast amounts of RAM  
(virtual and real) available? How much memory are you expecting to 'save'?

And is RAM address alignment an issue here also? Currently most literals  
are aligned on a 4 or 8-byte boundary but with this sort of pooling, some  
literals will not be so aligned any more. That might not be an issue but  
I'm just curious.

-- 
Derek Parnell
Melbourne, Australia


More information about the Digitalmars-d mailing list