AminetAminet
Search:
84716 packages online
About
Recent
Browse
Search
Upload
Setup
Services

util/boot/AllocFrags.lha

Mirror:Random
Showing:ppc-morphosgeneric
No screenshot available
Short:Brutally remove small mem frags on 040/060 systems (+src)
Author:bernie at shock.cosmos.it (Bernardo Innocenti)
Uploader:bernie shock cosmos it (Bernardo Innocenti)
Type:util/boot
Architecture:m68k-amigaos
Date:1997-10-20
Download:http://aminet.net/util/boot/AllocFrags.lha - View contents
Readme:http://aminet.net/util/boot/AllocFrags.readme
Downloads:5571

 Use the included AvailFrag program or a system monitor such as Scout
or XOper to determine if your system memory list has many small holes
of 8 to 256 bytes each. Lots of small chunks are usually made by badly
written programs (not freeing all the memory they allocated).

 On systems equipped with 68040 or 68060 the program SetPatch will
load the 68060.library  68040.library at boot time. These libraries
will setup the MMU page descriptors to cover all addressable memory
space, including space reserved by Zorro boards. Unfortunately, the
040/060 MMUs require an 512-byte alignament for the descriptors,
even if they only take up 256 bytes. So they free up the remaining
256 bytes in order to give some memory back to the system. On my
Amiga 4000, which is fitted with four Zorro boards, this leaves more
than 500 memory chunks right after booting the system! Such a
fragmented memory list will slow down all AllocMem() and FreeMem()
calls because they need to scan almost the entire list before they
can reach the first memory chunk bigger than 256 byte.

 Put AllocFrags anywhere in your Startup-Sequence after SetPatch.
It will remove from the memory list any chunks whose size is equal
or smaller than 256 bytes. Using AllocFrags frequently during your
normal system activity is not a good idea because it might cause
even more fragmentation in your memory list once you close a
program and it frees a memory block which was contiguous to one
already removed by AllocFrags.

 I admit AllocFrags is a real hack and it WILL stop working when
the OS memory allocation engine is changed (e.g.: to accomodate
virtual or protected memory). Anyway, I'm sure that AllocFrags on
OS 2.0 upto 3.1 will not cause any incompatibilities or system
crashes. Inspect the source code if you don't believe me.


Contents of util/boot/AllocFrags.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                  271     284  95.4% -lh5- 6112 Oct 18  1997 AllocFrags/AllocFrags
[generic]                  754    1649  45.7% -lh5- fd65 Oct 18  1997 AllocFrags/AllocFrags.c
[generic]                 1033    1998  51.7% -lh5- f09f Oct 18  1997 AllocFrags/AllocFrags.readme
[generic]                  446     970  46.0% -lh5- fa7f Oct 12  1997 AllocFrags/AllocFrags.¶
[generic]                  125     174  71.8% -lh5- e03e Oct 11  1997 AllocFrags/SMakefile
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         5 files    2629    5075  51.8%            Oct 20  1997

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>