Skip to content

Commit c6f6855

Browse files
authored
New Workload: mobx observer + startup (#151)
Sample application for using [mobx](https://github.com/mobxjs/mobx) state managed sometimes used in combination with react. - Tuneable eval-reuse strategy - Measuring startup - Quite polymorphic
1 parent fe6b8c5 commit c6f6855

18 files changed

+8833
-0
lines changed

mobx/benchmark-node.mjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { runTest } from "./src/test.mjs";
2+
3+
const then = performance.now();
4+
runTest();
5+
const duration = performance.now() - then;
6+
7+
console.log(`Duration : ${duration.toFixed(2)}ms`);

mobx/benchmark.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Copyright (C) 2025 Apple Inc. All rights reserved.
3+
*
4+
* Redistribution and use in source and binary forms, with or without
5+
* modification, are permitted provided that the following conditions
6+
* are met:
7+
* 1. Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* 2. Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
*
13+
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19+
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20+
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21+
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
*/
25+
26+
const EXPECTED_LOG_LENGTH = 6824;
27+
28+
class Benchmark extends StartupBenchmark {
29+
lastResult;
30+
31+
constructor(iterationCount) {
32+
super({
33+
iterationCount,
34+
expectedCacheCommentCount: 464,
35+
sourceCodeReuseCount: 8,
36+
});
37+
}
38+
39+
runIteration(iteration) {
40+
// Module is loaded into PrismJSBenchmark
41+
let MobXBenchmark;
42+
eval(this.iterationSourceCodes[iteration]);
43+
this.lastResult = MobXBenchmark.runTest();
44+
}
45+
46+
validate() {
47+
console.assert(
48+
this.lastResult.length === EXPECTED_LOG_LENGTH,
49+
`Expected this.lastResult.length to be ${EXPECTED_LOG_LENGTH}, but got ${this.lastResult.length}`
50+
);
51+
}
52+
}

mobx/dist/bundle.es5.js

Lines changed: 930 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobx/dist/bundle.es5.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobx/dist/bundle.es5.min.js

Lines changed: 930 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobx/dist/bundle.es5.min.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobx/dist/bundle.es6.js

Lines changed: 930 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobx/dist/bundle.es6.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobx/dist/bundle.es6.min.js

Lines changed: 930 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobx/dist/bundle.es6.min.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)