Move argon2 to first, average, worst scoring.
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.
diff --git a/JetStreamDriver.js b/JetStreamDriver.js
index 0f5c613..08e24cf 100644
--- a/JetStreamDriver.js
+++ b/JetStreamDriver.js
@@ -1999,27 +1999,29 @@
{
name: "argon2-wasm",
files: [
- "./wasm/argon2-bundle.js",
- "./wasm/argon2.js",
- "./wasm/argon2-benchmark.js"
+ "./wasm/argon2/argon2-bundle.js",
+ "./wasm/argon2/argon2.js",
+ "./wasm/argon2/benchmark.js"
],
preload: {
- argon2WasmBlob: "./wasm/argon2.wasm",
+ argon2WasmBlob: "./wasm/argon2/argon2.wasm",
},
- benchmarkClass: WasmLegacyBenchmark,
+ benchmarkClass: WasmEMCCBenchmark,
+ iterations: 15,
+ worstCaseCount: 2,
testGroup: WasmGroup
},
{
name: "argon2-wasm-simd",
files: [
- "./wasm/argon2-bundle.js",
- "./wasm/argon2.js",
- "./wasm/argon2-benchmark.js"
+ "./wasm/argon2/argon2-bundle.js",
+ "./wasm/argon2/argon2.js",
+ "./wasm/argon2/benchmark.js"
],
preload: {
- argon2WasmSimdBlob: "./wasm/argon2-simd.wasm",
+ argon2WasmSimdBlob: "./wasm/argon2/argon2-simd.wasm",
},
- benchmarkClass: WasmLegacyBenchmark,
+ benchmarkClass: WasmEMCCBenchmark,
testGroup: WasmGroup
},
// WorkerTests
diff --git a/wasm/argon2-bundle.js b/wasm/argon2/argon2-bundle.js
similarity index 100%
rename from wasm/argon2-bundle.js
rename to wasm/argon2/argon2-bundle.js
diff --git a/wasm/argon2-simd.wasm b/wasm/argon2/argon2-simd.wasm
similarity index 100%
rename from wasm/argon2-simd.wasm
rename to wasm/argon2/argon2-simd.wasm
Binary files differ
diff --git a/wasm/argon2.js b/wasm/argon2/argon2.js
similarity index 100%
rename from wasm/argon2.js
rename to wasm/argon2/argon2.js
diff --git a/wasm/argon2.wasm b/wasm/argon2/argon2.wasm
similarity index 100%
rename from wasm/argon2.wasm
rename to wasm/argon2/argon2.wasm
Binary files differ
diff --git a/wasm/argon2-benchmark.js b/wasm/argon2/benchmark.js
similarity index 70%
rename from wasm/argon2-benchmark.js
rename to wasm/argon2/benchmark.js
index 3c82ca6..1bbd77d 100644
--- a/wasm/argon2-benchmark.js
+++ b/wasm/argon2/benchmark.js
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023 Apple Inc. All rights reserved.
+ * Copyright (C) 2023-2024 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,22 +23,20 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-async function doRun() {
- let start = benchmarkTime();
- if (!isInBrowser) {
- globalThis.argon2WasmSimdBlob = Module.argon2WasmSimdBlob;
- globalThis.argon2WasmBlob = Module.argon2WasmBlob;
+class Benchmark {
+ firstIteration = true;
+ async runIteration() {
+ if (this.firstIteration) {
+ this.firstIteration = false;
+ if (!isInBrowser) {
+ globalThis.argon2WasmSimdBlob = Module.argon2WasmSimdBlob;
+ globalThis.argon2WasmBlob = Module.argon2WasmBlob;
+ }
+
+ await instantiateArgon2WasmInstance();
+ }
+
+ return await testArgon2HashAndVerify();
}
-
- await instantiateArgon2WasmInstance();
- await testArgon2HashAndVerify();
- reportCompileTime(benchmarkTime() - start);
-
- start = benchmarkTime();
-
- for (let i = 0; i < 5; ++i)
- await testArgon2HashAndVerify();
-
- reportRunTime(benchmarkTime() - start)
-}
+};