Index: test/js-perf-test/Collections/set.js |
diff --git a/test/js-perf-test/Collections/set.js b/test/js-perf-test/Collections/set.js |
index e6455e1c0afe15fb8196e1b1862668d7ca111d34..477e47f93249041d41991f9edbfc049aa752ebf9 100644 |
--- a/test/js-perf-test/Collections/set.js |
+++ b/test/js-perf-test/Collections/set.js |
@@ -3,45 +3,91 @@ |
// found in the LICENSE file. |
-var SetBenchmark = new BenchmarkSuite('Set', [1000], [ |
- new Benchmark('Add', false, false, 0, SetAdd), |
- new Benchmark('Has', false, false, 0, SetHas, SetSetup, SetTearDown), |
- new Benchmark('Delete', false, false, 0, SetDelete, SetSetup, SetTearDown), |
- new Benchmark('ForEach', false, false, 0, SetForEach, SetSetup, SetTearDown), |
+var SetSmiBenchmark = new BenchmarkSuite('Set-Smi', [1000], [ |
+ new Benchmark('Set', false, false, 0, SetAdd, SetSetupSmiBase, SetTearDown), |
+ new Benchmark('Has', false, false, 0, SetHas, SetSetupSmi, SetTearDown), |
+ new Benchmark('Delete', false, false, 0, SetDelete, SetSetupSmi, SetTearDown), |
+]); |
+ |
+ |
+var SetStringBenchmark = new BenchmarkSuite('Set-String', [1000], [ |
+ new Benchmark('Set', false, false, 0, SetAdd, SetSetupStringBase, SetTearDown), |
+ new Benchmark('Has', false, false, 0, SetHas, SetSetupString, SetTearDown), |
+ new Benchmark('Delete', false, false, 0, SetDelete, SetSetupString, SetTearDown), |
+]); |
+ |
+ |
+var SetObjectBenchmark = new BenchmarkSuite('Set-Object', [1000], [ |
+ new Benchmark('Set', false, false, 0, SetAdd, SetSetupObjectBase, SetTearDown), |
+ new Benchmark('Has', false, false, 0, SetHas, SetSetupObject, SetTearDown), |
+ new Benchmark('Delete', false, false, 0, SetDelete, SetSetupObject, SetTearDown), |
+]); |
+ |
+ |
+var SetIterationBenchmark = new BenchmarkSuite('Set-Iteration', [1000], [ |
+ new Benchmark('ForEach', false, false, 0, SetForEach, SetSetupSmi, SetTearDown), |
]); |
var set; |
-var N = 10; |
-function SetSetup() { |
+function SetSetupSmiBase() { |
+ SetupSmiKeys(); |
set = new Set; |
- for (var i = 0; i < N; i++) { |
- set.add(i); |
- } |
+} |
+ |
+ |
+function SetSetupSmi() { |
+ SetSetupSmiBase(); |
+ SetAdd(); |
+} |
+ |
+ |
+function SetSetupStringBase() { |
+ SetupStringKeys(); |
+ set = new Set; |
+} |
+ |
+ |
+function SetSetupString() { |
+ SetSetupStringBase(); |
+ SetAdd(); |
+} |
+ |
+ |
+function SetSetupObjectBase() { |
+ SetupObjectKeys(); |
+ set = new Set; |
+} |
+ |
+ |
+function SetSetupObject() { |
+ SetSetupObjectBase(); |
+ SetAdd(); |
} |
function SetTearDown() { |
- map = null; |
+ set = null; |
} |
function SetAdd() { |
- SetSetup(); |
- SetTearDown(); |
+ for (var i = 0; i < N; i++) { |
+ set.add(keys[i], i); |
+ } |
} |
function SetHas() { |
for (var i = 0; i < N; i++) { |
- if (!set.has(i)) { |
+ if (!set.has(keys[i])) { |
throw new Error(); |
} |
} |
for (var i = N; i < 2 * N; i++) { |
- if (set.has(i)) { |
+ if (set.has(keys[i])) { |
throw new Error(); |
} |
} |
@@ -52,7 +98,7 @@ function SetDelete() { |
// This is run more than once per setup so we will end up deleting items |
// more than once. Therefore, we do not the return value of delete. |
for (var i = 0; i < N; i++) { |
- set.delete(i); |
+ set.delete(keys[i]); |
} |
} |