You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+32-13
Original file line number
Diff line number
Diff line change
@@ -6,23 +6,42 @@ $ pnpm bench
6
6
7
7
## Features
8
8
9
-
- Configurable dependency graph: graph shape, density, read rate are all adjustable.
9
+
- Configurable dependency graph: graph shape, density, read rate are all adjustable
10
10
- Easily add new benchmarks and frameworks
11
11
- Supports dynamic reactive nodes
12
-
- Framework agnostic. Simple API to test new reactive frameworks.
13
-
- Uses v8 intrinsics to warmup and cleanup
14
-
- Tracks garbage collection overhead per test
15
-
- Outputs a csv file for easy integration with other tools.
16
-
12
+
- Framework agnostic. Simple API to test new reactive frameworks
13
+
- Forces garbage collection between each test
14
+
- Outputs a csv file for easy integration with other tools
17
15
18
16
Current reactivity benchmarks ([S.js](https://github.com/adamhaile/S/blob/master/bench/bench.js), [CellX](https://github.com/Riim/cellx/blob/master/perf/perf.html)) are focused on creation time, and update time for a static graph. Additionally, existing benchmarks aren't very configurable, and don't test for dynamic dependencies. We've created a new benchmark that allows library authors to compare their frameworks against each other, and against the existing benchmarks, as well as against a new configurable benchmark with dynamically changing sources.
19
17
20
18
We're also working on enabling consistent logging and efficient tracking of GC time across all benchmarks.
21
19
22
-
The frameworks are all plenty fast for typical applications. The charts report the run time of the test in milliseconds on an M1 laptop, and are made using [Tableau](https://public.tableau.com/). Typical applications will do much more work than a framework benchmark, and at these speeds the frameworks are unlikely to bottleneck overall performance.
23
-
24
-
That said, there's learning here to improve performance of all the frameworks.
<imgsrc="https://github.com/user-attachments/assets/f6d041a1-d5da-4b30-8e60-b4c815ac70bc"alt="Average benchmark results across frameworks">
44
+
(<em>lower times are better</em>)
45
+
</p>
46
+
47
+
These results were last updated _September 2024_ on an M3 Macbook Pro using Node.js v22.4.1 ([29d22d6](https://github.com/transitive-bullshit/js-reactivity-benchmark/tree/29d22d64666b25aa8268ef8ff30afe8d51bb7937)).
0 commit comments