Thread: memory: bug or feature

memory: bug or feature

From
Karel Zak
Date:
I'm playing with MemoryContextCheck() and I a little confuse now.
How idea is for:
       context->initBlockSize       context->maxBlockSize
Must be a memory block already between this range? For example 
the AllocSetAlloc() if create a single-chunk-block not check it and create
block less than 8*1024 (an example for CacheMemoryContext).

The AllocSetRealloc() not check it too.
                Karel



Re: memory: bug or feature

From
Tom Lane
Date:
Karel Zak <zakkr@zf.jcu.cz> writes:
>  I'm playing with MemoryContextCheck() and I a little confuse now.
>  How idea is for:
>     context->initBlockSize
>    context->maxBlockSize

> Must be a memory block already between this range?

No, those are just hints for allocation of default-sized blocks.  They
don't constrain allocation of blocks that have to be a particular size
to accommodate a large chunk.  The reason for having them is just to
allow a caller who expects that a particular context won't contain much
data to prevent a lot of wasted space from being allocated for big
default-sized blocks.
        regards, tom lane