Click here to Skip to main content
15,914,642 members

Comments by tablespoon (Top 2 by date)

tablespoon 6-Feb-14 17:15pm View    
bling, in the example I allocated 4000 bytes because of the HeapAlloc()/malloc() memory header. I thought if I allocated a little less than the page size, I'd guarantee that my block would entirely reside in one page, and wouldn't cross the boundaries. I was wrong.
tablespoon 3-Feb-14 16:05pm View    
I want to implement a memory pool. I want to allocate a large chunk with a system call, like HeapAlloc() or malloc(). Then I want to write my own routines to allocate/free memory blocks from this large chunk, using my own memory manager.

Question: Do I need to pay attention to the Page Size of the system when I return these small memory chunks to the caller of my routines?

Example: My initial chunk is 8000 bytes. This chunk fits into two pages of 4KB each. I suballocate blocks of 128 bytes to the caller of my routines from this chunk. I start allocating from the beginning of the chunk. At some point, one of my blocks would reside in two pages because 8000 is not divisible by 128.

Is it a bad idea to have my blocks spread to two pages? Would that be bad for performance?