Re: max-heap setting for 64-bit applications

Matthew Fluet <[email protected]>
Newsgroups gmane.comp.lang.ml.mlton.devel
Message-ID <[email protected]>
On Thu, Dec 10, 2009 at 7:08 PM, Wesley W. Terpstra <[email protected]>wrote:

> On Thu, Dec 10, 2009 at 9:37 PM, Matthew Fluet <[email protected]>wrote:
>
>> Note, that while Windows doesn't natively support mremap, Wesley
>> implemented a few things that try to mimic mmap/mremap/munamp functionality
>> under Windows.  There seems to be some complication with the Windows memory
>> system that requires committing in addition to reserving memory, and some
>> manner of being able to extend an existing map with space before it and
>> after it.  I don't understand it.
>
>
> When you reserve memory, you get virtual address space that does not
> overlap any previous reservations. When you commit (part of) that
> reservation, you get memory that can actually be used without segfaulting.
>

That part makes sense; I was simply noting that you go to some lengths to
use this facility in an efficient manner and I wasn't familiar enough with
that code to change its behavior.

Of course, even if mremap tries in-place heap growth first, this might not
> be possible, and a copy to a new memory location will still thrash.
>

Absolutely.

  (This actually seems to be redundant with the behavior of the garbage
>> collector proper.)
>
>
> Perhaps, but I was trying to implement an mremap compatible to the
> specification of mremap, not how MLton uses mremap. If mremap fails to
> aquire the desired space, mmap will certainly also fail.
>

Fair enough.  Although, and I freely admit that this is not necessarily part
of the mremap specification, on Linux, the mremap function is described as
using the Linux page table scheme to efficiently change the mapping between
virtual addresses and (physical) memory pages.  It's purpose is to be more
efficient than allocating a new map and copying.

_______________________________________________
MLton mailing list
[email protected]
http://mlton.org/mailman/listinfo/mlton
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.