| 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]);
|
| }
|
| }
|
|
|
|
|