Tuesday, May 16, 2006

OS Speed

Peter Ammon:

Now, when allocating memory, malloc can either manage the memory blocks on the application heap, or it can go to the kernel’s virtual memory system for fresh pages. The application heap is faster because it does not require a round trip to the kernel, but some allocation patterns can cause "holes" in the heap, which waste memory and ultimately hurt performance. If the allocation is performed by the kernel, then the kernel can defragment the pages and avoid wasting memory.

Because most programmers understand that large allocations are expensive, and larger allocations produce more fragmentation, Windows, Linux, and Mac OS X will all switch over from heap-managed allocations to VM-managed allocations at a certain size. That size is determined by the malloc implementation.

Comments RSS · Twitter

Leave a Comment