Thread overview | |||||
---|---|---|---|---|---|
|
December 12, 2014 Allocating aligned memory blocks? | ||||
---|---|---|---|---|
| ||||
Hi all,
I'm working on a very large associative array implementation that stores most of the data on disk, and I need to allocate a number of cache areas for keeping "hot" disk pages in RAM. Is there a way to allocate GC memory blocks in D that are guaranteed to fall on OS page boundaries? Or should I just forget the GC and just use posix_memalign() manually?
Thanks!
T
--
If creativity is stifled by rigid discipline, then it is not true creativity.
|
December 12, 2014 Re: Allocating aligned memory blocks? | ||||
---|---|---|---|---|
| ||||
Posted in reply to H. S. Teoh | On Friday, 12 December 2014 at 06:17:56 UTC, H. S. Teoh via Digitalmars-d-learn wrote: > > Is there a way to allocate GC > memory blocks in D that are guaranteed to fall on OS page boundaries? I don't know about guarantees, I think that in practice, if your OS page size is 4096, any GC allocation of 4096 or greater will be page aligned. > should I just forget the GC and just use posix_memalign() manually? I think it may be possible to do what you want with mmap/munmap alone (selectively map parts of the file to memory.) |
December 12, 2014 Re: Allocating aligned memory blocks? | ||||
---|---|---|---|---|
| ||||
Posted in reply to safety0ff | On 12/12/14 2:02 AM, safety0ff wrote:
> On Friday, 12 December 2014 at 06:17:56 UTC, H. S. Teoh via
> Digitalmars-d-learn wrote:
>>
>> Is there a way to allocate GC
>> memory blocks in D that are guaranteed to fall on OS page boundaries?
>
> I don't know about guarantees, I think that in practice, if your OS page
> size is 4096, any GC allocation of 4096 or greater will be page aligned.
Yes, it's how that will work, and I think it's de-facto guaranteed. Actually technically, you can allocate a block of 2049 or bigger, and it will allocate a page for it.
-Steve
|
Copyright © 1999-2021 by the D Language Foundation