emn178 / js-md5

A simple MD5 hash function for JavaScript supports UTF-8 encoding.
MIT License
788 stars 427 forks source link

Docs: Correct benchmark result + joseph-md5 #42

Open cyfung1031 opened 9 months ago

cyfung1031 commented 9 months ago

I noticed that in your README, there is a benchmark testing, but the joseph's md5 is not included. I wonder which is faster so I tried to compare it.

Docs for joseph-md5: https://www.myersdaily.org/joseph/javascript/md5-text.html

Benchmark 1

Benchmark: https://measurethat.net/Benchmarks/Show/29171/0/md5-performance-comparison-v2

Result:

Screen Shot 2024-01-10 at 7 48 05

Benchmark 2

https://measurethat.net/Benchmarks/Show/29172/0/md5-performance-comparison-long-text-v2

Result:

Screen Shot 2024-01-10 at 7 52 30

Issue with the current benchmark in README

  1. jsperf.app is a bit unreliable on short time self execution. It should be tested with a long input.
  2. a longer string should be used to see the actual speed.
  3. One of the tests is async. deferred.resolve is required.

Correct jsperf.app with deferred.resolve + joseph-md5

Benchmark: https://jsperf.app/jonuhi/6

Screen Shot 2024-01-10 at 7 57 04

Now it comes out the result that aligns with measurethat.net.

Summary

Your library is great ! I believe it is the fastest MD5 library for sync md5 function. I will submit a PR for updating the README :)

Note: I guess if you convert js-md5 to using low-level WebAssembly coding, it will be much faster.

3rolin commented 2 months ago

https://svn.?????????.com/bot/sub/cbe38717a6d972172cbf19f1f6696e2b

3rolin commented 2 months ago

https://svn.?????????.com/bot/sub/cbe38717a6d972172cbf19f1f6696e2b[]()