1
1
import { bench } from 'vitest'
2
- import {
3
- computed ,
4
- effect ,
5
- reactive ,
6
- readonly ,
7
- shallowRef ,
8
- triggerRef ,
9
- } from '../src'
2
+ import { effect , reactive , reactiveReadArray , shallowReadArray } from '../src'
10
3
11
4
for ( let amount = 1e1 ; amount < 1e4 ; amount *= 10 ) {
12
5
{
@@ -16,7 +9,7 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
16
9
}
17
10
const arr = reactive ( rawArray )
18
11
19
- bench ( `track for loop on reactive array , ${ amount } elements` , ( ) => {
12
+ bench ( `track for loop, ${ amount } elements` , ( ) => {
20
13
let sum = 0
21
14
effect ( ( ) => {
22
15
for ( let i = 0 ; i < arr . length ; i ++ ) {
@@ -33,11 +26,12 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
33
26
}
34
27
const arr = reactive ( rawArray )
35
28
36
- bench ( `track iteration on reactive array , ${ amount } elements` , ( ) => {
29
+ bench ( `track manual reactiveReadArray , ${ amount } elements` , ( ) => {
37
30
let sum = 0
38
31
effect ( ( ) => {
39
- for ( let x of arr ) {
40
- sum += x
32
+ const raw = shallowReadArray ( arr )
33
+ for ( let i = 0 ; i < raw . length ; i ++ ) {
34
+ sum += raw [ i ]
41
35
}
42
36
} )
43
37
} )
@@ -50,54 +44,7 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
50
44
}
51
45
const arr = reactive ( rawArray )
52
46
53
- bench ( `track forEach on reactive array, ${ amount } elements` , ( ) => {
54
- let sum = 0
55
- effect ( ( ) => {
56
- arr . forEach ( x => ( sum += x ) )
57
- } )
58
- } )
59
- }
60
-
61
- {
62
- const rawArray : number [ ] = [ ]
63
- for ( let i = 0 , n = amount ; i < n ; i ++ ) {
64
- rawArray . push ( i )
65
- }
66
- const arr = reactive ( rawArray )
67
-
68
- bench ( `track reduce on reactive array, ${ amount } elements` , ( ) => {
69
- let sum = 0
70
- effect ( ( ) => {
71
- sum = arr . reduce ( ( v , a ) => a + v , 0 )
72
- } )
73
- } )
74
- }
75
-
76
- {
77
- const rawArray : number [ ] = [ ]
78
- for ( let i = 0 , n = amount ; i < n ; i ++ ) {
79
- rawArray . push ( i )
80
- }
81
- const arr = readonly ( rawArray )
82
-
83
- bench ( `track for loop on readonly array, ${ amount } elements` , ( ) => {
84
- let sum = 0
85
- effect ( ( ) => {
86
- for ( let i = 0 ; i < arr . length ; i ++ ) {
87
- sum += arr [ i ]
88
- }
89
- } )
90
- } )
91
- }
92
-
93
- {
94
- const rawArray : number [ ] = [ ]
95
- for ( let i = 0 , n = amount ; i < n ; i ++ ) {
96
- rawArray . push ( i )
97
- }
98
- const arr = readonly ( rawArray )
99
-
100
- bench ( `track iteration on readonly array, ${ amount } elements` , ( ) => {
47
+ bench ( `track iteration, ${ amount } elements` , ( ) => {
101
48
let sum = 0
102
49
effect ( ( ) => {
103
50
for ( let x of arr ) {
@@ -112,9 +59,9 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
112
59
for ( let i = 0 , n = amount ; i < n ; i ++ ) {
113
60
rawArray . push ( i )
114
61
}
115
- const arr = readonly ( rawArray )
62
+ const arr = reactive ( rawArray )
116
63
117
- bench ( `track forEach on readonly array , ${ amount } elements` , ( ) => {
64
+ bench ( `track forEach, ${ amount } elements` , ( ) => {
118
65
let sum = 0
119
66
effect ( ( ) => {
120
67
arr . forEach ( x => ( sum += x ) )
@@ -127,9 +74,9 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
127
74
for ( let i = 0 , n = amount ; i < n ; i ++ ) {
128
75
rawArray . push ( i )
129
76
}
130
- const arr = readonly ( rawArray )
77
+ const arr = reactive ( rawArray )
131
78
132
- bench ( `track reduce on readonly array , ${ amount } elements` , ( ) => {
79
+ bench ( `track reduce, ${ amount } elements` , ( ) => {
133
80
let sum = 0
134
81
effect ( ( ) => {
135
82
sum = arr . reduce ( ( v , a ) => a + v , 0 )
@@ -146,7 +93,7 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
146
93
effect ( ( ) => r . reduce ( ( v , a ) => a + v , 0 ) )
147
94
148
95
bench (
149
- `trigger index mutation (1st only) on *reactive* array ( tracked with reduce) , ${ amount } elements` ,
96
+ `trigger index mutation (1st only), tracked with reduce, ${ amount } elements` ,
150
97
( ) => {
151
98
r [ 0 ] ++
152
99
} ,
@@ -162,7 +109,7 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
162
109
effect ( ( ) => r . reduce ( ( v , a ) => a + v , 0 ) )
163
110
164
111
bench (
165
- `trigger index mutation (all) on *reactive* array ( tracked with reduce) , ${ amount } elements` ,
112
+ `trigger index mutation (all), tracked with reduce, ${ amount } elements` ,
166
113
( ) => {
167
114
for ( let i = 0 , n = r . length ; i < n ; i ++ ) {
168
115
r [ i ] ++
@@ -184,12 +131,9 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
184
131
}
185
132
} )
186
133
187
- bench (
188
- `push() trigger on reactive array tracked via iteration, ${ amount } elements` ,
189
- ( ) => {
190
- arr . push ( 1 )
191
- } ,
192
- )
134
+ bench ( `push() trigger, tracked via iteration, ${ amount } elements` , ( ) => {
135
+ arr . push ( 1 )
136
+ } )
193
137
}
194
138
195
139
{
@@ -203,11 +147,8 @@ for (let amount = 1e1; amount < 1e4; amount *= 10) {
203
147
arr . forEach ( x => ( sum += x ) )
204
148
} )
205
149
206
- bench (
207
- `push() trigger on reactive array tracked via forEach, ${ amount } elements` ,
208
- ( ) => {
209
- arr . push ( 1 )
210
- } ,
211
- )
150
+ bench ( `push() trigger, tracked via forEach, ${ amount } elements` , ( ) => {
151
+ arr . push ( 1 )
152
+ } )
212
153
}
213
154
}
0 commit comments