Hi,

Thanks for all the thoughts.

I ran a test where I used four different document types, six different
mechanisms, repeated 10 times and then averaged the results.
Notes:
The √ means that the result came back as equal (just being paranoid).
4D Digest only works on text not blobs (although the documentation doesn't
say that), so that required Base 64 followed by generate digest.
Base 64 relied on  $equal_b:=(Position($1_t;$2_t;*)=1)

MD5 is always slower, it looks like the best is SHA1 digest which is what
Arnaud said above.  Note that you should always check if the blob sizes are
the same first!!  Much quicker as you skip the whole digest stage first.


√ JPEG (481,802 bytes) : 0 MD5 digest : 2.7 msec
√ JPEG (481,802 bytes) : 1 SHA1 digest : 1.4 msec
√ JPEG (481,802 bytes) : 2 4D digest : 10.0 msec
√ JPEG (481,802 bytes) : 3 SHA256 digest : 3.2 msec
√ JPEG (481,802 bytes) : 4 SHA512 digest : 2.0 msec
√ JPEG (481,802 bytes) : 5 Base 64 : 4.4 msec
√ Large Pdf (110,706,281 bytes) : 0 MD5 digest : 687.5 msec
√ Large Pdf (110,706,281 bytes) : 1 SHA1 digest : 378.2 msec
√ Large Pdf (110,706,281 bytes) : 2 4D digest : 3,308.4 msec
√ Large Pdf (110,706,281 bytes) : 3 SHA256 digest : 823.7 msec
√ Large Pdf (110,706,281 bytes) : 4 SHA512 digest : 519.7 msec
√ Large Pdf (110,706,281 bytes) : 5 Base 64 : 1,810.4 msec
√ Small Pdf (556,451 bytes) : 0 MD5 digest : 3.4 msec
√ Small Pdf (556,451 bytes) : 1 SHA1 digest : 1.9 msec
√ Small Pdf (556,451 bytes) : 2 4D digest : 13.1 msec
√ Small Pdf (556,451 bytes) : 3 SHA256 digest : 4.1 msec
√ Small Pdf (556,451 bytes) : 4 SHA512 digest : 2.6 msec
√ Small Pdf (556,451 bytes) : 5 Base 64 : 6.8 msec
√ Word Document (2,200,040 bytes) : 0 MD5 digest : 13.4 msec
√ Word Document (2,200,040 bytes) : 1 SHA1 digest : 8.1 msec
√ Word Document (2,200,040 bytes) : 2 4D digest : 56.9 msec
√ Word Document (2,200,040 bytes) : 3 SHA256 digest : 16.6 msec
√ Word Document (2,200,040 bytes) : 4 SHA512 digest : 10.6 msec
√ Word Document (2,200,040 bytes) : 5 Base 64 : 26.2 msec

Now with unequal blobs: (BLOB size($1->)=BLOB size($2->)):

X JPEG vs Large Pdf: 0 MD5 digest : 0.0 msec
X JPEG vs Large Pdf: 1 SHA1 digest : 0.0 msec
X JPEG vs Large Pdf: 2 4D digest : 0.0 msec
X JPEG vs Large Pdf: 3 SHA256 digest : 0.0 msec
X JPEG vs Large Pdf: 4 SHA512 digest : 0.0 msec
X JPEG vs Large Pdf: 5 Base 64 : 0.0 msec
X Large Pdf vs Small Pdf : 0 MD5 digest : 0.0 msec
X Large Pdf vs Small Pdf : 1 SHA1 digest : 0.0 msec
X Large Pdf vs Small Pdf : 2 4D digest : 0.0 msec
X Large Pdf vs Small Pdf : 3 SHA256 digest : 0.0 msec
X Large Pdf vs Small Pdf : 4 SHA512 digest : 0.0 msec
X Large Pdf vs Small Pdf : 5 Base 64 : 0.0 msec
X Small Pdf vs Word Document : 0 MD5 digest : 0.0 msec
X Small Pdf vs Word Document : 1 SHA1 digest : 0.0 msec
X Small Pdf vs Word Document : 2 4D digest : 0.0 msec
X Small Pdf vs Word Document : 3 SHA256 digest : 0.0 msec
X Small Pdf vs Word Document : 4 SHA512 digest : 0.0 msec
X Small Pdf vs Word Document : 5 Base 64 : 0.0 msec
X Word Document vs JPEG : 0 MD5 digest : 0.0 msec
X Word Document vs JPEG : 1 SHA1 digest : 0.0 msec
X Word Document vs JPEG : 2 4D digest : 0.0 msec
X Word Document vs JPEG : 3 SHA256 digest : 0.0 msec
X Word Document vs JPEG : 4 SHA512 digest : 0.0 msec
X Word Document vs JPEG : 5 Base 64 : 0.0 msec






Regards,

Wayne


[image: --]
Wayne Stewart
[image: http://]about.me/waynestewart
<http://about.me/waynestewart>


On 9 November 2017 at 02:45, Peter Bozek via 4D_Tech <4d_tech@lists.4d.com>
wrote:

> On Wed, Nov 8, 2017 at 2:50 PM, Arnaud de Montard via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
>
> >
> >
> > I've just tried, something like this:
> >
> >   BASE64 ENCODE($1_x;$1_t)
> >   BASE64 ENCODE($2_x;$2_t)
> >   $equal_b:=(Position($1_t;$2_t;*)=1)
> >
> >
> $equal_b:=($1_t = $2_t)
> should be faster (will end at first different char)
>
>
> --
>
> Peter Bozek
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **********************************************************************
>
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to