Repository navigation
Conversation
Since the non-simd version of the test is relatively slow I reduced the iteration/worst counts to 15/2, repsectively. Also, I moved all the benchmark files to the argon2 directory to help organize the wasm directory a bit.
|
CC @danleh @camillobruni @eqrion @jandem for thoughts |
|
Regarding the Edit: I searched a bit, could this NPM package/repo be the upstream? https://github.com/antelle/argon2-browser |
|
Mhm, I think there is something wrong with the non-SIMD variant of this benchmark. In particular, the flamegraph/profile shows tons of samples attributed to capturing stack traces, caused by growing the memory inside If you modify you get tons of errors, e.g., in d8 I will briefly try to rebuild this from source to diagnose further. @kmiller68 have you seen this before or is this just a problem on my end? Do you have more information on why/how the memory usage of the non-SIMD variant could be higher than the SIMD variant? Could this be an issue simply because of running multiple iterations after setup, such that later iteration continuously grow memory? Edit: While I could build the For the time being, I don't think the non-SIMD variant is measuring something sensible. |
| "./wasm/argon2.js", | ||
| "./wasm/argon2-benchmark.js" | ||
| "./wasm/argon2/argon2-bundle.js", | ||
| "./wasm/argon2/argon2.js", |
There was a problem hiding this comment.
Similar to the other Emscripten-built line items, could we move the generated files in a build/ subdirectory, to distinguish them from manually written code, such as benchmark.js (just so we/someone in the future doesn't end up mixing/interjecting manually written with generated code again).
There was a problem hiding this comment.
Also, is it correct that both benchmark.js and argon2.js were written by you (or your colleagues)?
| }, | ||
| benchmarkClass: WasmLegacyBenchmark, | ||
| benchmarkClass: WasmEMCCBenchmark, | ||
| iterations: 15, |
There was a problem hiding this comment.
Even with only 15 iterations, the non-SIMD variant runs quite long (>1 minute), while the SIMD variant runs ~2-3s with the same number of iterations. I am bit surprised by that stark difference (30x or more), so I will spend a brief time trying to understand why we are that slow. We do expect the SIMD and non-SIMD variant to do essentially the same amount of work, right?
|
(lone comment, since the file wasn't changed in this PR): I believe the JetStream/wasm/argon2/build.sh Line 17 in ab7d6d0 |
|
Closing this in favor of #47 |

Since the non-simd version of the test is relatively slow I reduced the iteration/worst counts to 15/2, repsectively.
Also, I moved all the benchmark files to the argon2 directory to help organize the wasm directory a bit.