>  But why does this not happen after i = 32 ? I hardly see any increase in
>  memory usage after that.

I think you are backstoring pages that hold the allocated memory bucket
pointers, not the data itself. in the i < 32 you run out of these pages
of pointers to buckets before you hit your data size VM limit.

After 32 bits, you are allocating bigger, using fewer buckets, and
therefore few pointers to the buckets. you hit your data size VM limit
before you exceed the back store of these pointers.

you do not check the return code from you malloc, so after you
exceed your data size VM limit, your program is just spinning,
no more pages of pointers will be squeeze out to swap backstore.

dirty a byte in your malloc block to push out all of the allocated data.

--mark tinguely.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to