Adler32 & Crc32

Anwendungen, Tools, Userlibs und anderes nützliches.
msschulte

Adler32 & Crc32

Beitrag 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:
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Adler32 & Crc32

Beitrag 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
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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++
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
msschulte

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Adler32 & Crc32

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Adler32 & Crc32

Beitrag 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
a²+b²=mc²
msschulte

Beitrag 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:
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Antworten