#WShell RESIdent Problem?
2 messages in this thread
Why does it make a call that frees up mem?
Well, there's only so much memory in the machine… and if you need a large
chunk of it (contigenous) but there is a (theoretacle) 1 byte long library
in the middle of it (not currently being used) then you can't get the one
big chunk. I'm not an expert on this type of thing, but each library
and/or font loads into 'some' space in memory, which eventually 'fragments'
the large sections of memory available into smaller chunks (running
programs also allocate various small chunks, worsening the situation) so
that ( in this case ) when I need to re-size/move one window (requires mem)
and open another (more mem) I need a little breathing room. Allocating 16
megs (trying to) will do just that <grin>.
This was just the only way I knew of to do it (and had seen examples of).
Unfortunately, it effects things like Facc II (I think), resident commands
and alias commands, most of which were not around 2 yrs ago.
I now know of a way of removing unused fonts (that were loaded within
Access!) from memory… I think it's a 1.2 command, so I can change that
part of the code. – Keith
The Amiga's memory management routine will do all they can to try to
deliver the memory you ask for, including (if necessary) asking any
resident but unused libraries and devices to expunge themselves. If a
program really needs lots of memory, then it should of course ask for it
and have the system free up anything it can.
This approach to memory management can work very effectively by letting
library-based software stick around in memory even if it's not being used,
while still being able to reclaim the space when needed. A good example is
the way WordPerfect is built; it has several big libraries that take a
while to load from floppies, but once loaded can be fired up immediately.
But if some other software comes along and needs the memory, it can get
it.
It's really only the _unnecessary_ calls to free up memory that are
systemand user-unfriendly; it doesn't break anything to have to reload a
library, but just takes longer to do it.