This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: allocating aligned memory efficiently


On Fri, Feb 19, 2010 at 7:34 PM, Joel Dice <joel.dice@gmail.com> wrote:
> Hi all,
>
> I have a problem which involves allocating memory in chunks, each of a size
> which is a multiple of 64K and each aligned to an address divisible by 64K.
> ?I'd like to make these allocations as memory-efficient as possible,
> minimizing fragmentation and heap management overhead, and I'd like to free
> each one back to the OS promptly when it's no longer needed.

Your last requirement is not honoured by glibc, the allocator attempts
to maximize performance by reusing already mapped blocks of memory, it
does not free them promptly (if ever).

> The posix_memalign(3) and free(3) functions seem to have the semantics I
> want. ?Is this pair the most efficient option for my problem, or would I be
> better off using mmap(2) or some other mechanism?

If you want it free'd back to the OS promptly then I suggest you use
mmap(2) and manage the memory yourself.

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]