Efficiency: what block size of kernel-mode memory allocations?
- by Robert
I need a big, driver-internal memory buffer with several tens of megabytes (non-paged, since accessed at dispatcher level).
Since I think that allocating chunks of non-continuous memory will more likely succeed than allocating one single continuous memory block (especially when memory becomes fragmented) I want to implement that memory buffer as a linked list of memory blocks.
What size should the blocks have to efficiently load the memory pages?
(read: not to waste any page space)
A multiple of 4096? (equally to the page size of the OS)
A multiple of 4000? (not to waste another page for OS-internal memory allocation information)
Another size?
Target platform is Windows NT = 5.1 (XP and above)
Target architectures are x86 and amd64 (not Itanium)