INHALT | INDEX | ZURÜCK | WEITER
GCompare
GCompare ist ein Shell-Befehl mit folgender Syntax:
GCompare <alte Datei> <neue Datei> <Patchdatei> [MODE <n> [VARY <n>] | AUTO [DEEP]] [VERBOSE] [mem128 | mem256]
GCompare vergleicht die alte Datei mit der neuen Datei und speichert alle
Änderungen (Patches) in der Patchdatei.
Wenn GCompare eine bereits bestehende Patchdatei findet, dann hängt es die
Änderungen an diese Datei an, nachdem es überprüft hat, daß für die zu
bearbeitende alte Datei noch keine Änderungen in der Patchdatei enthalten sind.
Außerdem sucht es auch in der Patchdatei nach passenden Daten.
Aus der alten Datei und der Patchdatei kann GPatch dann die neue Datei
erzeugen.
Bei Problemen gibt GCompare eine Fehlermeldung aus.
Schwerwiegende Fehler werden immer von einem Return-Code von 15 begleitet,
und wenn das Ergebnis eine in irgendeiner Form beschädigte oder unvollständige
Patchdatei ist, dann wird sie gelöscht.
Die Argumente MODE, VARY, AUTO und DEEP wählen die Betriebsart aus:
Ohne Angabe einer Betriebsart arbeitet GCompare im Modus 3, der für alle Dateien ein
brauchbares Ergebnis liefert.
Mit dem Argument AUTO wählt GCompare selbständig das optimale
Dateiformat aus. Das zusätzliche Argument DEEP bewirkt außerdem, daß
die minimale Größe, ab der ein Datenbereich als passend gewertet wird,
um -1 bis 1 verändert wird.
Mit AUTO DEEP erzeugt GCompare die kürzeste mögliche Patch-Datei.
Wenn Sie zusätzlich das Argument VERBOSE angeben, dann zeigt Ihnen GCompare
nach dem Abschluß der Vergleichsfunktion die Einstellungen an, mit denen
das beste Resultat erzielt worden ist.
Mit dem Argument MODE können Sie das Dateiformat direkt angeben.
Die möglichen Werte für <n> nach MODE sind 1 bis 4.
Das Argument VARY verändert die internen Werte der Minimalgröße für
passende Datenbereiche, die in der DEEP-Betriebsart automatisch getestet
werden. Der kleinste zulässige Wert ist -3.
Mit dem Argument VERBOSE zeigt GCompare in allen Betriebsarten außer AUTO
eine ausführliche Liste der Patchdaten an.
GCompare braucht genug Arbeitsspeicher, um die alte, die neue und die
Patchdatei gleichzeitig im Speicher halten zu können.
Die Suchgeschwindigkeit von GCompare hängt vom dann noch verfügbaren Speicher
ab.
Der schnellste Suchalgorithmus benötigt insgesamt 9 mal die Dateigröße
der alten Datei plus 128 MB.
Der Suchalgorithmus mit einem zweidimensionalen Array benötigt insgesamt
9 mal die Dateigröße der alten Datei plus 514 KB. (Dieser Algorithmus war der
schnellste in den Versionen 2 von GCompare.)
Der einfache Listen-Suchalgorithmus benötigt insgesamt 9 mal die Dateigröße
der alten Datei plus 2 KB.
Wenn GCompare auch diesen Speicher nicht findet, dann arbeitet es
nur noch in der Betriebsart 3 mit linearer Suche.
Das gleiche gilt für die Suche in der möglicherweise vorhandenen Patchdatei.
Die schnellste Suche braucht 9 mal die Dateigröße der Patchdatei plus 128 MB,
die Suche mittels zweidimensionalem Array braucht 9 mal die Dateigröße der
Patchdatei plus 514 KB und die einfache Suche 9 mal die Dateigröße plus 2 KB.
Wenn der Speicher auch dafür nicht ausreicht, dann wird
nur in der alten Datei gesucht.
Die Angaben mem128 oder mem256 verhindern die Benutzung von beiden oder
einem der 128-MB-Sucharrays. Das ist auf Systemen mit virtuellem Speicher
sinnvoll, da die Suche nur mit physischem Speicher schnell ist - wenn auf
die Festplatte zugegriffen werden muß, wird das Programm wesentlich langsamer
als mit den 512-KB-Sucharrays.
Ihr Computer sollte GCompare also mehr als 128 MB physischen Arbeitsspeicher
zur Verfügung stellen, um es für zum Erzeugen einer neuen Patchdatei schnell ausführen
zu können. Zum Anhängen weiterer Daten an eine Patchdatei sind mehr als 256 MB zweckmäßig.
Beispiel: Wenn Sie auf einem WinUAE-Rechner mit 256 MB RAM an eine Patchdatei einen weiteren Patch für eine 100 KB große Datei anhängen möchten, dann braucht GCompare für die schnelle Suche in der Datei ca. 129 MB und für die Suche in der Patchdatei weitere 128 MB. Da 257 MB nicht vorhanden sind (abzüglich Windows, dem Emulator und AmigaOS sind es vielleicht noch
200 MB), würde ein Teil der Suche den virtuellen Speicher von Windows brauchen. Deshalb
sollten Sie in diesem Fall das Argument mem256 angeben. Damit benutzt GCompare nur für die Suche in der alten Datei das 128-MB-Array, die Suche in der Patchdatei würde dann mit einem
512-KB-Array durchgeführt.