[LispM-Hackers] Outageness

Robert Swindells rjs@fdy2.demon.co.uk
Sat, 23 Feb 2002 12:24:20 GMT


James A. Crippen wrote:
>Robert Swindells <rjs@fdy2.demon.co.uk> writes:
>> James A. Crippen wrote:
>> >Nyef <nyef@softhome.net> writes:
>> >> While unlambda was gone I noticed that E3 is allocating _four times_ as
>> >> much memory as it needs during startup (compare the size of an instance of
>> >> e3MemMap to the size of the load band), which runs my system close to out
>> >> of swap space (possible fixes include: doing a check against the different
>> >> memory regions, emulating part of the memory management hardware (page
>> >> hash table and such), (ab)using the UN*X mmap() syscall, and simply
>> >> declaring it a feature).
>> 
>> >mmap() is Not Allowed because it's not portable to, say, PalmOS.  Or
>> >(possibly) to Windows.  It's too un*x specific.
>> 
>> There is a Win32 equivalent of mmap that works fine. I can provide an
>> example if it allows us to use mmap() under UNIX.
>> 
>> Data is in memory anyway on PalmOS, but you would run into the 32k limit
>> on an individual record long before you hit any other limits.

>I knew that, honest. :-)  I was just using that as an example.

>JM has some better argued reasons for avoiding mmap().  We had this
>argument two years ago IIRC.

I maintain a proprietary system that loads files into a virtual machine.

The only operating system that has had problems using mmap() type
functionality to load these files was WindowsCE. The Win32 functions
are there, but you can't specify copy on write behaviour.

For everything else, startup speed improved dramatically using mmap()
over read().

Are the previous discussions in the archive ?

Robert Swindells