Skip to content

Commit ac1dea6

Browse files
committed
perf(script): update performance script
1 parent a92e991 commit ac1dea6

File tree

4 files changed

+108
-93
lines changed

4 files changed

+108
-93
lines changed

packages/reactant-module/src/decorators/computed.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export const computed = (depsCallback: (instance: any) => any[]) => (
4141
}
4242
}
4343
const depsCallbackSelector = createSelectorWithArray(
44+
// for performance improvement
4445
(that: Service) => [that[storeKey]?.getState()],
4546
// eslint-disable-next-line func-names
4647
function (this: Service) {

scripts/performance/generateTestSourceWithMobx.ts

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,37 @@
33
/* eslint-disable prettier/prettier */
44
/* eslint-disable no-unused-expressions */
55
import { writeFileSync } from 'fs';
6-
import { argv } from 'yargs';
6+
import yargs from 'yargs';
7+
8+
const argv = yargs.argv as any;
79

810
const {
911
classAmount = 50,
1012
oneClassReducerAmount = 10,
1113
computedTime = (50000 / classAmount) | 0, // 1000 -> Run out of memory
1214
allCheckedState = true,
13-
} = argv.mode ? {
14-
small: {
15-
classAmount: 100,
16-
oneClassReducerAmount: 20,
17-
computedTime: 1000,
18-
allCheckedState: true,
19-
},
20-
big: {
21-
classAmount: 200,
22-
oneClassReducerAmount: 30,
23-
computedTime: 1000,
24-
allCheckedState: true,
25-
},
26-
huge: {
27-
classAmount: 300,
28-
oneClassReducerAmount: 100,
29-
computedTime: 1000,
30-
allCheckedState: true,
31-
},
32-
// @ts-ignore
33-
}[argv.mode] : (argv as any);
15+
} = argv.mode
16+
? ({
17+
small: {
18+
classAmount: 100,
19+
oneClassReducerAmount: 20,
20+
computedTime: 1000,
21+
allCheckedState: true,
22+
},
23+
big: {
24+
classAmount: 200,
25+
oneClassReducerAmount: 30,
26+
computedTime: 1000,
27+
allCheckedState: true,
28+
},
29+
huge: {
30+
classAmount: 300,
31+
oneClassReducerAmount: 100,
32+
computedTime: 1000,
33+
allCheckedState: true,
34+
},
35+
} as any)[argv.mode]
36+
: argv;
3437

3538
// const checkedState = allCheckedState ? '' : '(this as any)[storeKey].getState()';
3639
const source = `
@@ -91,7 +94,7 @@ class Service${i} {
9194
9295
${(() => {
9396
let stateStr = '';
94-
for (let j = 0; j < oneClassReducerAmount; j+=1) {
97+
for (let j = 0; j < oneClassReducerAmount; j += 1) {
9598
stateStr += `
9699
@observable
97100
test${j} = ${j};
@@ -116,7 +119,7 @@ class Service${i} {
116119
return (this.service${i - 1}.props.sum
117120
${(() => {
118121
let stateStr = '';
119-
for (let j = 0; j < oneClassReducerAmount; j+=1) {
122+
for (let j = 0; j < oneClassReducerAmount; j += 1) {
120123
stateStr += `
121124
+ this.test${j}
122125
`;
@@ -133,8 +136,9 @@ class Service${i} {
133136
134137
@injectable()
135138
class App extends ViewModule {
136-
constructor(public service${classAmount - 1}: Service${classAmount -
137-
1}, public service0: Service0) {
139+
constructor(public service${classAmount - 1}: Service${
140+
classAmount - 1
141+
}, public service0: Service0) {
138142
super();
139143
}
140144
@@ -162,7 +166,7 @@ const bootstrap = Date.now() - time;
162166
time = Date.now();
163167
${(() => {
164168
let computedStr = '';
165-
for (let i = 0; i < computedTime; i+=1) {
169+
for (let i = 0; i < computedTime; i += 1) {
166170
computedStr += `
167171
app.instance.service0.decrease();
168172
app.instance.props.sum;
@@ -174,7 +178,7 @@ const computedTime = Date.now() - time;
174178
time = Date.now();
175179
${(() => {
176180
let computedStr = '';
177-
for (let i = 0; i < computedTime; i+=1) {
181+
for (let i = 0; i < computedTime; i += 1) {
178182
computedStr += `
179183
app.instance.props.sum;
180184
`;
@@ -183,6 +187,7 @@ ${(() => {
183187
})()}
184188
const cache = Date.now() - time;
185189
console.log('Result:', { bootstrap, update: computedTime, computedGetter: cache });
190+
process.exit();
186191
`;
187192

188193
writeFileSync('./packages/reactant/test/performance.tsx', source);

scripts/performance/generateTestSourceWithPlain.ts

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,37 @@
33
/* eslint-disable prettier/prettier */
44
/* eslint-disable no-unused-expressions */
55
import { writeFileSync } from 'fs';
6-
import { argv } from 'yargs';
6+
import yargs from 'yargs';
7+
8+
const argv = yargs.argv as any;
79

810
const {
911
classAmount = 50,
1012
oneClassReducerAmount = 10,
1113
computedTime = (50000 / classAmount) | 0, // 1000 -> Run out of memory
1214
allCheckedState = true,
13-
} = argv.mode ? {
14-
small: {
15-
classAmount: 100,
16-
oneClassReducerAmount: 20,
17-
computedTime: 1000,
18-
allCheckedState: true,
19-
},
20-
big: {
21-
classAmount: 200,
22-
oneClassReducerAmount: 30,
23-
computedTime: 1000,
24-
allCheckedState: true,
25-
},
26-
huge: {
27-
classAmount: 300,
28-
oneClassReducerAmount: 100,
29-
computedTime: 1000,
30-
allCheckedState: true,
31-
},
32-
// @ts-ignore
33-
}[argv.mode] : (argv as any);
15+
} = argv.mode
16+
? ({
17+
small: {
18+
classAmount: 100,
19+
oneClassReducerAmount: 20,
20+
computedTime: 1000,
21+
allCheckedState: true,
22+
},
23+
big: {
24+
classAmount: 200,
25+
oneClassReducerAmount: 30,
26+
computedTime: 1000,
27+
allCheckedState: true,
28+
},
29+
huge: {
30+
classAmount: 300,
31+
oneClassReducerAmount: 100,
32+
computedTime: 1000,
33+
allCheckedState: true,
34+
},
35+
} as any)[argv.mode]
36+
: argv;
3437

3538
// const checkedState = allCheckedState ? '' : '(this as any)[storeKey].getState()';
3639
const source = `
@@ -79,7 +82,7 @@ class Service${i} {
7982
8083
${(() => {
8184
let stateStr = '';
82-
for (let j = 0; j < oneClassReducerAmount; j+=1) {
85+
for (let j = 0; j < oneClassReducerAmount; j += 1) {
8386
stateStr += `
8487
test${j} = ${j};
8588
`;
@@ -101,7 +104,7 @@ class Service${i} {
101104
return (this.service${i - 1}.props.sum
102105
${(() => {
103106
let stateStr = '';
104-
for (let j = 0; j < oneClassReducerAmount; j+=1) {
107+
for (let j = 0; j < oneClassReducerAmount; j += 1) {
105108
stateStr += `
106109
+ this.test${j}
107110
`;
@@ -111,15 +114,16 @@ class Service${i} {
111114
);
112115
}
113116
}
114-
const service${i} = new Service${i}(service${i-1});
117+
const service${i} = new Service${i}(service${i - 1});
115118
`;
116119
}
117120
return classStr;
118121
})()}
119122
const app = {};
120123
class App extends ViewModule {
121-
constructor(public service${classAmount - 1}: Service${classAmount -
122-
1}, public service0: Service0) {
124+
constructor(public service${classAmount - 1}: Service${
125+
classAmount - 1
126+
}, public service0: Service0) {
123127
super();
124128
}
125129
@@ -140,7 +144,7 @@ const bootstrap = Date.now() - time;
140144
time = Date.now();
141145
${(() => {
142146
let computedStr = '';
143-
for (let i = 0; i < computedTime; i+=1) {
147+
for (let i = 0; i < computedTime; i += 1) {
144148
computedStr += `
145149
app.instance.service0.decrease();
146150
app.instance.props.sum;
@@ -152,7 +156,7 @@ const computed = Date.now() - time;
152156
time = Date.now();
153157
${(() => {
154158
let computedStr = '';
155-
for (let i = 0; i < computedTime; i+=1) {
159+
for (let i = 0; i < computedTime; i += 1) {
156160
computedStr += `
157161
app.instance.props.sum;
158162
`;
@@ -161,6 +165,7 @@ ${(() => {
161165
})()}
162166
const cache = Date.now() - time;
163167
console.log('Result:', { bootstrap, update: computed, computedGetter: cache });
168+
process.exit();
164169
`;
165170

166171
writeFileSync('./packages/reactant/test/performance.tsx', source);

scripts/performance/generateTestSourceWithReactant.ts

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,44 @@
1-
/* eslint-disable @typescript-eslint/ban-ts-ignore */
21
/* eslint-disable no-bitwise */
32
/* eslint-disable prettier/prettier */
43
/* eslint-disable no-unused-expressions */
54
import { writeFileSync } from 'fs';
6-
import { argv } from 'yargs';
5+
import yargs from 'yargs';
6+
7+
const argv = yargs.argv as any;
78

89
const {
910
classAmount = 50,
1011
oneClassReducerAmount = 10,
1112
computedTime = (50000 / classAmount) | 0, // 1000 -> Run out of memory
1213
allCheckedState = true,
13-
} = argv.mode ? {
14-
small: {
15-
classAmount: 100,
16-
oneClassReducerAmount: 20,
17-
computedTime: 1000,
18-
allCheckedState: true,
19-
},
20-
big: {
21-
classAmount: 200,
22-
oneClassReducerAmount: 30,
23-
computedTime: 1000,
24-
allCheckedState: true,
25-
},
26-
huge: {
27-
classAmount: 300,
28-
oneClassReducerAmount: 100,
29-
computedTime: 1000,
30-
allCheckedState: true,
31-
}
32-
// @ts-ignore
33-
}[argv.mode] : (argv as any);
14+
} = argv.mode
15+
? ({
16+
small: {
17+
classAmount: 100,
18+
oneClassReducerAmount: 20,
19+
computedTime: 1000,
20+
allCheckedState: true,
21+
},
22+
big: {
23+
classAmount: 200,
24+
oneClassReducerAmount: 30,
25+
computedTime: 1000,
26+
allCheckedState: true,
27+
},
28+
huge: {
29+
classAmount: 300,
30+
oneClassReducerAmount: 100,
31+
computedTime: 1000,
32+
allCheckedState: true,
33+
},
34+
} as any)[argv.mode]
35+
: argv;
3436

3537
// const checkedState = allCheckedState ? '' : '(this as any)[storeKey].getState()';
3638
const source = `
3739
// @ts-nocheck
3840
process.env.NODE_ENV = 'production';
39-
console.log('mode:', ${JSON.stringify(argv.mode)});
41+
console.log('mode:', ${JSON.stringify((argv as any).mode)});
4042
console.log(${JSON.stringify({
4143
classAmount,
4244
oneClassReducerAmount,
@@ -90,7 +92,7 @@ class Service${i} {
9092
9193
${(() => {
9294
let stateStr = '';
93-
for (let j = 0; j < oneClassReducerAmount; j+=1) {
95+
for (let j = 0; j < oneClassReducerAmount; j += 1) {
9496
stateStr += `
9597
@state
9698
test${j} = ${j};
@@ -114,7 +116,7 @@ class Service${i} {
114116
that.service${i - 1}.props.sum,
115117
${(() => {
116118
let stateStr = '';
117-
for (let j = 0; j < oneClassReducerAmount; j+=1) {
119+
for (let j = 0; j < oneClassReducerAmount; j += 1) {
118120
stateStr += `
119121
that[stateKey].test${j},
120122
`;
@@ -125,14 +127,14 @@ class Service${i} {
125127
get sum() {
126128
return this.service${i - 1}.props.sum
127129
${(() => {
128-
let stateStr = '';
129-
for (let j = 0; j < oneClassReducerAmount; j+=1) {
130-
stateStr += `
130+
let stateStr = '';
131+
for (let j = 0; j < oneClassReducerAmount; j += 1) {
132+
stateStr += `
131133
+ this.test${j}
132134
`;
133-
}
134-
return stateStr;
135-
})()}
135+
}
136+
return stateStr;
137+
})()}
136138
;
137139
}
138140
}
@@ -143,8 +145,9 @@ class Service${i} {
143145
144146
@injectable()
145147
class App extends ViewModule {
146-
constructor(public service${classAmount - 1}: Service${classAmount -
147-
1}, public service0: Service0) {
148+
constructor(public service${classAmount - 1}: Service${
149+
classAmount - 1
150+
}, public service0: Service0) {
148151
super();
149152
}
150153
@@ -172,7 +175,7 @@ const bootstrap = Date.now() - time;
172175
time = Date.now();
173176
${(() => {
174177
let computedStr = '';
175-
for (let i = 0; i < computedTime; i+=1) {
178+
for (let i = 0; i < computedTime; i += 1) {
176179
computedStr += `
177180
app.instance.service0.decrease();
178181
app.instance.props.sum;
@@ -184,7 +187,7 @@ const computed1 = Date.now() - time;
184187
time = Date.now();
185188
${(() => {
186189
let computedStr = '';
187-
for (let i = 0; i < computedTime; i+=1) {
190+
for (let i = 0; i < computedTime; i += 1) {
188191
computedStr += `
189192
app.instance.props.sum;
190193
`;
@@ -193,6 +196,7 @@ ${(() => {
193196
})()}
194197
const cache = Date.now() - time;
195198
console.log('Result:', { bootstrap, update: computed1, computedGetter: cache });
199+
process.exit();
196200
`;
197201

198202
writeFileSync('./packages/reactant/test/performance.tsx', source);

0 commit comments

Comments
 (0)