Seite 1 von 1

Adler32 & Crc32

Verfasst: 01.09.2006 01:46
von msschulte
Hi @ all!

Für alle die damit etwas anfangen können habe ich hier zwei UserLibs mit FAsm geproggt. Natürlich für blockweise Verarbeitung gedacht und sehr schnell.

http://home.arcor.de/msschulte/adler32.zip
http://home.arcor.de/msschulte/crc32.zip

Interessanter Weise hab ich festgestellt das PureBasic bei weitem nicht die Geschwindigkeit erreicht die der Code bieten könnte. Das trifft auf den ersten Blick auf alle UserLibs zu die ich so getestet habe. Der gleiche Asm-Code mit FAsm, PowerBasic oder VC++ und man kommt fast auf das doppelte der Geschwindigkeit. :freak:

Re: Adler32 & Crc32

Verfasst: 01.09.2006 10:55
von Kiffi
Hallo Marc Sven,

Whow! Mit dem ersten Posting gleich 2 nützliche Libs abliefern. Das nenne
ich mal einen Einstand! :allright:

Die CRC32 ist wirklich sehr fix. Was ich aber noch besser finde ist, dass
man grosse Dateien nicht mehr in einem Rutsch einlesen muss, sondern
blockweise lesen kann. Wenn ich das richtig verstanden habe, dann kann
man Deinem CRC32() die Checksumme des vorher gelesenen Blocks
übergeben und hat hinterher die Checksumme aller Blocks?

Zu meiner Schande muss ich gestehen, dass ich Adler32 bisher noch gar
nicht kannte. Wenn ich das richtig gelesen habe, dann eignet sich diese
Checksummenberechnung eher für grosse Datenmengen. Korrekt?

Und last, but not least: Seit dem Wechsel von PB3.94 zu PB4 und den
darauf resultierenden Inkompatibilitäten einiger Libs ist die Akzeptanz von
Libs im Allgemeinen grösser, wenn dort der Sourcecode beiliegt.

Wenn also nichts dagegen spricht, wäre es toll, wenn Du den Sourcecode
Deinen Libs beilegen würdest (auch wenn der Grossteil der hier
Anwesenden (mich eingerechnet) damit nichts anfangen kann ;-) ). Aber
die Entscheidung darüber liegt selbstredend in Deinem Ermessen.

Danke & Grüße ... Kiffi

Verfasst: 01.09.2006 11:22
von Kaeru Gaman
Willkommen im Board.

ich verstehe deine aussage nicht so ganz...

> Der gleiche Asm-Code mit FAsm, PowerBasic oder VC++ und man kommt fast auf das doppelte der Geschwindigkeit.

wie kann man denn mit den anderen werkzeugen UserLibs erstellen?
ich dachte, das ginge sowieso nur mit Tailbyte?

Verfasst: 01.09.2006 11:27
von DarkDragon
Kaeru Gaman hat geschrieben:Willkommen im Board.

ich verstehe deine aussage nicht so ganz...

> Der gleiche Asm-Code mit FAsm, PowerBasic oder VC++ und man kommt fast auf das doppelte der Geschwindigkeit.

wie kann man denn mit den anderen werkzeugen UserLibs erstellen?
ich dachte, das ginge sowieso nur mit Tailbyte?
Ursprünglich konnte man nur mit C/FASM Userlibs erstellen. Heute geht es auch mit PB - TailBite und VC++

Verfasst: 01.09.2006 11:47
von msschulte
Wenn ich das richtig verstanden habe, dann kann
man Deinem CRC32() die Checksumme des vorher gelesenen Blocks
übergeben und hat hinterher die Checksumme aller Blocks?
...
Wenn ich das richtig gelesen habe, dann eignet sich diese
Checksummenberechnung eher für grosse Datenmengen.
Korrekt!
Seit dem Wechsel von PB3.94 zu PB4 und den
darauf resultierenden Inkompatibilitäten einiger Libs ist die Akzeptanz von
Libs im Allgemeinen grösser, wenn dort der Sourcecode beiliegt.
Mal sehen. :) Die hier sind auf jedenfall für PB4 gemacht.

@Kaeru Gaman:

Wie DarkDragon schon sagte kann man die UserLibs fast mit allem Erstellen.
Der gleiche Asm-Code mit FAsm, PowerBasic oder VC++ und man kommt fast auf das doppelte der Geschwindigkeit.
Damit meine ich das der selbe Code in anderen Compilern eingesetzt viel schneller ist als in PureBasic.
Weiß der Geier warum und was PureBasic damit anstellt - ich wollt es nur mal anmerken.

Re: Adler32 & Crc32

Verfasst: 01.09.2006 14:34
von ts-soft
Kiffi hat geschrieben: Und last, but not least: Seit dem Wechsel von PB3.94 zu PB4 und den
darauf resultierenden Inkompatibilitäten einiger Libs ist die Akzeptanz von
Libs im Allgemeinen grösser, wenn dort der Sourcecode beiliegt.
Es geht mehr darum, das so gut wie keine TailBited Lib Unicode oder
Threadsafe, bzw. Kombination dieser, unterstützt. Bei Souce-Code
funktioniert dies im allg. autom., da der Compiler das regelt. Eine Lib ist aber
nunmal schon kompiliert. Ich kenne bisher keine UserLib in PB geschrieben,
die dies kann :wink:

Re: Adler32 & Crc32

Verfasst: 01.09.2006 15:14
von Kiffi
ts-soft hat geschrieben: Es geht mehr darum, das so gut wie keine TailBited Lib Unicode oder
Threadsafe, bzw. Kombination dieser, unterstützt.
ja, das spielt sicherlich auch eine wichtige Rolle. Aber es gibt etliche Leute,
die generell keine Libs verwenden, wenn sie nicht auch in Sourcecode
vorliegen (allein schon aufgrund der daraus resultierenden
Zukunftssicherheit).

Grüße ... Kiffi

Verfasst: 17.09.2006 14:43
von msschulte
Nun, ich geb Code nur ungern heraus weil ich schon nette Erfahrungen mit Code-klau gemacht habe.
War zwar nichts bedeutendes aber man fühlt sich schon etwas beschissen
wenn andere unter ihrem Namen deinen Code veröffentlichen.

Aber wenn jemand unbedingt den Code will wird er eh mit nem Disassembler dran kommen. :wink:

Verfasst: 17.09.2006 14:50
von Kiffi
> Nun, ich geb Code nur ungern heraus

Nicht, dass jetzt hier der falsche Eindruck entsteht: niemand zwingt Dich,
Deinen Code zu veröffentlichen. Kann ich gut nachvollziehen, wenn Du das
nicht machen möchtest.

Grüße ... Kiffi