Amiga.org
Amiga computer related discussion => Amiga Software Issues and Discussion => Topic started by: humppa on December 14, 2005, 09:10:53 AM
-
Hi,
I am looking for a tool for memory (not harddisk!) defragmentation.
I am currently testing Blitzquake on my Mediator/Voodoo3 setup. Since I have an Apollo with only 32MB of RAM, there is definately a memory bottleneck for running Blitzquake.
When I start it after doing WB-stuff for some time, I frequently get a guru (potentially due to a lack of memory).
Sometimes it does not even start although I set "-mem 10" and having about 28MB still available.
I don't have any problems if I start Blitzquake after a fresh reboot since the memory is not yet fragmented into small chunks.
I just don't wanna reboot each time I start glquake. So is there a way for defragging memory to larger blocks from the Workbench?
Thanks for any suggestions!
Btw, it runs really smooth -if- it runs. I was amazed what I can achieve with the 68k version. It looks so much better than the version without Warp3D. Are there any other games/demos available for 68k with Warp3D? I guess Payback won't run with only 32MB... :roll:
-
PoolMem on Aminet
-
and is a damn good tool but . . avoid to use it with PFS3 (don't know if with SFS too)
-
Thanks, I will definately try it out!
I am using SFS, so I hope that both work together.
What does a memory defrag tool have to do with my filesystem by the way?
-
is your filesystem part of the "system"? it uses caches? it uses the memory therefore it has something to do :-)
-
Ok, understood. I didn't know that Poolmem was constantly running - that's why did not see the link.
I was looking for a tool that can be run once and just defrags the memory. Poolmem rather looks like a hack. I hope it does not cause instability since I am already running so many other hacks and patches...
-
ah, no it always running (it would impossible to defragment memory in runtime)
i know people that are using and are happy with it.
IIRC in the archive, theres also an useful graphical tool to "see" the fragmented memory.
Read carefully the docs (PoolMem has some important/critical options)
try with the NOCHIP and NOMERGE options at least.
-
Hi,
Open a shell and type "avail flush"
Or
Have a look on Aminet
See: http://aminet.net/search.php?query=flush
For examples of `flush' programs.
Regards, Michael
aka rockape
-
:-?
-
@Framiga
avoid to use it with PFS3
Why? I used it for years, and all my filesystems were PFS3. No problems whatsoever.
-
here i have problems with PoolMem and PFS3.
You don't? better for you :-)
-
@humppa
You could use this FragCure command:
www.aminet.net/search.php?query=FragCure
Put it right after the SetPatch command in the
startup-sequence:
"C:SetPatch"
"C:FragCure 65536"
:-)
-
From my understanding "avail flush" just removes all unused libraries out of ram.
This will increase the ram I have available, but will not defragment it into larger blocks. Blitzquake needs the memory in one large block.
-
"avail flush" doesn't defragment any memory...
You have to use programs like FragCure.
This wil defragment it into larger blocks,
so you can play your Blitzquake game.
:-)
-
Actually 'defraging' your physical memory is completely impossible as there's no way to tell running processes to relocate their data. And there's no way to find out yourself where all the pointers are.
With the help of the MMU it would be possible to re-align the non-allocated tile sized memory chunks into one single chunk (thus creating additional logical memory), but there's no such tool around afaik.
Logical memory can create problems with allocating buffers for DMA, too...
-
@Zac67
Surely there is a lookup table or something for the system. How would the system know where memory is allocated to what program or where it can find free memory otherwise.
If a memory defrag program can also look at this table, it would probably be possible to create some sort of defrag.
-
SHADES wrote:
@Zac67
Surely there is a lookup table or something for the system. How would the system know where memory is allocated to what program or where it can find free memory otherwise.
The OS knows where the free and allocated memory is. The problem is that the OS has no way of telling the application using the memory that the memory allocated to it has moved (PalmOS has a mechanism for this, but it requires software to be written specifically to take advantage of it).
The most a utility could do (short of mucking about with the MMU) is join contiquous free blocks in the free memory list, but I would hope the OS does this by itself.
-
MskoDestny wrote:
The most a utility could do (short of mucking about with the MMU) is join contiquous free blocks in the free memory list, but I would hope the OS does this by itself.
Wouldn't that mean all of exec's memory functions would have to be patched too to take into account the page sizes used by the MMU.. and if so, wouldn't it make AllocMem/AllocVec etc wastefull for small allocations(Or does exec already have a minimum size to stop the memory lists getting stupidly long)?
-
Yeah, patches like FragCure will do the job. But, i wonder if they interfere somehow with the allocmem/freemem functions of the newer execs, like exec44 and 45.
-
Heh, guess no one thought to write EMM680x0