AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Eindeutiger Vergleich für große Dateien gesucht
Thema durchsuchen
Ansicht
Themen-Optionen

Eindeutiger Vergleich für große Dateien gesucht

Ein Thema von dahead · begonnen am 2. Aug 2005 · letzter Beitrag vom 10. Mai 2014
Antwort Antwort
Seite 9 von 12   « Erste     789 1011     Letzte »    
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#81

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 15:43
Ok, ich setze noch einen drauf und habe dir die Unit fertig gecodet. In der letzen zeit hätte ich das Ding schon 2-3 mal selber gebrauchen können.

@Bigg: was ist an der ASM so lustig ?

Gruß Hagen
Angehängte Dateien
Dateityp: pas filecompare_753.pas (25,2 KB, 84x aufgerufen)
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#82

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 15:46
An Assembler ist gar nicht's lustig, aber die Länge deines Codes ist es.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#83

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 15:52
das nennt man Loop-Unrolling Der MD4 Code hat wenn ich mich recht errinnere einen Durchsatz von > 250MB/sec. Das ist auch der Grund warum der binäre Dateivergleich mit Hilfe von CompareMem() so langsam ist.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#84

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 16:07
Irgendwo hatte ich mal 'ne Funktion, welche zwar auch auf MD5 aufbaute, aber dennoch dateien mit "gleichen Hash's unterschied.

Dazu liegt bei mir noch 'ne hübsche MD5-Version rum, welche fast komplette in ASM geschrieben wurde ... und wenn ich mich nicht irre, ist die auch schneller als die oben gezeigten.

Dazu hab ich auch mal Hagen's RipeMD320 nach dem schema meiner MD5-Version überarbeitet.
Und mit dem RipeMD320 ist auch nochmal ein besserer Vergleich möglich ... da der HJash ja mehr Bits, als das MD5 hat.

Ich versuche die entsprechenden Code mal nächste Woche hochzuladen,
aber jetzt muß ich erstmal weiter ... tschüssili

[add]
@Hagen:
ich hatte mal einige deiner Codes (DEC) von Luckies Seite runtergeladen
und dort stimmte die Anzahl der Werte in der MD5-Tabelle nicht ... es sollten doch nur 256 Werte sein und nicht mehr?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#85

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 16:11
Zitat:
Dazu liegt bei mir noch 'ne hübsche MD5-Version rum, welche fast komplette in ASM geschrieben wurde ... und wenn ich mich nicht irre, ist die auch schneller als die oben gezeigten.
Ich kann dir versichern das MD4 garantiert schneller als MD5,SHA1/256,RipeMD ist. Benchmark aus meinem inoffiziellen DEC indem 3 erfahrene Coder alle Hashroutinen per Hand in Assembler optimiert haben:

Code:
THash_MD2           :     261.3 cycles/byte      5.74 Mb/sec
THash_MD4           :       5.9 cycles/byte    252.53 Mb/sec
THash_MD5           :       9.0 cycles/byte    167.01 Mb/sec
THash_SHA          :      21.0 cycles/byte     71.31 Mb/sec
THash_SHA1          :      20.7 cycles/byte     72.43 Mb/sec
THash_SHA256        :      47.2 cycles/byte     31.76 Mb/sec
THash_SHA384        :      86.1 cycles/byte     17.43 Mb/sec
THash_SHA512        :      88.0 cycles/byte     17.05 Mb/sec
THash_Sapphire     :      55.0 cycles/byte     27.25 Mb/sec
THash_Panama       :       8.1 cycles/byte    185.24 Mb/sec
THash_Tiger        :      24.7 cycles/byte     60.81 Mb/sec
THash_RipeMD128     :      15.1 cycles/byte     99.08 Mb/sec
THash_RipeMD160     :      26.5 cycles/byte     56.63 Mb/sec
THash_RipeMD256     :      14.8 cycles/byte    101.69 Mb/sec
THash_RipeMD320     :      25.7 cycles/byte     58.31 Mb/sec
THash_Haval128      :      13.9 cycles/byte    108.01 Mb/sec
THash_Haval160      :      14.1 cycles/byte    106.43 Mb/sec
THash_Haval192      :      33.4 cycles/byte     44.95 Mb/sec
THash_Haval224      :      34.7 cycles/byte     43.28 Mb/sec
THash_Haval256      :      26.2 cycles/byte     57.23 Mb/sec
THash_Whirlpool    :      98.9 cycles/byte     15.17 Mb/sec
THash_Whirlpool1    :      99.3 cycles/byte     15.10 Mb/sec
THash_Square       :      46.4 cycles/byte     32.34 Mb/sec
THash_Snefru128     :     168.2 cycles/byte      8.92 Mb/sec
THash_Snefru256     :     250.0 cycles/byte      6.00 Mb/sec
Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#86

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 16:13
@negaH:

Zitat:
Ok, ich setze noch einen drauf und habe dir die Unit fertig gecodet.
hättest du nicht unbedingt machen müssen, ich verwende lieber md5. vorallem weil ich keinen signifikanten geschwindigkeitsvorteil in einem kurzen test mit deiner FileCompare.pas festgestellt habe.

von nutzen ist deine unit aber auf alle fälle, nicht dass du mich falsch verstehst... ich verwende eben nur ungern den kompletten code von jemand anderem.

wie gesagt, nochmals danke für deine mühe!

@himitsu:

würde mich auch interessieren.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#87

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 16:15
Zitat:
und dort stimmte die Anzahl der Werte in der MD5-Tabelle nicht ... es sollten doch nur 256 Werte sein und nicht mehr?
Du meinst den Initialisierungs-Vektor, nehme ich mal an ?

Das liegt daran ads THash_MD5 die Basisklasse auch für RipeMD ist, und dieser benutzt in den ersten Inits die gleichen Werte. Um mir eine überladene Methode für die verschiedenen abgeleiteten Klassen zu sparen habe ich diesen gleich in die Mutterklasse implementiert. Die überschüssigen Werte werden also für MD5 nicht benutzt.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#88

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 16:19
Zitat:
hättest du nicht unbedingt machen müssen, ich verwende lieber md5. vorallem weil ich keinen signifikanten geschwindigkeitsvorteil in einem kurzen test mit deiner FileCompare.pas festgestellt habe.

von nutzen ist deine unit aber auf alle fälle, nicht dass du mich falsch verstehst... ich verwende eben nur ungern den kompletten code von jemand anderem.
Das du keinen Untrschied merkst liegt daran das alle anderen nötigen Schritte viel mehr an Rechenzeit benötigen. Würde man aber auf schon geladenen Speicherbereichen MD4 mit MD5 vergleichen soentstünde obige Performance Tabelle.
Für Prüfsummen erachte ich MD4 als besser, für kryptographische Belange sollte man unbedingt MD5 benutzen, da in MD4 Teilkollisionen konstruiert werden konnten (ergo gilt als unsicher-er)

Den Source habe ich im Grunde erstmal für mich persönlich geschrieben, habe ja sonst nichts besseres zu tuen

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#89

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 16:21
Ich meinte meine MD5 gegenüber den obern aufgelisteten MD5's
dass MD4 schneller ist, weiß ich auch schon.

Außerdem ist MD5 auch nur'n aufgemotzes/langsammeres MD4 ^^

PS: ich hab an meinen obrigen Beitrag noch was angehängt ...

Ach ja, aber da ich ja die wirkliche geschwingig keit meiner Codes nicht weiß ... schicke ich sie dir irgendwann mal, dann kannst du sie ja mal auf deinem System (wegen des besseren Vergleichs) testen.

@dahead:
ich werd mich beeilen ...
hab die Codes ja in 'ner eigenen Codesammlung und, wo ich nur noch mit einen Basics kleine Probleme hab ... Zeiltich bin ich ja auch noch etwas eingeschränkt

Und wenn ich die entsprechenden Codes von einigen Funktioen meiner Lib (ohne größere Probleme) trennen kann, dann veröffentliche ich auch schon vorzeitig.

@Hagen
nein, ich meine die Werte für die Berechnung ... aber ich kann mich auch im Moment irren und es war bei der CRC32-Berechnung ... wenn ich daheim bin, werde ich da sicherheitshalber nochaml nachgucken.

aber das mit der Initialisierung hab ich schon bemerkt (das die Initfunktion von beiden verwendet wird ^^)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#90

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 16:25
Zitat:
Das du keinen Untrschied merkst liegt daran das alle anderen nötigen Schritte viel mehr an Rechenzeit benötigen.
ja, ich weiß. ich könnte sicherlich mit md4 noch was rausholen, verwende md5 halt wg. der entdeckten kollision (gibts ja mtwl. bei md5 auch -> ergo ist meine begründung relativ sinnfrei, da gebe ich dir recht).

aus diesem grund bin ich auch auf himitsu's lösung gespannt.

Zitat:
Den Source habe ich im Grunde erstmal für mich persönlich geschrieben
davon haben sicherlich noch viele andere etwas. beachte einfach mal den download-counter von zeit zu zeit. ich wette der code findet viele abnehmer.

Zitat:
habe ja sonst nichts besseres zu tuen
wie darf ich das verstehen?

edit:
@himitsu:

Zitat:
ich werd mich beeilen ...
ich habe zeit, eilt nicht, trotzdem danke dafür.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 9 von 12   « Erste     789 1011     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz