1. No virtual memory?
- Posted by Irv Mullins <irv at ELLIJAY.COM> Feb 16, 1999
- 461 views
What has happened to virtual memory with 2.1? I created the following program sequence x x = repeat(0,6000000) -- works ok. If I change the six million to seven million, it gives an out of memory error. This is the same whether I have SET CAUSEWAY=NOVM or not. I was expecting Causeway to go to the disk to supply virtual memory when I remove the line SET CAUSEWAY=NOVM,and reboot. There seems to be no disk activity either way. I have 32 megs physical memory. Any ideas? Irv
2. Re: No virtual memory?
- Posted by Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL> Feb 16, 1999
- 458 views
- Last edited Feb 17, 1999
Virtual memory has been gone since ver 2. Or at least, in version 2 it didnt work either. Never really tried it with ver 1.5 but I can remember my HD going nuts in some 'badly' designed infinite loop, where some data grows. (developping EDOM for example) However, the same loop just 'runs out of memory' without me even hearing my HD with DOS32 ver 2 and v 2.1 Im asuming however, that it will work fine under Win32, because that uses the windows-api to allocate memory. Ralf
3. Re: No virtual memory?
- Posted by Irv Mullins <irv at ELLIJAY.COM> Feb 16, 1999
- 450 views
On Tue, 16 Feb 1999 19:45:30 +0100, Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL> wrote: >Virtual memory has been gone since ver 2. >Or at least, in version 2 it didnt work either. Never really tried it with ver >1.5 but I can remember my HD going nuts in some >'badly' designed infinite loop, where some data grows. (developping EDOM for >example) > >However, the same loop just 'runs out of memory' without me even hearing my HD >with DOS32 ver 2 and v 2.1 >Im asuming however, that it will work fine under Win32, because that uses the >windows-api to allocate memory. > >Ralf According to the manual for ver 2.0, and the platform.doc file with 2.1, it's still there for DOS. I haven't tried it since version 1.5, however. It worked ok then. Rob? Irv Windows? We don't need no steenkin' Windows!
4. Re: No virtual memory?
- Posted by Robert Craig <rds at ATTCANADA.NET> Feb 16, 1999
- 450 views
Irv Mullins writes: > What has happened to virtual memory with 2.1? > I created the following program > sequence x > x = repeat(0,6000000) -- works ok. > If I change the six million to seven million, it gives an > out of memory error. On my 32Mb Win95 machine in a DOS Window, I can do 7 million, but then 8 million says "out of memory". When restarted in "pure DOS", I went up to 12 million, and didn't bother trying anything higher. 12 million needs 48 Mb, since each element needs 4 bytes. Nothing has happened to virtual memory in 2.1. It's still there for ex.exe under Windows or pure DOS, and exw.exe under Windows. The exact amount of memory available has always been somewhat unpredictable. The O/S, disk cache, and various background applications are always hogging many megabytes of RAM. Remember, for a 7 million element sequence you need 28 million *consecutive* bytes of virtual memory. It might not always be easy for the O/S, or for CauseWay, to arrange this for you from the existing free space. Regards, Rob Craig Rapid Deployment Software http://members.aol.com/FilesEu/
5. Re: No virtual memory?
- Posted by Irv Mullins <irv at ELLIJAY.COM> Feb 16, 1999
- 456 views
On Tue, 16 Feb 1999 16:47:39 -0500, Robert Craig <rds at ATTCANADA.NET> wrote: >Irv Mullins writes: >> What has happened to virtual memory with 2.1? >> I created the following program >> sequence x >> x = repeat(0,6000000) -- works ok. >> If I change the six million to seven million, it gives an >> out of memory error. > >On my 32Mb Win95 machine in a DOS Window, >I can do 7 million, but then 8 million says "out of memory". > >When restarted in "pure DOS", I went up to 12 million, and >didn't bother trying anything higher. 12 million needs 48 Mb, >since each element needs 4 bytes. Yow! Something is badly wrong, I am running pure DOS 6.22, no windows of any kind, and no drivers or anything loaded except himem.sys and emm386.exe. with 32 megs. >Nothing has happened to virtual memory in 2.1. > >It's still there for ex.exe under Windows or pure DOS, >and exw.exe under Windows. The exact amount of memory >available has always been somewhat unpredictable. >The O/S, disk cache, and various background applications are >always hogging many megabytes of RAM. > >Remember, for a 7 million element sequence you need >28 million *consecutive* bytes of virtual memory. It might >not always be easy for the O/S, or for CauseWay, to arrange this >for you from the existing free space. Does Euphoria/Causeway use ram first, and then use virtual memory for any "left overs", or does it switch over to virtual memory for the *entire* variable if said variable won't fit in normal ram? Irv
6. Re: No virtual memory?
- Posted by Robert Craig <rds at ATTCANADA.NET> Feb 16, 1999
- 448 views
- Last edited Feb 17, 1999
Irv Mullins writes: > Does Euphoria/Causeway use ram first, and then use virtual > memory for any "left overs", or does it switch over to virtual > memory for the *entire* variable if said variable won't fit in > normal ram? Under DOS, CauseWay uses extended memory first. When extended memory runs out, it starts using conventional memory, and finally it starts using "virtual" memory, i.e. swap space on disk. Note: If you have less free space on disk than you have RAM in your machine, CauseWay (under DOS) will not use virtual memory *at all*. i.e. in your case, if you have less than 32 Mb of free space on C: (or whatever drive holds the swap file), virtual memory will *not* be used. [I'll add this to the docs.] CauseWay divides memory into 4K pages. A page could be "in memory", or "on disk". You could have more pages allocated than there exists physical RAM in your machine. The extra pages are stored on disk, and are brought into physical memory as needed. The least-recently used pages are copied from memory out to disk (if they've been modified). The Intel hardware supports this kind of thing. Windows works much the same way. An entire Euphoria sequence need not be completely in memory at one time. At some point, in a DOS Window, Windows will tell CauseWay that there's no more (virtual) memory available. Under pure DOS, CauseWay manages its own swap file, and I've never been sure of the exact algorithm it uses to decide that you are "out of memory". Regards, Rob Craig Rapid Deployment Software http://members.aol.com/FilesEu/