views:

19

answers:

0

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)