#Can't Allocate Buffer
10 messages in this thread
Thanks Gary. I'll run the file again and see what those values are. I thought
that 10MB free was enough but I never looked to see what 3DS is doing with my
memory. I'll look into that. <I'm back> I find that it is like this:
Avail 4704 4688
Used 2236 4592
Swap 0 1272
Fault 0 1884
I have 6.17MB free. So if I understand this I need to free up at least two
times (4592 + 1272) = 12 MB? And even better is to increase my RAM another 6MB?
Mitch
BTW Should the swap file be on the fastest disk or does it not matter if the
3ds.3xe is on a slower disk (syquest)?
Mitch:
You can have the 3DS executable anywhere you want – it only gets loaded
once, anyway. However, you should direct the swap file to the fastest and
largest hard disk your system possesses!
If fastest and largest are mutually exclusive, you will have to decide which
is more important, size or speed for renderings! But get more RAM – it will
make more difference than any disk, anyway!
Greg Pyros
Greg:
>>You can have the 3DS executable anywhere you want – it only gets
loaded once, anyway. <<
I can't believe that, because when 3DS had been swaped, 3DS somtimes loads
programparts from 3EDS.EXE new into memory when you select a command in the
3D-Editor, like overlays. Look at your harddisk LED, or is it the 3DS.RES ?
Ingo
Ingo:
Let's get a definate answer here – maybe from the Yost Group themselves…
Does 3DS.EXE swap itself out to disk? Or does it just unload parts of
itself and re-load from the executable?
Or does it just swap data? And what is that 3DS.RES file, anyway?
Greg –
I'm able to answer the first part.
If you use the -dem switch, then the .EXE is demand paged loaded from the disk
at start up. This means that more and more of 3DS will be sucked into memory
as you use various portions of the program. My tests show about 60% of the 3DS
code is loaded at startup, so using the -dem switch may help reduce load times
a little.
Now, the rest depends on other switches. If you are over a net and 3DS is on
the server, you SHOULD NOT use the -dem switch, but should use the -nopgexp
switch. This causes all of 3DS code to be read into memory, and then written
to the swap file if it needs to be paged out (which better be on the local
drive by using the -swapdir switch!)
If running locally, there is no reason to use the -nopgexp switch unless you
have a faster drive for swaping.
If 3DS needs to swap out code, unless the -nopgexp switch is used, the code is
NOT written to the swap file. It is simple marked as missing. When it is
later needed, it is simply read from the .EXE file again.
I recommand using the -nur switch along with the -noswfg switches. The -noswfg
helps keeps the swap file smaller but may cause some swapping operations to
take a little longer. Fast harddisk and a small diskcache will basically
remove the overhead. The -nur switch tends to give a better use of memory when
heavy swapping occurs.
If you are swapping extensivly, reducing the -vscan value will help the VMM
make a better decision. Try -vscan 10000 or -vscan 8000.
A little known trick is to set the environment variable DOSX to one or more of
these values, much faster than reconfiguring each time. For example:
SET DOSX=-vscan 8000 -nur -noswfg -nopgexp -swapdir c:\swap
The DOSX environment variable overrides any Phar Lap setting in the software
set by cfig386.
Good luck –
Jack Bayt – Vibrant
Jack,
thanks for this very intressting switches and the SET variable.
to Autodesk:
Why are they not documented in my 3DS performance and installation guide of 3DS
????
Ingo
Ingo –
>Why are they not documented in my 3DS performance and installation guide of
>3DS ???? [DOSX environment variable stuff]
Good question. I always just look in the Phar Lap manual, but then, not
everyone needs to spend the $ to buy the Phar lap SDK<g>
Jack Bayt
JackB:
Thanks for the VERY informative reply! Fills in some of the blanks between
the 3DS installation guide and the AutoCAD book!
Appreciate it!
Greg
Jack,
excellent info and very interesting! Keep up the good work of analysing this
esoteric stuff.
Ingo,
good point but I would have thought that when swapping 3ds would put unused
pages of code into the temporary swap file rather than accessing the 3ds.exe
file itself. Hopefully we can get a definitive answer from the Yostmeister
himself.