From b7fbe50741d683f9ee2541abfa316eda4c48d31a Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Wed, 22 May 2024 20:51:35 +0800 Subject: [PATCH] fix new state Signed-off-by: wangweiyuan --- .../entry/src/main/ets/pages/Index.ets | 2 +- .../computed/ComputedArraySample.ets | 28 +--- .../computed/ComputedBooleanSample.ets | 34 +---- .../computed/ComputedDateSample.ets | 35 +---- .../computed/ComputedEnumSample.ets | 32 +---- .../computed/ComputedMapSample.ets | 28 +--- .../computed/ComputedNumberSample.ets | 27 +--- .../computed/ComputedObjectSample.ets | 27 +--- .../computed/ComputedSetSample.ets | 33 +---- .../computed/ComputedStringSample.ets | 27 +--- .../consumer/ConsumerArraySample.ets | 59 +++++++- .../consumer/ConsumerBooleanSample.ets | 60 +++++++- .../consumer/ConsumerClassSample.ets | 59 +++++++- .../consumer/ConsumerDateSample.ets | 60 +++++++- .../consumer/ConsumerMapSample.ets | 59 +++++++- .../consumer/ConsumerNumberSample.ets | 60 +++++++- .../consumer/ConsumerSetSample.ets | 59 +++++++- .../consumer/ConsumerStringSample.ets | 59 +++++++- .../local/LocalArraySample.ets | 60 +++++++- .../local/LocalBooleanSample.ets | 60 +++++++- .../local/LocalClassSample.ets | 59 +++++++- .../stateManagement/local/LocalDateSample.ets | 64 ++++++++- .../stateManagement/local/LocalEnumSample.ets | 59 +++++++- .../stateManagement/local/LocalMapSample.ets | 65 ++++++++- .../local/LocalNumberSample.ets | 60 +++++++- .../local/LocalObjectSample.ets | 59 +++++++- .../stateManagement/local/LocalSetSample.ets | 59 +++++++- .../local/LocalStringSample.ets | 59 +++++++- .../local/LocalUnionSample.ets | 61 +++++++- .../monitor/MonitorArraySample.ets | 66 ++++++++- .../monitor/MonitorDeepLayerSample.ets | 71 +++++++++- .../monitor/MonitorInheritSample.ets | 66 ++++++++- .../monitor/MonitorOrdinarySample.ets | 69 ++++++++- .../observedV2/ObservedV2ArraySample.ets | 59 +++++++- .../observedV2/ObservedV2DateSample.ets | 63 +++++++- .../observedV2/ObservedV2MapSample.ets | 61 +++++++- .../observedV2/ObservedV2OrdinarySample.ets | 62 +++++++- .../observedV2/ObservedV2SetSample.ets | 59 +++++++- .../stateManagement/once/OnceArraySample.ets | 127 +++++++++++++++++ .../once/OnceBooleanSample.ets | 126 ++++++++++++++++ .../stateManagement/once/OnceClassSample.ets | 134 ++++++++++++++++++ .../stateManagement/once/OnceDateSample.ets | 124 ++++++++++++++++ .../stateManagement/once/OnceEnumSample.ets | 127 +++++++++++++++++ .../EventHome.ets => once/OnceHome.ets} | 17 ++- .../stateManagement/once/OnceMapSample.ets | 119 ++++++++++++++++ .../OnceNumberSample.ets} | 110 ++++++++------ .../stateManagement/once/OnceObjectSample.ets | 126 ++++++++++++++++ .../stateManagement/once/OnceSetSample.ets | 119 ++++++++++++++++ .../stateManagement/once/OnceStringSample.ets | 127 +++++++++++++++++ .../stateManagement/once/OnceUnionSample.ets | 126 ++++++++++++++++ .../param/ParamArraySample.ets | 72 ++++++++-- .../param/ParamBooleanSample.ets | 59 +++++++- .../param/ParamClassSample.ets | 101 ++++++++++--- .../stateManagement/param/ParamDateSample.ets | 59 +++++++- .../stateManagement/param/ParamEnumSample.ets | 59 +++++++- .../stateManagement/param/ParamMapSample.ets | 59 +++++++- .../param/ParamNumberSample.ets | 59 +++++++- .../param/ParamObjectSample.ets | 59 +++++++- .../stateManagement/param/ParamSetSample.ets | 59 +++++++- .../param/ParamStringSample.ets | 59 +++++++- .../param/ParamUnionSample.ets | 86 +++++++++-- .../provider/ProviderArraySample.ets | 61 +++++++- .../provider/ProviderBooleanSample.ets | 60 +++++++- .../provider/ProviderClassSample.ets | 59 +++++++- .../provider/ProviderDateSample.ets | 60 +++++++- .../provider/ProviderMapSample.ets | 63 +++++++- .../provider/ProviderNumberSample.ets | 60 +++++++- .../provider/ProviderSetSample.ets | 59 +++++++- .../provider/ProviderStringSample.ets | 59 +++++++- .../trace/TraceArraySample.ets | 79 +++++++++-- .../trace/TraceBooleanSample.ets | 68 +++++++-- .../trace/TraceClassSample.ets | 67 ++++++++- .../stateManagement/trace/TraceDateSample.ets | 73 ++++++++-- .../stateManagement/trace/TraceMapSample.ets | 69 ++++++++- .../trace/TraceNumberSample.ets | 62 +++++++- .../stateManagement/trace/TraceSetSample.ets | 67 ++++++++- .../trace/TraceStringSample.ets | 63 +++++++- .../resources/base/profile/main_pages.json | 16 ++- .../src/ohosTest/ets/test/State.test.ets | 88 +++++++----- 79 files changed, 4693 insertions(+), 542 deletions(-) create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceArraySample.ets create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceBooleanSample.ets create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceClassSample.ets create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceDateSample.ets create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceEnumSample.ets rename performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/{event/EventHome.ets => once/OnceHome.ets} (44%) create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceMapSample.ets rename performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/{event/EventEventSample.ets => once/OnceNumberSample.ets} (39%) create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceObjectSample.ets create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceSetSample.ets create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceStringSample.ets create mode 100755 performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceUnionSample.ets diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/Index.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/Index.ets index 88dd0ad8..e2cc0408 100644 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/Index.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/Index.ets @@ -99,7 +99,7 @@ struct Index { CommonButton({ buttonName: '@Local', buttonUrl: 'pages/stateManagement/local/LocalHome' }); CommonButton({ buttonName: '@Computed', buttonUrl: 'pages/stateManagement/computed/ComputedHome' }); CommonButton({ buttonName: '@Param', buttonUrl: 'pages/stateManagement/param/ParamHome' }); - CommonButton({ buttonName: '@Event', buttonUrl: 'pages/stateManagement/event/EventHome' }); + CommonButton({ buttonName: '@Once', buttonUrl: 'pages/stateManagement/once/OnceHome' }); CommonButton({ buttonName: '@Consumer', buttonUrl: 'pages/stateManagement/consumer/ConsumerHome' }); CommonButton({ buttonName: '@Provider', buttonUrl: 'pages/stateManagement/provider/ProviderHome' }); } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedArraySample.ets index bab59b7e..469883a8 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedArraySample.ets @@ -21,7 +21,6 @@ import { StateUtils } from '../StateUtils'; @Entry @ComponentV2 struct ComputedArraySample { - isType: boolean = true @Local testData: string[] = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰'] @Computed @@ -30,16 +29,10 @@ struct ComputedArraySample { } timeHelper: TimeHelper = new TimeHelper('ComputedArraySample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) - aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { this.testData[index] = index.toString() } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { let tmp = this.testData[index] @@ -49,29 +42,16 @@ struct ComputedArraySample { build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value:${this.computedFun[this.computedFun.length - 1]}` : - `value: ${this.computedFun[this.computedFun.length - 1]}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData[this.testData.length - 1] = 'click test' - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun[this.computedFun.length - 1]}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.computedFun[0] + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData[index] + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData[this.testData.length - 1] = `set test` - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedBooleanSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedBooleanSample.ets index 112b74f5..6948099c 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedBooleanSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedBooleanSample.ets @@ -21,57 +21,33 @@ import { StateUtils } from '../StateUtils'; @Entry @ComponentV2 struct ComputedBooleanSample { - isType: boolean = true @Local testData: boolean = true - @Computed get computedFun() { return this.testData } timeHelper: TimeHelper = new TimeHelper('ComputedBooleanSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) - aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData = !this.testData - } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData + let tmp = this.computedFun } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${this.computedFun}` : - `value: ${this.computedFun}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData = !this.testData - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.computedFun + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.computedFun + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = !this.testData - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedDateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedDateSample.ets index 1660aaeb..0fed7102 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedDateSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedDateSample.ets @@ -21,59 +21,34 @@ import { StateUtils } from '../StateUtils'; @Entry @ComponentV2 struct ComputedDateSample { - isType: boolean = true @Local testData: Date = new Date('2021-08-08'); - @Computed get computedFun() { return this.testData } timeHelper: TimeHelper = new TimeHelper('ComputedDateSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - let arr: number[] = [this.testData.getTime() - 60 * 60 * 1000, this.testData.getTime() - 20 * 60 * 1000] - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData.setTime(arr[index % 2]) - } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData.getTime() + let tmp = this.computedFun.getTime() } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${this.computedFun.toTimeString()}` : - `value: ${this.computedFun.toTimeString()}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData.setTime(this.testData.getTime() + 3 * 60 * 60 * 1000) - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun.toTimeString()}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.computedFun + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.computedFun.getTime() + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - let time: number = this.testData.getTime() + 10 * 60 * 60 * 1000 - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.setTime(time) - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedEnumSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedEnumSample.ets index 796bd928..28a41277 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedEnumSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedEnumSample.ets @@ -22,7 +22,6 @@ import { LanguageEnum } from '../ClassModel'; @Entry @ComponentV2 struct ComputedEnumSample { - isType: boolean = true tmpArr: LanguageEnum[] = [LanguageEnum.English, LanguageEnum.Chinese] @Local testData: LanguageEnum = LanguageEnum.English; @@ -32,48 +31,27 @@ struct ComputedEnumSample { } timeHelper: TimeHelper = new TimeHelper('ComputedEnumSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData = this.tmpArr[index % 2] - } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData + let tmp = this.computedFun } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${this.computedFun}` : - `value: ${this.computedFun}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData = LanguageEnum.Japanese - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.computedFun + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.computedFun + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = LanguageEnum.Russian - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedMapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedMapSample.ets index 313dca27..67f137a6 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedMapSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedMapSample.ets @@ -30,48 +30,30 @@ struct ComputedMapSample { } timeHelper: TimeHelper = new TimeHelper('ComputedMapSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { this.testData.set(index,index.toString()) } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData.get(index) + let tmp = this.computedFun.get(index) } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${this.computedFun.get(3)}` : - `value: ${this.computedFun.get(3)}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData.set(3,'bye') - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun.get(0)}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.computedFun.get(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.computedFun.get(index) + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.set(3,'world') - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedNumberSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedNumberSample.ets index e5b7e740..f9911455 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedNumberSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedNumberSample.ets @@ -30,33 +30,18 @@ struct ComputedNumberSample { } timeHelper: TimeHelper = new TimeHelper('ComputedNumberSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData = index - } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData + let tmp = this.computedFun } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${this.computedFun}` : - `value: ${this.computedFun}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData += 1 - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { @@ -64,14 +49,6 @@ struct ComputedNumberSample { let tmp = this.computedFun this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData -= 1 - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedObjectSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedObjectSample.ets index dfeb034b..f2191d3f 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedObjectSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedObjectSample.ets @@ -30,33 +30,18 @@ struct ComputedObjectSample { } timeHelper: TimeHelper = new TimeHelper('ComputedObjectSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData = ` not bind UI test ` + index - } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData + let tmp = this.computedFun } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${this.computedFun.toString()}` : - `value: ${this.computedFun.toString()}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData = ` click test` - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun.toString()}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { @@ -64,14 +49,6 @@ struct ComputedObjectSample { let tmp = this.computedFun this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = ` set test` - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedSetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedSetSample.ets index 2fed22ae..84586f0f 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedSetSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedSetSample.ets @@ -30,50 +30,27 @@ struct ComputedSetSample { } timeHelper: TimeHelper = new TimeHelper('ComputedSetSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData.add(index) - } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) - this.testData.clear() - this.testData.add(500) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData.values() + let tmp = this.computedFun.values() } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${Array.from(this.computedFun.values()).toString()}` : - `value: ${Array.from(this.computedFun.values()).toString()}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData.add(10000) - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${Array.from(this.computedFun.values()).toString()}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.computedFun.values() + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.computedFun.values() + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.add(-1) - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedStringSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedStringSample.ets index ca846027..755e45a3 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedStringSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/computed/ComputedStringSample.ets @@ -30,33 +30,18 @@ struct ComputedStringSample { } timeHelper: TimeHelper = new TimeHelper('ComputedStringSample'); - a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test = this.computedFun - b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData = ` not bind UI test ` + index - } - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let tmp = this.testData + let tmp = this.computedFun } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(this.isType, this.timeHelper) ? `value: ${this.computedFun}` : - `value: ${this.computedFun}`) - .id('changeUITimeTaken') - .onClick(() => { - this.isType = false - this.testData = ` click test` - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) + Text(`value: ${this.computedFun}`) Button('读@Computed的耗时') .id('getStateTimeTaken') .onClick(() => { @@ -64,14 +49,6 @@ struct ComputedStringSample { let tmp = this.computedFun this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('写@Computed的耗时') - .id('setStateTimeTaken') - .onClick(() => { - this.isType = true - this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = ` set test` - this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerArraySample.ets index fdc1c3ee..5cbb9f2d 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerArraySample.ets @@ -26,7 +26,57 @@ let isType: boolean = true struct ChildConsumerArraySample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: Array = [] + @Consumer() testData1: Array = [] + @Consumer() testData2: Array = [] + @Consumer() testData3: Array = [] + @Consumer() testData4: Array = [] + @Consumer() testData5: Array = [] + @Consumer() testData6: Array = [] + @Consumer() testData7: Array = [] + @Consumer() testData8: Array = [] + @Consumer() testData9: Array = [] + @Consumer() testData10: Array = [] + @Consumer() testData11: Array = [] + @Consumer() testData12: Array = [] + @Consumer() testData13: Array = [] + @Consumer() testData14: Array = [] + @Consumer() testData15: Array = [] + @Consumer() testData16: Array = [] + @Consumer() testData17: Array = [] + @Consumer() testData18: Array = [] + @Consumer() testData19: Array = [] + @Consumer() testData20: Array = [] + @Consumer() testData21: Array = [] + @Consumer() testData22: Array = [] + @Consumer() testData23: Array = [] + @Consumer() testData24: Array = [] + @Consumer() testData25: Array = [] + @Consumer() testData26: Array = [] + @Consumer() testData27: Array = [] + @Consumer() testData28: Array = [] + @Consumer() testData29: Array = [] + @Consumer() testData30: Array = [] + @Consumer() testData31: Array = [] + @Consumer() testData32: Array = [] + @Consumer() testData33: Array = [] + @Consumer() testData34: Array = [] + @Consumer() testData35: Array = [] + @Consumer() testData36: Array = [] + @Consumer() testData37: Array = [] + @Consumer() testData38: Array = [] + @Consumer() testData39: Array = [] + @Consumer() testData40: Array = [] + @Consumer() testData41: Array = [] + @Consumer() testData42: Array = [] + @Consumer() testData43: Array = [] + @Consumer() testData44: Array = [] + @Consumer() testData45: Array = [] + @Consumer() testData46: Array = [] + @Consumer() testData47: Array = [] + @Consumer() testData48: Array = [] + @Consumer() testData49: Array = [] b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -58,15 +108,20 @@ struct ChildConsumerArraySample { .id('getStateTimeTaken') .onClick(()=>{ timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData[0] + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData[index] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(()=>{ isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData[0] = '世界你好' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData[index] = index.toString() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerBooleanSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerBooleanSample.ets index 51dc3edd..c946211a 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerBooleanSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerBooleanSample.ets @@ -26,8 +26,58 @@ let isType: boolean = true struct ChildConsumerBooleanSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: boolean = true + @Consumer() testData1: boolean = true + @Consumer() testData2: boolean = true + @Consumer() testData3: boolean = true + @Consumer() testData4: boolean = true + @Consumer() testData5: boolean = true + @Consumer() testData6: boolean = true + @Consumer() testData7: boolean = true + @Consumer() testData8: boolean = true + @Consumer() testData9: boolean = true + @Consumer() testData10: boolean = true + @Consumer() testData11: boolean = true + @Consumer() testData12: boolean = true + @Consumer() testData13: boolean = true + @Consumer() testData14: boolean = true + @Consumer() testData15: boolean = true + @Consumer() testData16: boolean = true + @Consumer() testData17: boolean = true + @Consumer() testData18: boolean = true + @Consumer() testData19: boolean = true + @Consumer() testData20: boolean = true + @Consumer() testData21: boolean = true + @Consumer() testData22: boolean = true + @Consumer() testData23: boolean = true + @Consumer() testData24: boolean = true + @Consumer() testData25: boolean = true + @Consumer() testData26: boolean = true + @Consumer() testData27: boolean = true + @Consumer() testData28: boolean = true + @Consumer() testData29: boolean = true + @Consumer() testData30: boolean = true + @Consumer() testData31: boolean = true + @Consumer() testData32: boolean = true + @Consumer() testData33: boolean = true + @Consumer() testData34: boolean = true + @Consumer() testData35: boolean = true + @Consumer() testData36: boolean = true + @Consumer() testData37: boolean = true + @Consumer() testData38: boolean = true + @Consumer() testData39: boolean = true + @Consumer() testData40: boolean = true + @Consumer() testData41: boolean = true + @Consumer() testData42: boolean = true + @Consumer() testData43: boolean = true + @Consumer() testData44: boolean = true + @Consumer() testData45: boolean = true + @Consumer() testData46: boolean = true + @Consumer() testData47: boolean = true + @Consumer() testData48: boolean = true + @Consumer() testData49: boolean = true b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: boolean[] = [false, true] + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -59,16 +109,20 @@ struct ChildConsumerBooleanSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let a = !this.testData + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = a + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = this.tmpArr[index % 2] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerClassSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerClassSample.ets index 8bdb4459..257c7564 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerClassSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerClassSample.ets @@ -27,8 +27,58 @@ let isType: boolean = true struct ChildConsumerClassSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: ClassModel = classModel + @Consumer() testData1: ClassModel = classModel + @Consumer() testData2: ClassModel = classModel + @Consumer() testData3: ClassModel = classModel + @Consumer() testData4: ClassModel = classModel + @Consumer() testData5: ClassModel = classModel + @Consumer() testData6: ClassModel = classModel + @Consumer() testData7: ClassModel = classModel + @Consumer() testData8: ClassModel = classModel + @Consumer() testData9: ClassModel = classModel + @Consumer() testData10: ClassModel = classModel + @Consumer() testData11: ClassModel = classModel + @Consumer() testData12: ClassModel = classModel + @Consumer() testData13: ClassModel = classModel + @Consumer() testData14: ClassModel = classModel + @Consumer() testData15: ClassModel = classModel + @Consumer() testData16: ClassModel = classModel + @Consumer() testData17: ClassModel = classModel + @Consumer() testData18: ClassModel = classModel + @Consumer() testData19: ClassModel = classModel + @Consumer() testData20: ClassModel = classModel + @Consumer() testData21: ClassModel = classModel + @Consumer() testData22: ClassModel = classModel + @Consumer() testData23: ClassModel = classModel + @Consumer() testData24: ClassModel = classModel + @Consumer() testData25: ClassModel = classModel + @Consumer() testData26: ClassModel = classModel + @Consumer() testData27: ClassModel = classModel + @Consumer() testData28: ClassModel = classModel + @Consumer() testData29: ClassModel = classModel + @Consumer() testData30: ClassModel = classModel + @Consumer() testData31: ClassModel = classModel + @Consumer() testData32: ClassModel = classModel + @Consumer() testData33: ClassModel = classModel + @Consumer() testData34: ClassModel = classModel + @Consumer() testData35: ClassModel = classModel + @Consumer() testData36: ClassModel = classModel + @Consumer() testData37: ClassModel = classModel + @Consumer() testData38: ClassModel = classModel + @Consumer() testData39: ClassModel = classModel + @Consumer() testData40: ClassModel = classModel + @Consumer() testData41: ClassModel = classModel + @Consumer() testData42: ClassModel = classModel + @Consumer() testData43: ClassModel = classModel + @Consumer() testData44: ClassModel = classModel + @Consumer() testData45: ClassModel = classModel + @Consumer() testData46: ClassModel = classModel + @Consumer() testData47: ClassModel = classModel + @Consumer() testData48: ClassModel = classModel + @Consumer() testData49: ClassModel = classModel b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: ClassModel[] = [classModel1,classModel2] + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -60,15 +110,20 @@ struct ChildConsumerClassSample { .id('getStateTimeTaken') .onClick(()=>{ timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(()=>{ isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = classModel1 + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = this.tmpArr[index % 2] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerDateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerDateSample.ets index f0099300..6b544de6 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerDateSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerDateSample.ets @@ -26,8 +26,58 @@ let isType: boolean = true struct ChildConsumerDateSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: Date = new Date() + @Consumer() testData1: Date = new Date() + @Consumer() testData2: Date = new Date() + @Consumer() testData3: Date = new Date() + @Consumer() testData4: Date = new Date() + @Consumer() testData5: Date = new Date() + @Consumer() testData6: Date = new Date() + @Consumer() testData7: Date = new Date() + @Consumer() testData8: Date = new Date() + @Consumer() testData9: Date = new Date() + @Consumer() testData10: Date = new Date() + @Consumer() testData11: Date = new Date() + @Consumer() testData12: Date = new Date() + @Consumer() testData13: Date = new Date() + @Consumer() testData14: Date = new Date() + @Consumer() testData15: Date = new Date() + @Consumer() testData16: Date = new Date() + @Consumer() testData17: Date = new Date() + @Consumer() testData18: Date = new Date() + @Consumer() testData19: Date = new Date() + @Consumer() testData20: Date = new Date() + @Consumer() testData21: Date = new Date() + @Consumer() testData22: Date = new Date() + @Consumer() testData23: Date = new Date() + @Consumer() testData24: Date = new Date() + @Consumer() testData25: Date = new Date() + @Consumer() testData26: Date = new Date() + @Consumer() testData27: Date = new Date() + @Consumer() testData28: Date = new Date() + @Consumer() testData29: Date = new Date() + @Consumer() testData30: Date = new Date() + @Consumer() testData31: Date = new Date() + @Consumer() testData32: Date = new Date() + @Consumer() testData33: Date = new Date() + @Consumer() testData34: Date = new Date() + @Consumer() testData35: Date = new Date() + @Consumer() testData36: Date = new Date() + @Consumer() testData37: Date = new Date() + @Consumer() testData38: Date = new Date() + @Consumer() testData39: Date = new Date() + @Consumer() testData40: Date = new Date() + @Consumer() testData41: Date = new Date() + @Consumer() testData42: Date = new Date() + @Consumer() testData43: Date = new Date() + @Consumer() testData44: Date = new Date() + @Consumer() testData45: Date = new Date() + @Consumer() testData46: Date = new Date() + @Consumer() testData47: Date = new Date() + @Consumer() testData48: Date = new Date() + @Consumer() testData49: Date = new Date() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: number[] = [this.testData.getTime() - 60 * 60 * 1000,this.testData.getTime() - 30 * 60 * 1000] + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -59,16 +109,20 @@ struct ChildConsumerDateSample { .id('getStateTimeTaken') .onClick(()=>{ timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(()=>{ isType = true - let a = this.testData.getTime() + 10 * 60 * 60 * 1000 + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.setTime(a) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.setTime(this.tmpArr[index % 2]) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerMapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerMapSample.ets index ec9be989..4a2ba51f 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerMapSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerMapSample.ets @@ -26,7 +26,57 @@ let isType: boolean = true struct ChildConsumerMapSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: Map = new Map([]); + @Consumer() testData1: Map = new Map([]); + @Consumer() testData2: Map = new Map([]); + @Consumer() testData3: Map = new Map([]); + @Consumer() testData4: Map = new Map([]); + @Consumer() testData5: Map = new Map([]); + @Consumer() testData6: Map = new Map([]); + @Consumer() testData7: Map = new Map([]); + @Consumer() testData8: Map = new Map([]); + @Consumer() testData9: Map = new Map([]); + @Consumer() testData10: Map = new Map([]); + @Consumer() testData11: Map = new Map([]); + @Consumer() testData12: Map = new Map([]); + @Consumer() testData13: Map = new Map([]); + @Consumer() testData14: Map = new Map([]); + @Consumer() testData15: Map = new Map([]); + @Consumer() testData16: Map = new Map([]); + @Consumer() testData17: Map = new Map([]); + @Consumer() testData18: Map = new Map([]); + @Consumer() testData19: Map = new Map([]); + @Consumer() testData20: Map = new Map([]); + @Consumer() testData21: Map = new Map([]); + @Consumer() testData22: Map = new Map([]); + @Consumer() testData23: Map = new Map([]); + @Consumer() testData24: Map = new Map([]); + @Consumer() testData25: Map = new Map([]); + @Consumer() testData26: Map = new Map([]); + @Consumer() testData27: Map = new Map([]); + @Consumer() testData28: Map = new Map([]); + @Consumer() testData29: Map = new Map([]); + @Consumer() testData30: Map = new Map([]); + @Consumer() testData31: Map = new Map([]); + @Consumer() testData32: Map = new Map([]); + @Consumer() testData33: Map = new Map([]); + @Consumer() testData34: Map = new Map([]); + @Consumer() testData35: Map = new Map([]); + @Consumer() testData36: Map = new Map([]); + @Consumer() testData37: Map = new Map([]); + @Consumer() testData38: Map = new Map([]); + @Consumer() testData39: Map = new Map([]); + @Consumer() testData40: Map = new Map([]); + @Consumer() testData41: Map = new Map([]); + @Consumer() testData42: Map = new Map([]); + @Consumer() testData43: Map = new Map([]); + @Consumer() testData44: Map = new Map([]); + @Consumer() testData45: Map = new Map([]); + @Consumer() testData46: Map = new Map([]); + @Consumer() testData47: Map = new Map([]); + @Consumer() testData48: Map = new Map([]); + @Consumer() testData49: Map = new Map([]); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -58,15 +108,20 @@ struct ChildConsumerMapSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.set(3,'world') + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.set(index,index.toString()) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerNumberSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerNumberSample.ets index 2be6fb21..764b3442 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerNumberSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerNumberSample.ets @@ -26,7 +26,57 @@ let isType: boolean = true struct ChildConsumerNumberSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: number = 0 + @Consumer() testData1: number = 0 + @Consumer() testData2: number = 0 + @Consumer() testData3: number = 0 + @Consumer() testData4: number = 0 + @Consumer() testData5: number = 0 + @Consumer() testData6: number = 0 + @Consumer() testData7: number = 0 + @Consumer() testData8: number = 0 + @Consumer() testData9: number = 0 + @Consumer() testData10: number = 0 + @Consumer() testData11: number = 0 + @Consumer() testData12: number = 0 + @Consumer() testData13: number = 0 + @Consumer() testData14: number = 0 + @Consumer() testData15: number = 0 + @Consumer() testData16: number = 0 + @Consumer() testData17: number = 0 + @Consumer() testData18: number = 0 + @Consumer() testData19: number = 0 + @Consumer() testData20: number = 0 + @Consumer() testData21: number = 0 + @Consumer() testData22: number = 0 + @Consumer() testData23: number = 0 + @Consumer() testData24: number = 0 + @Consumer() testData25: number = 0 + @Consumer() testData26: number = 0 + @Consumer() testData27: number = 0 + @Consumer() testData28: number = 0 + @Consumer() testData29: number = 0 + @Consumer() testData30: number = 0 + @Consumer() testData31: number = 0 + @Consumer() testData32: number = 0 + @Consumer() testData33: number = 0 + @Consumer() testData34: number = 0 + @Consumer() testData35: number = 0 + @Consumer() testData36: number = 0 + @Consumer() testData37: number = 0 + @Consumer() testData38: number = 0 + @Consumer() testData39: number = 0 + @Consumer() testData40: number = 0 + @Consumer() testData41: number = 0 + @Consumer() testData42: number = 0 + @Consumer() testData43: number = 0 + @Consumer() testData44: number = 0 + @Consumer() testData45: number = 0 + @Consumer() testData46: number = 0 + @Consumer() testData47: number = 0 + @Consumer() testData48: number = 0 + @Consumer() testData49: number = 0 b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -58,16 +108,20 @@ struct ChildConsumerNumberSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let a: number = this.testData - 1 + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = a + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = index + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerSetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerSetSample.ets index ed346d85..212ff285 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerSetSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerSetSample.ets @@ -26,7 +26,57 @@ let isType: boolean = true struct ChildConsumerSetSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: Set = new Set([0]); + @Consumer() testData1: Set = new Set([0]); + @Consumer() testData2: Set = new Set([0]); + @Consumer() testData3: Set = new Set([0]); + @Consumer() testData4: Set = new Set([0]); + @Consumer() testData5: Set = new Set([0]); + @Consumer() testData6: Set = new Set([0]); + @Consumer() testData7: Set = new Set([0]); + @Consumer() testData8: Set = new Set([0]); + @Consumer() testData9: Set = new Set([0]); + @Consumer() testData10: Set = new Set([0]); + @Consumer() testData11: Set = new Set([0]); + @Consumer() testData12: Set = new Set([0]); + @Consumer() testData13: Set = new Set([0]); + @Consumer() testData14: Set = new Set([0]); + @Consumer() testData15: Set = new Set([0]); + @Consumer() testData16: Set = new Set([0]); + @Consumer() testData17: Set = new Set([0]); + @Consumer() testData18: Set = new Set([0]); + @Consumer() testData19: Set = new Set([0]); + @Consumer() testData20: Set = new Set([0]); + @Consumer() testData21: Set = new Set([0]); + @Consumer() testData22: Set = new Set([0]); + @Consumer() testData23: Set = new Set([0]); + @Consumer() testData24: Set = new Set([0]); + @Consumer() testData25: Set = new Set([0]); + @Consumer() testData26: Set = new Set([0]); + @Consumer() testData27: Set = new Set([0]); + @Consumer() testData28: Set = new Set([0]); + @Consumer() testData29: Set = new Set([0]); + @Consumer() testData30: Set = new Set([0]); + @Consumer() testData31: Set = new Set([0]); + @Consumer() testData32: Set = new Set([0]); + @Consumer() testData33: Set = new Set([0]); + @Consumer() testData34: Set = new Set([0]); + @Consumer() testData35: Set = new Set([0]); + @Consumer() testData36: Set = new Set([0]); + @Consumer() testData37: Set = new Set([0]); + @Consumer() testData38: Set = new Set([0]); + @Consumer() testData39: Set = new Set([0]); + @Consumer() testData40: Set = new Set([0]); + @Consumer() testData41: Set = new Set([0]); + @Consumer() testData42: Set = new Set([0]); + @Consumer() testData43: Set = new Set([0]); + @Consumer() testData44: Set = new Set([0]); + @Consumer() testData45: Set = new Set([0]); + @Consumer() testData46: Set = new Set([0]); + @Consumer() testData47: Set = new Set([0]); + @Consumer() testData48: Set = new Set([0]); + @Consumer() testData49: Set = new Set([0]); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -61,15 +111,20 @@ struct ChildConsumerSetSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.add(-1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.add(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerStringSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerStringSample.ets index 4d0d2756..7f1807ee 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerStringSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/consumer/ConsumerStringSample.ets @@ -26,7 +26,57 @@ let isType: boolean = true struct ChildConsumerStringSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Consumer() testData: string = '0' + @Consumer() testData1: string = '0' + @Consumer() testData2: string = '0' + @Consumer() testData3: string = '0' + @Consumer() testData4: string = '0' + @Consumer() testData5: string = '0' + @Consumer() testData6: string = '0' + @Consumer() testData7: string = '0' + @Consumer() testData8: string = '0' + @Consumer() testData9: string = '0' + @Consumer() testData10: string = '0' + @Consumer() testData11: string = '0' + @Consumer() testData12: string = '0' + @Consumer() testData13: string = '0' + @Consumer() testData14: string = '0' + @Consumer() testData15: string = '0' + @Consumer() testData16: string = '0' + @Consumer() testData17: string = '0' + @Consumer() testData18: string = '0' + @Consumer() testData19: string = '0' + @Consumer() testData20: string = '0' + @Consumer() testData21: string = '0' + @Consumer() testData22: string = '0' + @Consumer() testData23: string = '0' + @Consumer() testData24: string = '0' + @Consumer() testData25: string = '0' + @Consumer() testData26: string = '0' + @Consumer() testData27: string = '0' + @Consumer() testData28: string = '0' + @Consumer() testData29: string = '0' + @Consumer() testData30: string = '0' + @Consumer() testData31: string = '0' + @Consumer() testData32: string = '0' + @Consumer() testData33: string = '0' + @Consumer() testData34: string = '0' + @Consumer() testData35: string = '0' + @Consumer() testData36: string = '0' + @Consumer() testData37: string = '0' + @Consumer() testData38: string = '0' + @Consumer() testData39: string = '0' + @Consumer() testData40: string = '0' + @Consumer() testData41: string = '0' + @Consumer() testData42: string = '0' + @Consumer() testData43: string = '0' + @Consumer() testData44: string = '0' + @Consumer() testData45: string = '0' + @Consumer() testData46: string = '0' + @Consumer() testData47: string = '0' + @Consumer() testData48: string = '0' + @Consumer() testData49: string = '0' b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -58,15 +108,20 @@ struct ChildConsumerStringSample { .id('getStateTimeTaken') .onClick(()=>{ timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child clink: 写@Consumer的耗时') .id('setStateTimeTaken') .onClick(()=>{ isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = '世界你好' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = index.toString() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalArraySample.ets index f074f8f1..daf5e28d 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalArraySample.ets @@ -27,8 +27,58 @@ struct LocalArraySample { timeHelper: TimeHelper = new TimeHelper('LocalArraySample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData1: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData2: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData3: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData4: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData5: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData6: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData7: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData8: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData9: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData10: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData11: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData12: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData13: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData14: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData15: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData16: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData17: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData18: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData19: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData20: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData21: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData22: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData23: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData24: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData25: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData26: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData27: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData28: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData29: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData30: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData31: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData32: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData33: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData34: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData35: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData36: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData37: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData38: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData39: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData40: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData41: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData42: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData43: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData44: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData45: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData46: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData47: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData48: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; + @Local testData49: StringArray = ['吴辉', '予升', '3', '晟松', '1', '晓卿', '万葵', '5', '轩宇', '少辰']; b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -58,16 +108,20 @@ struct LocalArraySample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData[0] + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData[index] + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { - let index = this.testData.length - 1 this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData[index] = 'setStateTimeTaken' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData[index] = index.toString() + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalBooleanSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalBooleanSample.ets index 1c82a0c0..b2305a33 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalBooleanSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalBooleanSample.ets @@ -24,9 +24,59 @@ struct LocalBooleanSample { timeHelper: TimeHelper = new TimeHelper('LocalBooleanSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: boolean = true; + @Local testData1: boolean = true; + @Local testData2: boolean = true; + @Local testData3: boolean = true; + @Local testData4: boolean = true; + @Local testData5: boolean = true; + @Local testData6: boolean = true; + @Local testData7: boolean = true; + @Local testData8: boolean = true; + @Local testData9: boolean = true; + @Local testData10: boolean = true; + @Local testData11: boolean = true; + @Local testData12: boolean = true; + @Local testData13: boolean = true; + @Local testData14: boolean = true; + @Local testData15: boolean = true; + @Local testData16: boolean = true; + @Local testData17: boolean = true; + @Local testData18: boolean = true; + @Local testData19: boolean = true; + @Local testData20: boolean = true; + @Local testData21: boolean = true; + @Local testData22: boolean = true; + @Local testData23: boolean = true; + @Local testData24: boolean = true; + @Local testData25: boolean = true; + @Local testData26: boolean = true; + @Local testData27: boolean = true; + @Local testData28: boolean = true; + @Local testData29: boolean = true; + @Local testData30: boolean = true; + @Local testData31: boolean = true; + @Local testData32: boolean = true; + @Local testData33: boolean = true; + @Local testData34: boolean = true; + @Local testData35: boolean = true; + @Local testData36: boolean = true; + @Local testData37: boolean = true; + @Local testData38: boolean = true; + @Local testData39: boolean = true; + @Local testData40: boolean = true; + @Local testData41: boolean = true; + @Local testData42: boolean = true; + @Local testData43: boolean = true; + @Local testData44: boolean = true; + @Local testData45: boolean = true; + @Local testData46: boolean = true; + @Local testData47: boolean = true; + @Local testData48: boolean = true; + @Local testData49: boolean = true; b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true tmpArr: boolean[] = [false, true] + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -56,16 +106,20 @@ struct LocalBooleanSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { - let tmp = !this.testData this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = tmp + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = this.tmpArr[index % 2] + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalClassSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalClassSample.ets index a66b3841..e9d28b4d 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalClassSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalClassSample.ets @@ -25,9 +25,59 @@ struct LocalClassSample { timeHelper: TimeHelper = new TimeHelper('LocalClassSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: ClassModel = classModel1 + @Local testData1: ClassModel = classModel1 + @Local testData2: ClassModel = classModel1 + @Local testData3: ClassModel = classModel1 + @Local testData4: ClassModel = classModel1 + @Local testData5: ClassModel = classModel1 + @Local testData6: ClassModel = classModel1 + @Local testData7: ClassModel = classModel1 + @Local testData8: ClassModel = classModel1 + @Local testData9: ClassModel = classModel1 + @Local testData10: ClassModel = classModel1 + @Local testData11: ClassModel = classModel1 + @Local testData12: ClassModel = classModel1 + @Local testData13: ClassModel = classModel1 + @Local testData14: ClassModel = classModel1 + @Local testData15: ClassModel = classModel1 + @Local testData16: ClassModel = classModel1 + @Local testData17: ClassModel = classModel1 + @Local testData18: ClassModel = classModel1 + @Local testData19: ClassModel = classModel1 + @Local testData20: ClassModel = classModel1 + @Local testData21: ClassModel = classModel1 + @Local testData22: ClassModel = classModel1 + @Local testData23: ClassModel = classModel1 + @Local testData24: ClassModel = classModel1 + @Local testData25: ClassModel = classModel1 + @Local testData26: ClassModel = classModel1 + @Local testData27: ClassModel = classModel1 + @Local testData28: ClassModel = classModel1 + @Local testData29: ClassModel = classModel1 + @Local testData30: ClassModel = classModel1 + @Local testData31: ClassModel = classModel1 + @Local testData32: ClassModel = classModel1 + @Local testData33: ClassModel = classModel1 + @Local testData34: ClassModel = classModel1 + @Local testData35: ClassModel = classModel1 + @Local testData36: ClassModel = classModel1 + @Local testData37: ClassModel = classModel1 + @Local testData38: ClassModel = classModel1 + @Local testData39: ClassModel = classModel1 + @Local testData40: ClassModel = classModel1 + @Local testData41: ClassModel = classModel1 + @Local testData42: ClassModel = classModel1 + @Local testData43: ClassModel = classModel1 + @Local testData44: ClassModel = classModel1 + @Local testData45: ClassModel = classModel1 + @Local testData46: ClassModel = classModel1 + @Local testData47: ClassModel = classModel1 + @Local testData48: ClassModel = classModel1 + @Local testData49: ClassModel = classModel1 b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true tmpArr: ClassModel[] = [classModel, classModel1] + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -57,15 +107,20 @@ struct LocalClassSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = classModel3 + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = this.tmpArr[index % 2] + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalDateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalDateSample.ets index 49b46f2c..ab5f5c3f 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalDateSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalDateSample.ets @@ -24,14 +24,64 @@ struct LocalDateSample { timeHelper: TimeHelper = new TimeHelper('LocalDateSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: Date = new Date('2021-08-08'); + @Local testData1: Date = new Date('2021-08-08'); + @Local testData2: Date = new Date('2021-08-08'); + @Local testData3: Date = new Date('2021-08-08'); + @Local testData4: Date = new Date('2021-08-08'); + @Local testData5: Date = new Date('2021-08-08'); + @Local testData6: Date = new Date('2021-08-08'); + @Local testData7: Date = new Date('2021-08-08'); + @Local testData8: Date = new Date('2021-08-08'); + @Local testData9: Date = new Date('2021-08-08'); + @Local testData10: Date = new Date('2021-08-08'); + @Local testData11: Date = new Date('2021-08-08'); + @Local testData12: Date = new Date('2021-08-08'); + @Local testData13: Date = new Date('2021-08-08'); + @Local testData14: Date = new Date('2021-08-08'); + @Local testData15: Date = new Date('2021-08-08'); + @Local testData16: Date = new Date('2021-08-08'); + @Local testData17: Date = new Date('2021-08-08'); + @Local testData18: Date = new Date('2021-08-08'); + @Local testData19: Date = new Date('2021-08-08'); + @Local testData20: Date = new Date('2021-08-08'); + @Local testData21: Date = new Date('2021-08-08'); + @Local testData22: Date = new Date('2021-08-08'); + @Local testData23: Date = new Date('2021-08-08'); + @Local testData24: Date = new Date('2021-08-08'); + @Local testData25: Date = new Date('2021-08-08'); + @Local testData26: Date = new Date('2021-08-08'); + @Local testData27: Date = new Date('2021-08-08'); + @Local testData28: Date = new Date('2021-08-08'); + @Local testData29: Date = new Date('2021-08-08'); + @Local testData30: Date = new Date('2021-08-08'); + @Local testData31: Date = new Date('2021-08-08'); + @Local testData32: Date = new Date('2021-08-08'); + @Local testData33: Date = new Date('2021-08-08'); + @Local testData34: Date = new Date('2021-08-08'); + @Local testData35: Date = new Date('2021-08-08'); + @Local testData36: Date = new Date('2021-08-08'); + @Local testData37: Date = new Date('2021-08-08'); + @Local testData38: Date = new Date('2021-08-08'); + @Local testData39: Date = new Date('2021-08-08'); + @Local testData40: Date = new Date('2021-08-08'); + @Local testData41: Date = new Date('2021-08-08'); + @Local testData42: Date = new Date('2021-08-08'); + @Local testData43: Date = new Date('2021-08-08'); + @Local testData44: Date = new Date('2021-08-08'); + @Local testData45: Date = new Date('2021-08-08'); + @Local testData46: Date = new Date('2021-08-08'); + @Local testData47: Date = new Date('2021-08-08'); + @Local testData48: Date = new Date('2021-08-08'); + @Local testData49: Date = new Date('2021-08-08'); b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + arr: number[] = [this.testData.getTime() - 60 * 60 * 1000, this.testData.getTime() - 20 * 60 * 1000] isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { - let arr: number[] = [this.testData.getTime() - 60 * 60 * 1000, this.testData.getTime() - 20 * 60 * 1000] this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData.setTime(arr[index % 2]) + this.testData.setTime(this.arr[index % 2]) } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) @@ -56,16 +106,20 @@ struct LocalDateSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true - let time: number = this.testData.getTime() + 10 * 60 * 60 * 1000 + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.setTime(time) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.setTime(this.arr[index % 2]) + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalEnumSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalEnumSample.ets index 45e21c92..516de63a 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalEnumSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalEnumSample.ets @@ -25,9 +25,59 @@ struct LocalEnumSample { timeHelper: TimeHelper = new TimeHelper('LocalEnumSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: LanguageEnum = LanguageEnum.English; + @Local testData1: LanguageEnum = LanguageEnum.English; + @Local testData2: LanguageEnum = LanguageEnum.English; + @Local testData3: LanguageEnum = LanguageEnum.English; + @Local testData4: LanguageEnum = LanguageEnum.English; + @Local testData5: LanguageEnum = LanguageEnum.English; + @Local testData6: LanguageEnum = LanguageEnum.English; + @Local testData7: LanguageEnum = LanguageEnum.English; + @Local testData8: LanguageEnum = LanguageEnum.English; + @Local testData9: LanguageEnum = LanguageEnum.English; + @Local testData10: LanguageEnum = LanguageEnum.English; + @Local testData11: LanguageEnum = LanguageEnum.English; + @Local testData12: LanguageEnum = LanguageEnum.English; + @Local testData13: LanguageEnum = LanguageEnum.English; + @Local testData14: LanguageEnum = LanguageEnum.English; + @Local testData15: LanguageEnum = LanguageEnum.English; + @Local testData16: LanguageEnum = LanguageEnum.English; + @Local testData17: LanguageEnum = LanguageEnum.English; + @Local testData18: LanguageEnum = LanguageEnum.English; + @Local testData19: LanguageEnum = LanguageEnum.English; + @Local testData20: LanguageEnum = LanguageEnum.English; + @Local testData21: LanguageEnum = LanguageEnum.English; + @Local testData22: LanguageEnum = LanguageEnum.English; + @Local testData23: LanguageEnum = LanguageEnum.English; + @Local testData24: LanguageEnum = LanguageEnum.English; + @Local testData25: LanguageEnum = LanguageEnum.English; + @Local testData26: LanguageEnum = LanguageEnum.English; + @Local testData27: LanguageEnum = LanguageEnum.English; + @Local testData28: LanguageEnum = LanguageEnum.English; + @Local testData29: LanguageEnum = LanguageEnum.English; + @Local testData30: LanguageEnum = LanguageEnum.English; + @Local testData31: LanguageEnum = LanguageEnum.English; + @Local testData32: LanguageEnum = LanguageEnum.English; + @Local testData33: LanguageEnum = LanguageEnum.English; + @Local testData34: LanguageEnum = LanguageEnum.English; + @Local testData35: LanguageEnum = LanguageEnum.English; + @Local testData36: LanguageEnum = LanguageEnum.English; + @Local testData37: LanguageEnum = LanguageEnum.English; + @Local testData38: LanguageEnum = LanguageEnum.English; + @Local testData39: LanguageEnum = LanguageEnum.English; + @Local testData40: LanguageEnum = LanguageEnum.English; + @Local testData41: LanguageEnum = LanguageEnum.English; + @Local testData42: LanguageEnum = LanguageEnum.English; + @Local testData43: LanguageEnum = LanguageEnum.English; + @Local testData44: LanguageEnum = LanguageEnum.English; + @Local testData45: LanguageEnum = LanguageEnum.English; + @Local testData46: LanguageEnum = LanguageEnum.English; + @Local testData47: LanguageEnum = LanguageEnum.English; + @Local testData48: LanguageEnum = LanguageEnum.English; + @Local testData49: LanguageEnum = LanguageEnum.English; b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true tmpArr: LanguageEnum[] = [LanguageEnum.English, LanguageEnum.Chinese] + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -57,15 +107,20 @@ struct LocalEnumSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = LanguageEnum.Russian + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = this.tmpArr[index % 2] + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalMapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalMapSample.ets index 1326603b..2c13648b 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalMapSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalMapSample.ets @@ -23,14 +23,64 @@ import { StateUtils } from '../StateUtils'; struct LocalMapSample { timeHelper: TimeHelper = new TimeHelper('LocalMapSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - @Local testData : Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData1: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData2: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData3: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData4: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData5: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData6: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData7: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData8: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData9: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData10: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData11: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData12: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData13: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData14: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData15: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData16: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData17: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData18: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData19: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData20: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData21: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData22: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData23: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData24: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData25: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData26: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData27: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData28: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData29: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData30: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData31: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData32: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData33: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData34: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData35: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData36: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData37: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData38: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData39: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData40: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData41: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData42: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData43: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData44: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData45: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData46: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData47: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData48: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Local testData49: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData.set(index,index.toString()) + this.testData.set(index, index.toString()) } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) @@ -48,22 +98,27 @@ struct LocalMapSample { .id('changeUITimeTaken') .onClick(() => { this.isType = false - this.testData.set(3,'bye') + this.testData.set(3, 'bye') this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) Button('parent click: 读@Local的耗时') .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData.get(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData.get(index) + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.set(3,'world') + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.set(index, index.toString()) + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalNumberSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalNumberSample.ets index ec1bef01..e5dfda7c 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalNumberSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalNumberSample.ets @@ -24,8 +24,58 @@ struct LocalNumberSample { timeHelper: TimeHelper = new TimeHelper('LocalNumberSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: number = 0; + @Local testData1: number = 0; + @Local testData2: number = 0; + @Local testData3: number = 0; + @Local testData4: number = 0; + @Local testData5: number = 0; + @Local testData6: number = 0; + @Local testData7: number = 0; + @Local testData8: number = 0; + @Local testData9: number = 0; + @Local testData10: number = 0; + @Local testData11: number = 0; + @Local testData12: number = 0; + @Local testData13: number = 0; + @Local testData14: number = 0; + @Local testData15: number = 0; + @Local testData16: number = 0; + @Local testData17: number = 0; + @Local testData18: number = 0; + @Local testData19: number = 0; + @Local testData20: number = 0; + @Local testData21: number = 0; + @Local testData22: number = 0; + @Local testData23: number = 0; + @Local testData24: number = 0; + @Local testData25: number = 0; + @Local testData26: number = 0; + @Local testData27: number = 0; + @Local testData28: number = 0; + @Local testData29: number = 0; + @Local testData30: number = 0; + @Local testData31: number = 0; + @Local testData32: number = 0; + @Local testData33: number = 0; + @Local testData34: number = 0; + @Local testData35: number = 0; + @Local testData36: number = 0; + @Local testData37: number = 0; + @Local testData38: number = 0; + @Local testData39: number = 0; + @Local testData40: number = 0; + @Local testData41: number = 0; + @Local testData42: number = 0; + @Local testData43: number = 0; + @Local testData44: number = 0; + @Local testData45: number = 0; + @Local testData46: number = 0; + @Local testData47: number = 0; + @Local testData48: number = 0; + @Local testData49: number = 0; b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -55,16 +105,20 @@ struct LocalNumberSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { - let tmp = this.testData - 1 this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = tmp + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = index + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalObjectSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalObjectSample.ets index 0ec6294f..550d73c6 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalObjectSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalObjectSample.ets @@ -24,8 +24,58 @@ struct LocalObjectSample { timeHelper: TimeHelper = new TimeHelper('LocalObjectSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: Object = 'default'; + @Local testData1: Object = 'default'; + @Local testData2: Object = 'default'; + @Local testData3: Object = 'default'; + @Local testData4: Object = 'default'; + @Local testData5: Object = 'default'; + @Local testData6: Object = 'default'; + @Local testData7: Object = 'default'; + @Local testData8: Object = 'default'; + @Local testData9: Object = 'default'; + @Local testData10: Object = 'default'; + @Local testData11: Object = 'default'; + @Local testData12: Object = 'default'; + @Local testData13: Object = 'default'; + @Local testData14: Object = 'default'; + @Local testData15: Object = 'default'; + @Local testData16: Object = 'default'; + @Local testData17: Object = 'default'; + @Local testData18: Object = 'default'; + @Local testData19: Object = 'default'; + @Local testData20: Object = 'default'; + @Local testData21: Object = 'default'; + @Local testData22: Object = 'default'; + @Local testData23: Object = 'default'; + @Local testData24: Object = 'default'; + @Local testData25: Object = 'default'; + @Local testData26: Object = 'default'; + @Local testData27: Object = 'default'; + @Local testData28: Object = 'default'; + @Local testData29: Object = 'default'; + @Local testData30: Object = 'default'; + @Local testData31: Object = 'default'; + @Local testData32: Object = 'default'; + @Local testData33: Object = 'default'; + @Local testData34: Object = 'default'; + @Local testData35: Object = 'default'; + @Local testData36: Object = 'default'; + @Local testData37: Object = 'default'; + @Local testData38: Object = 'default'; + @Local testData39: Object = 'default'; + @Local testData40: Object = 'default'; + @Local testData41: Object = 'default'; + @Local testData42: Object = 'default'; + @Local testData43: Object = 'default'; + @Local testData44: Object = 'default'; + @Local testData45: Object = 'default'; + @Local testData46: Object = 'default'; + @Local testData47: Object = 'default'; + @Local testData48: Object = 'default'; + @Local testData49: Object = 'default'; b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -55,15 +105,20 @@ struct LocalObjectSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = 'setStateTimeTaken' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = index + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalSetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalSetSample.ets index 8a94509c..51b410eb 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalSetSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalSetSample.ets @@ -24,8 +24,58 @@ struct LocalSetSample { timeHelper: TimeHelper = new TimeHelper('LocalSetSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: Set = new Set([0, 1, 2, 3, 4]); + @Local testData1: Set = new Set([0, 1, 2, 3, 4]); + @Local testData2: Set = new Set([0, 1, 2, 3, 4]); + @Local testData3: Set = new Set([0, 1, 2, 3, 4]); + @Local testData4: Set = new Set([0, 1, 2, 3, 4]); + @Local testData5: Set = new Set([0, 1, 2, 3, 4]); + @Local testData6: Set = new Set([0, 1, 2, 3, 4]); + @Local testData7: Set = new Set([0, 1, 2, 3, 4]); + @Local testData8: Set = new Set([0, 1, 2, 3, 4]); + @Local testData9: Set = new Set([0, 1, 2, 3, 4]); + @Local testData10: Set = new Set([0, 1, 2, 3, 4]); + @Local testData11: Set = new Set([0, 1, 2, 3, 4]); + @Local testData12: Set = new Set([0, 1, 2, 3, 4]); + @Local testData13: Set = new Set([0, 1, 2, 3, 4]); + @Local testData14: Set = new Set([0, 1, 2, 3, 4]); + @Local testData15: Set = new Set([0, 1, 2, 3, 4]); + @Local testData16: Set = new Set([0, 1, 2, 3, 4]); + @Local testData17: Set = new Set([0, 1, 2, 3, 4]); + @Local testData18: Set = new Set([0, 1, 2, 3, 4]); + @Local testData19: Set = new Set([0, 1, 2, 3, 4]); + @Local testData20: Set = new Set([0, 1, 2, 3, 4]); + @Local testData21: Set = new Set([0, 1, 2, 3, 4]); + @Local testData22: Set = new Set([0, 1, 2, 3, 4]); + @Local testData23: Set = new Set([0, 1, 2, 3, 4]); + @Local testData24: Set = new Set([0, 1, 2, 3, 4]); + @Local testData25: Set = new Set([0, 1, 2, 3, 4]); + @Local testData26: Set = new Set([0, 1, 2, 3, 4]); + @Local testData27: Set = new Set([0, 1, 2, 3, 4]); + @Local testData28: Set = new Set([0, 1, 2, 3, 4]); + @Local testData29: Set = new Set([0, 1, 2, 3, 4]); + @Local testData30: Set = new Set([0, 1, 2, 3, 4]); + @Local testData31: Set = new Set([0, 1, 2, 3, 4]); + @Local testData32: Set = new Set([0, 1, 2, 3, 4]); + @Local testData33: Set = new Set([0, 1, 2, 3, 4]); + @Local testData34: Set = new Set([0, 1, 2, 3, 4]); + @Local testData35: Set = new Set([0, 1, 2, 3, 4]); + @Local testData36: Set = new Set([0, 1, 2, 3, 4]); + @Local testData37: Set = new Set([0, 1, 2, 3, 4]); + @Local testData38: Set = new Set([0, 1, 2, 3, 4]); + @Local testData39: Set = new Set([0, 1, 2, 3, 4]); + @Local testData40: Set = new Set([0, 1, 2, 3, 4]); + @Local testData41: Set = new Set([0, 1, 2, 3, 4]); + @Local testData42: Set = new Set([0, 1, 2, 3, 4]); + @Local testData43: Set = new Set([0, 1, 2, 3, 4]); + @Local testData44: Set = new Set([0, 1, 2, 3, 4]); + @Local testData45: Set = new Set([0, 1, 2, 3, 4]); + @Local testData46: Set = new Set([0, 1, 2, 3, 4]); + @Local testData47: Set = new Set([0, 1, 2, 3, 4]); + @Local testData48: Set = new Set([0, 1, 2, 3, 4]); + @Local testData49: Set = new Set([0, 1, 2, 3, 4]); b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -57,15 +107,20 @@ struct LocalSetSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData.values() + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData.values() + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.add(-1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.add(index) + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalStringSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalStringSample.ets index 64d2bbe5..082ec93b 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalStringSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalStringSample.ets @@ -24,8 +24,58 @@ struct LocalStringSample { timeHelper: TimeHelper = new TimeHelper('LocalStringSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Local testData: string = "hi"; + @Local testData1: string = "hi"; + @Local testData2: string = "hi"; + @Local testData3: string = "hi"; + @Local testData4: string = "hi"; + @Local testData5: string = "hi"; + @Local testData6: string = "hi"; + @Local testData7: string = "hi"; + @Local testData8: string = "hi"; + @Local testData9: string = "hi"; + @Local testData10: string = "hi"; + @Local testData11: string = "hi"; + @Local testData12: string = "hi"; + @Local testData13: string = "hi"; + @Local testData14: string = "hi"; + @Local testData15: string = "hi"; + @Local testData16: string = "hi"; + @Local testData17: string = "hi"; + @Local testData18: string = "hi"; + @Local testData19: string = "hi"; + @Local testData20: string = "hi"; + @Local testData21: string = "hi"; + @Local testData22: string = "hi"; + @Local testData23: string = "hi"; + @Local testData24: string = "hi"; + @Local testData25: string = "hi"; + @Local testData26: string = "hi"; + @Local testData27: string = "hi"; + @Local testData28: string = "hi"; + @Local testData29: string = "hi"; + @Local testData30: string = "hi"; + @Local testData31: string = "hi"; + @Local testData32: string = "hi"; + @Local testData33: string = "hi"; + @Local testData34: string = "hi"; + @Local testData35: string = "hi"; + @Local testData36: string = "hi"; + @Local testData37: string = "hi"; + @Local testData38: string = "hi"; + @Local testData39: string = "hi"; + @Local testData40: string = "hi"; + @Local testData41: string = "hi"; + @Local testData42: string = "hi"; + @Local testData43: string = "hi"; + @Local testData44: string = "hi"; + @Local testData45: string = "hi"; + @Local testData46: string = "hi"; + @Local testData47: string = "hi"; + @Local testData48: string = "hi"; + @Local testData49: string = "hi"; b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -55,15 +105,20 @@ struct LocalStringSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = "world" + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = `not bind UI:世界,你好` + (index + 1) + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalUnionSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalUnionSample.ets index 927fdf6e..9d4c8fa8 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalUnionSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/local/LocalUnionSample.ets @@ -23,9 +23,59 @@ import { StateUtils } from '../StateUtils'; struct LocalUnionSample { timeHelper: TimeHelper = new TimeHelper('LocalUnionSample'); a = this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - @Local testData: null | undefined | number = 0; + @Local testData: null | undefined | number = undefined; + @Local testData1: null | undefined | number = undefined; + @Local testData2: null | undefined | number = undefined; + @Local testData3: null | undefined | number = undefined; + @Local testData4: null | undefined | number = undefined; + @Local testData5: null | undefined | number = undefined; + @Local testData6: null | undefined | number = undefined; + @Local testData7: null | undefined | number = undefined; + @Local testData8: null | undefined | number = undefined; + @Local testData9: null | undefined | number = undefined; + @Local testData10: null | undefined | number = undefined; + @Local testData11: null | undefined | number = undefined; + @Local testData12: null | undefined | number = undefined; + @Local testData13: null | undefined | number = undefined; + @Local testData14: null | undefined | number = undefined; + @Local testData15: null | undefined | number = undefined; + @Local testData16: null | undefined | number = undefined; + @Local testData17: null | undefined | number = undefined; + @Local testData18: null | undefined | number = undefined; + @Local testData19: null | undefined | number = undefined; + @Local testData20: null | undefined | number = undefined; + @Local testData21: null | undefined | number = undefined; + @Local testData22: null | undefined | number = undefined; + @Local testData23: null | undefined | number = undefined; + @Local testData24: null | undefined | number = undefined; + @Local testData25: null | undefined | number = undefined; + @Local testData26: null | undefined | number = undefined; + @Local testData27: null | undefined | number = undefined; + @Local testData28: null | undefined | number = undefined; + @Local testData29: null | undefined | number = undefined; + @Local testData30: null | undefined | number = undefined; + @Local testData31: null | undefined | number = undefined; + @Local testData32: null | undefined | number = undefined; + @Local testData33: null | undefined | number = undefined; + @Local testData34: null | undefined | number = undefined; + @Local testData35: null | undefined | number = undefined; + @Local testData36: null | undefined | number = undefined; + @Local testData37: null | undefined | number = undefined; + @Local testData38: null | undefined | number = undefined; + @Local testData39: null | undefined | number = undefined; + @Local testData40: null | undefined | number = undefined; + @Local testData41: null | undefined | number = undefined; + @Local testData42: null | undefined | number = undefined; + @Local testData43: null | undefined | number = undefined; + @Local testData44: null | undefined | number = undefined; + @Local testData45: null | undefined | number = undefined; + @Local testData46: null | undefined | number = undefined; + @Local testData47: null | undefined | number = undefined; + @Local testData48: null | undefined | number = undefined; + @Local testData49: null | undefined | number = undefined; b = this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) isType: boolean = true + @Local isTypeState: boolean = true aboutToAppear(): void { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -55,15 +105,20 @@ struct LocalUnionSample { .id('getStateTimeTaken') .onClick(() => { this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let tmp = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let tmp = this.testData + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Local的耗时') .id('setStateTimeTaken') .onClick(() => { this.isType = true + this.isTypeState = !this.isTypeState this.timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = undefined + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = index + } this.timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorArraySample.ets index 155c0291..30bb2e77 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorArraySample.ets @@ -33,11 +33,62 @@ class ArrMonitor{ } } -@Component +@ComponentV2 struct ChildMonitorArraySample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) testData: number[][] = [] + testData1: number[][] = [] + testData2: number[][] = [] + testData3: number[][] = [] + testData4: number[][] = [] + testData5: number[][] = [] + testData6: number[][] = [] + testData7: number[][] = [] + testData8: number[][] = [] + testData9: number[][] = [] + testData10: number[][] = [] + testData11: number[][] = [] + testData12: number[][] = [] + testData13: number[][] = [] + testData14: number[][] = [] + testData15: number[][] = [] + testData16: number[][] = [] + testData17: number[][] = [] + testData18: number[][] = [] + testData19: number[][] = [] + testData20: number[][] = [] + testData21: number[][] = [] + testData22: number[][] = [] + testData23: number[][] = [] + testData24: number[][] = [] + testData25: number[][] = [] + testData26: number[][] = [] + testData27: number[][] = [] + testData28: number[][] = [] + testData29: number[][] = [] + testData30: number[][] = [] + testData31: number[][] = [] + testData32: number[][] = [] + testData33: number[][] = [] + testData34: number[][] = [] + testData35: number[][] = [] + testData36: number[][] = [] + testData37: number[][] = [] + testData38: number[][] = [] + testData39: number[][] = [] + testData40: number[][] = [] + testData41: number[][] = [] + testData42: number[][] = [] + testData43: number[][] = [] + testData44: number[][] = [] + testData45: number[][] = [] + testData46: number[][] = [] + testData47: number[][] = [] + testData48: number[][] = [] + testData49: number[][] = [] b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true + aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { @@ -58,15 +109,20 @@ struct ChildMonitorArraySample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Monitor的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData[0][0] = 10000 + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData[0][0] = index + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -74,7 +130,7 @@ struct ChildMonitorArraySample { } @Entry -@Component +@ComponentV2 struct MonitorArraySample { testData: ArrMonitor = new ArrMonitor(); build() { @@ -94,4 +150,4 @@ struct MonitorArraySample { ChildMonitorArraySample({testData : this.testData.dimensionTwo}) } } -} +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorDeepLayerSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorDeepLayerSample.ets index b43a79d6..90731f31 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorDeepLayerSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorDeepLayerSample.ets @@ -26,20 +26,73 @@ const timeHelper: TimeHelper = new TimeHelper('MonitorDeepLayerSample'); class Inner { @Trace num: string = "0"; } + @ObservedV2 class Outer { inner: Inner = new Inner(); + @Monitor("inner.num") onChange(monitor: IMonitor) { console.log(`inner.num change from ${monitor.value()?.before} to ${monitor.value()?.now}`); } } -@Component +@ComponentV2 struct ChildMonitorDeepLayerSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - testData : Inner = new Inner() + testData: Inner = new Inner() + testData1: Inner = new Inner() + testData2: Inner = new Inner() + testData3: Inner = new Inner() + testData4: Inner = new Inner() + testData5: Inner = new Inner() + testData6: Inner = new Inner() + testData7: Inner = new Inner() + testData8: Inner = new Inner() + testData9: Inner = new Inner() + testData10: Inner = new Inner() + testData11: Inner = new Inner() + testData12: Inner = new Inner() + testData13: Inner = new Inner() + testData14: Inner = new Inner() + testData15: Inner = new Inner() + testData16: Inner = new Inner() + testData17: Inner = new Inner() + testData18: Inner = new Inner() + testData19: Inner = new Inner() + testData20: Inner = new Inner() + testData21: Inner = new Inner() + testData22: Inner = new Inner() + testData23: Inner = new Inner() + testData24: Inner = new Inner() + testData25: Inner = new Inner() + testData26: Inner = new Inner() + testData27: Inner = new Inner() + testData28: Inner = new Inner() + testData29: Inner = new Inner() + testData30: Inner = new Inner() + testData31: Inner = new Inner() + testData32: Inner = new Inner() + testData33: Inner = new Inner() + testData34: Inner = new Inner() + testData35: Inner = new Inner() + testData36: Inner = new Inner() + testData37: Inner = new Inner() + testData38: Inner = new Inner() + testData39: Inner = new Inner() + testData40: Inner = new Inner() + testData41: Inner = new Inner() + testData42: Inner = new Inner() + testData43: Inner = new Inner() + testData44: Inner = new Inner() + testData45: Inner = new Inner() + testData46: Inner = new Inner() + testData47: Inner = new Inner() + testData48: Inner = new Inner() + testData49: Inner = new Inner() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true + aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { @@ -52,6 +105,7 @@ struct ChildMonitorDeepLayerSample { } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } + build() { Column({ space: 15 }) { Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.testData.num}` : @@ -60,15 +114,20 @@ struct ChildMonitorDeepLayerSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.num + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.num + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Monitor的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.num = "30" + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.num = index.toString() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -76,7 +135,7 @@ struct ChildMonitorDeepLayerSample { } @Entry -@Component +@ComponentV2 struct MonitorDeepLayerSample { testData: Outer = new Outer(); @@ -97,4 +156,4 @@ struct MonitorDeepLayerSample { ChildMonitorDeepLayerSample({ testData: this.testData.inner }) } } -} +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorInheritSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorInheritSample.ets index eae47f1f..a38d26d2 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorInheritSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorInheritSample.ets @@ -44,11 +44,62 @@ class Derived extends Base { } } -@Component +@ComponentV2 struct ChildMonitorInheritSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) testData: Derived = new Derived("hello"); + testData1: Derived = new Derived("hello"); + testData2: Derived = new Derived("hello"); + testData3: Derived = new Derived("hello"); + testData4: Derived = new Derived("hello"); + testData5: Derived = new Derived("hello"); + testData6: Derived = new Derived("hello"); + testData7: Derived = new Derived("hello"); + testData8: Derived = new Derived("hello"); + testData9: Derived = new Derived("hello"); + testData10: Derived = new Derived("hello"); + testData11: Derived = new Derived("hello"); + testData12: Derived = new Derived("hello"); + testData13: Derived = new Derived("hello"); + testData14: Derived = new Derived("hello"); + testData15: Derived = new Derived("hello"); + testData16: Derived = new Derived("hello"); + testData17: Derived = new Derived("hello"); + testData18: Derived = new Derived("hello"); + testData19: Derived = new Derived("hello"); + testData20: Derived = new Derived("hello"); + testData21: Derived = new Derived("hello"); + testData22: Derived = new Derived("hello"); + testData23: Derived = new Derived("hello"); + testData24: Derived = new Derived("hello"); + testData25: Derived = new Derived("hello"); + testData26: Derived = new Derived("hello"); + testData27: Derived = new Derived("hello"); + testData28: Derived = new Derived("hello"); + testData29: Derived = new Derived("hello"); + testData30: Derived = new Derived("hello"); + testData31: Derived = new Derived("hello"); + testData32: Derived = new Derived("hello"); + testData33: Derived = new Derived("hello"); + testData34: Derived = new Derived("hello"); + testData35: Derived = new Derived("hello"); + testData36: Derived = new Derived("hello"); + testData37: Derived = new Derived("hello"); + testData38: Derived = new Derived("hello"); + testData39: Derived = new Derived("hello"); + testData40: Derived = new Derived("hello"); + testData41: Derived = new Derived("hello"); + testData42: Derived = new Derived("hello"); + testData43: Derived = new Derived("hello"); + testData44: Derived = new Derived("hello"); + testData45: Derived = new Derived("hello"); + testData46: Derived = new Derived("hello"); + testData47: Derived = new Derived("hello"); + testData48: Derived = new Derived("hello"); + testData49: Derived = new Derived("hello"); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true + aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { @@ -69,15 +120,20 @@ struct ChildMonitorInheritSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.name + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.name + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Monitor的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.name = "Jack3" + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.name = `not bind UI:世界,你好` + (index + 1) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -85,7 +141,7 @@ struct ChildMonitorInheritSample { } @Entry -@Component +@ComponentV2 struct MonitorInheritSample { testData: Derived = new Derived("hi") @@ -106,4 +162,4 @@ struct MonitorInheritSample { ChildMonitorInheritSample({testData : this.testData}) } } -} +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorOrdinarySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorOrdinarySample.ets index d86b4069..ec0bffac 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorOrdinarySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/monitor/MonitorOrdinarySample.ets @@ -25,17 +25,68 @@ const timeHelper: TimeHelper = new TimeHelper('MonitorOrdinarySample'); @ObservedV2 class Info { @Trace name: string = "Tom"; + @Monitor("name") onNameChange(monitor: IMonitor) { console.log(`name change from ${monitor.value()?.before} to ${monitor.value()?.now}`); } } -@Component +@ComponentV2 struct ChildMonitorOrdinarySample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - testData : Info = new Info(); + testData: Info = new Info(); + testData1: Info = new Info(); + testData2: Info = new Info(); + testData3: Info = new Info(); + testData4: Info = new Info(); + testData5: Info = new Info(); + testData6: Info = new Info(); + testData7: Info = new Info(); + testData8: Info = new Info(); + testData9: Info = new Info(); + testData10: Info = new Info(); + testData11: Info = new Info(); + testData12: Info = new Info(); + testData13: Info = new Info(); + testData14: Info = new Info(); + testData15: Info = new Info(); + testData16: Info = new Info(); + testData17: Info = new Info(); + testData18: Info = new Info(); + testData19: Info = new Info(); + testData20: Info = new Info(); + testData21: Info = new Info(); + testData22: Info = new Info(); + testData23: Info = new Info(); + testData24: Info = new Info(); + testData25: Info = new Info(); + testData26: Info = new Info(); + testData27: Info = new Info(); + testData28: Info = new Info(); + testData29: Info = new Info(); + testData30: Info = new Info(); + testData31: Info = new Info(); + testData32: Info = new Info(); + testData33: Info = new Info(); + testData34: Info = new Info(); + testData35: Info = new Info(); + testData36: Info = new Info(); + testData37: Info = new Info(); + testData38: Info = new Info(); + testData39: Info = new Info(); + testData40: Info = new Info(); + testData41: Info = new Info(); + testData42: Info = new Info(); + testData43: Info = new Info(); + testData44: Info = new Info(); + testData45: Info = new Info(); + testData46: Info = new Info(); + testData47: Info = new Info(); + testData48: Info = new Info(); + testData49: Info = new Info(); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -49,6 +100,7 @@ struct ChildMonitorOrdinarySample { } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } + build() { Column({ space: 15 }) { Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.testData.name}` : @@ -57,15 +109,20 @@ struct ChildMonitorOrdinarySample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.name + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.name + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Monitor的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.name = "Jack3" + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.name = `not bind UI:世界,你好` + (index + 1) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -73,7 +130,7 @@ struct ChildMonitorOrdinarySample { } @Entry -@Component +@ComponentV2 struct MonitorOrdinarySample { testData: Info = new Info(); @@ -94,4 +151,4 @@ struct MonitorOrdinarySample { ChildMonitorOrdinarySample({ testData: this.testData }) } } -} +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2ArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2ArraySample.ets index a91db9b6..885e99c9 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2ArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2ArraySample.ets @@ -45,7 +45,57 @@ struct ChildObservedV2ArraySample { struct ObservedV2ArraySample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) testData: B = new B(); + testData1: B = new B(); + testData2: B = new B(); + testData3: B = new B(); + testData4: B = new B(); + testData5: B = new B(); + testData6: B = new B(); + testData7: B = new B(); + testData8: B = new B(); + testData9: B = new B(); + testData10: B = new B(); + testData11: B = new B(); + testData12: B = new B(); + testData13: B = new B(); + testData14: B = new B(); + testData15: B = new B(); + testData16: B = new B(); + testData17: B = new B(); + testData18: B = new B(); + testData19: B = new B(); + testData20: B = new B(); + testData21: B = new B(); + testData22: B = new B(); + testData23: B = new B(); + testData24: B = new B(); + testData25: B = new B(); + testData26: B = new B(); + testData27: B = new B(); + testData28: B = new B(); + testData29: B = new B(); + testData30: B = new B(); + testData31: B = new B(); + testData32: B = new B(); + testData33: B = new B(); + testData34: B = new B(); + testData35: B = new B(); + testData36: B = new B(); + testData37: B = new B(); + testData38: B = new B(); + testData39: B = new B(); + testData40: B = new B(); + testData41: B = new B(); + testData42: B = new B(); + testData43: B = new B(); + testData44: B = new B(); + testData45: B = new B(); + testData46: B = new B(); + testData47: B = new B(); + testData48: B = new B(); + testData49: B = new B(); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -77,15 +127,20 @@ struct ObservedV2ArraySample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.arr[0] + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.arr[index] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@ObservedV2的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.arr[0] = '世界你好' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.arr[index] = index.toString() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildObservedV2ArraySample({ Arr : this.testData.arr}) diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2DateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2DateSample.ets index ea06499e..eeb3ba53 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2DateSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2DateSample.ets @@ -51,7 +51,57 @@ struct ChildObservedV2DateSample { struct ObservedV2DateSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) testData: ClassB = new ClassB(new ClassA()) + testData1: ClassB = new ClassB(new ClassA()) + testData2: ClassB = new ClassB(new ClassA()) + testData3: ClassB = new ClassB(new ClassA()) + testData4: ClassB = new ClassB(new ClassA()) + testData5: ClassB = new ClassB(new ClassA()) + testData6: ClassB = new ClassB(new ClassA()) + testData7: ClassB = new ClassB(new ClassA()) + testData8: ClassB = new ClassB(new ClassA()) + testData9: ClassB = new ClassB(new ClassA()) + testData10: ClassB = new ClassB(new ClassA()) + testData11: ClassB = new ClassB(new ClassA()) + testData12: ClassB = new ClassB(new ClassA()) + testData13: ClassB = new ClassB(new ClassA()) + testData14: ClassB = new ClassB(new ClassA()) + testData15: ClassB = new ClassB(new ClassA()) + testData16: ClassB = new ClassB(new ClassA()) + testData17: ClassB = new ClassB(new ClassA()) + testData18: ClassB = new ClassB(new ClassA()) + testData19: ClassB = new ClassB(new ClassA()) + testData20: ClassB = new ClassB(new ClassA()) + testData21: ClassB = new ClassB(new ClassA()) + testData22: ClassB = new ClassB(new ClassA()) + testData23: ClassB = new ClassB(new ClassA()) + testData24: ClassB = new ClassB(new ClassA()) + testData25: ClassB = new ClassB(new ClassA()) + testData26: ClassB = new ClassB(new ClassA()) + testData27: ClassB = new ClassB(new ClassA()) + testData28: ClassB = new ClassB(new ClassA()) + testData29: ClassB = new ClassB(new ClassA()) + testData30: ClassB = new ClassB(new ClassA()) + testData31: ClassB = new ClassB(new ClassA()) + testData32: ClassB = new ClassB(new ClassA()) + testData33: ClassB = new ClassB(new ClassA()) + testData34: ClassB = new ClassB(new ClassA()) + testData35: ClassB = new ClassB(new ClassA()) + testData36: ClassB = new ClassB(new ClassA()) + testData37: ClassB = new ClassB(new ClassA()) + testData38: ClassB = new ClassB(new ClassA()) + testData39: ClassB = new ClassB(new ClassA()) + testData40: ClassB = new ClassB(new ClassA()) + testData41: ClassB = new ClassB(new ClassA()) + testData42: ClassB = new ClassB(new ClassA()) + testData43: ClassB = new ClassB(new ClassA()) + testData44: ClassB = new ClassB(new ClassA()) + testData45: ClassB = new ClassB(new ClassA()) + testData46: ClassB = new ClassB(new ClassA()) + testData47: ClassB = new ClassB(new ClassA()) + testData48: ClassB = new ClassB(new ClassA()) + testData49: ClassB = new ClassB(new ClassA()) b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { let arr: number[] = [this.testData.b.getTime() - 60 * 60 * 1000, this.testData.b.getTime() - 20 * 60 * 1000] @@ -84,19 +134,24 @@ struct ObservedV2DateSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.b + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.b.getTime() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@ObservedV2的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let time: number = this.testData.b.getTime() + 10 * 60 * 60 * 1000 + this.isTypeState = !this.isTypeState + let time: number[] = [this.testData.b.getTime() + 10 * 60 * 60 * 1000,this.testData.b.getTime() + 20 * 60 * 60 * 1000] timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.b.setTime(time) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.b.setTime(time[index%2]) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildObservedV2DateSample({ Info : this.testData.b }) } } -} +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2MapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2MapSample.ets index 0a120eb9..fcde8191 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2MapSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2MapSample.ets @@ -52,7 +52,57 @@ struct ChildObservedV2MapSample { struct ObservedV2MapSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) message: ClassA = new ClassA(new MyMap()); + message1: ClassA = new ClassA(new MyMap()); + message2: ClassA = new ClassA(new MyMap()); + message3: ClassA = new ClassA(new MyMap()); + message4: ClassA = new ClassA(new MyMap()); + message5: ClassA = new ClassA(new MyMap()); + message6: ClassA = new ClassA(new MyMap()); + message7: ClassA = new ClassA(new MyMap()); + message8: ClassA = new ClassA(new MyMap()); + message9: ClassA = new ClassA(new MyMap()); + message10: ClassA = new ClassA(new MyMap()); + message11: ClassA = new ClassA(new MyMap()); + message12: ClassA = new ClassA(new MyMap()); + message13: ClassA = new ClassA(new MyMap()); + message14: ClassA = new ClassA(new MyMap()); + message15: ClassA = new ClassA(new MyMap()); + message16: ClassA = new ClassA(new MyMap()); + message17: ClassA = new ClassA(new MyMap()); + message18: ClassA = new ClassA(new MyMap()); + message19: ClassA = new ClassA(new MyMap()); + message20: ClassA = new ClassA(new MyMap()); + message21: ClassA = new ClassA(new MyMap()); + message22: ClassA = new ClassA(new MyMap()); + message23: ClassA = new ClassA(new MyMap()); + message24: ClassA = new ClassA(new MyMap()); + message25: ClassA = new ClassA(new MyMap()); + message26: ClassA = new ClassA(new MyMap()); + message27: ClassA = new ClassA(new MyMap()); + message28: ClassA = new ClassA(new MyMap()); + message29: ClassA = new ClassA(new MyMap()); + message30: ClassA = new ClassA(new MyMap()); + message31: ClassA = new ClassA(new MyMap()); + message32: ClassA = new ClassA(new MyMap()); + message33: ClassA = new ClassA(new MyMap()); + message34: ClassA = new ClassA(new MyMap()); + message35: ClassA = new ClassA(new MyMap()); + message36: ClassA = new ClassA(new MyMap()); + message37: ClassA = new ClassA(new MyMap()); + message38: ClassA = new ClassA(new MyMap()); + message39: ClassA = new ClassA(new MyMap()); + message40: ClassA = new ClassA(new MyMap()); + message41: ClassA = new ClassA(new MyMap()); + message42: ClassA = new ClassA(new MyMap()); + message43: ClassA = new ClassA(new MyMap()); + message44: ClassA = new ClassA(new MyMap()); + message45: ClassA = new ClassA(new MyMap()); + message46: ClassA = new ClassA(new MyMap()); + message47: ClassA = new ClassA(new MyMap()); + message48: ClassA = new ClassA(new MyMap()); + message49: ClassA = new ClassA(new MyMap()); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -84,18 +134,23 @@ struct ObservedV2MapSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.message.a.get(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.message.a.get(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@ObservedV2的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.message.a.set(0,'g') + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.message.a.set(index,index.toString()) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildObservedV2MapSample({Info : this.message.a}) } } -} +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2OrdinarySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2OrdinarySample.ets index adfb283b..5703c9ce 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2OrdinarySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2OrdinarySample.ets @@ -48,7 +48,57 @@ struct ChildObservedV2OrdinarySample { struct ObservedV2OrdinarySample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) testData: B = new B() + testData1: B = new B() + testData2: B = new B() + testData3: B = new B() + testData4: B = new B() + testData5: B = new B() + testData6: B = new B() + testData7: B = new B() + testData8: B = new B() + testData9: B = new B() + testData10: B = new B() + testData11: B = new B() + testData12: B = new B() + testData13: B = new B() + testData14: B = new B() + testData15: B = new B() + testData16: B = new B() + testData17: B = new B() + testData18: B = new B() + testData19: B = new B() + testData20: B = new B() + testData21: B = new B() + testData22: B = new B() + testData23: B = new B() + testData24: B = new B() + testData25: B = new B() + testData26: B = new B() + testData27: B = new B() + testData28: B = new B() + testData29: B = new B() + testData30: B = new B() + testData31: B = new B() + testData32: B = new B() + testData33: B = new B() + testData34: B = new B() + testData35: B = new B() + testData36: B = new B() + testData37: B = new B() + testData38: B = new B() + testData39: B = new B() + testData40: B = new B() + testData41: B = new B() + testData42: B = new B() + testData43: B = new B() + testData44: B = new B() + testData45: B = new B() + testData46: B = new B() + testData47: B = new B() + testData48: B = new B() + testData49: B = new B() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -80,19 +130,23 @@ struct ObservedV2OrdinarySample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.son.b + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.son.b + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@ObservedV2的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let value = this.testData.son.b - 1 + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.son.b = value + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.son.b = index + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildObservedV2OrdinarySample({ Info : this.testData }) } } -} +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2SetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2SetSample.ets index 0c986dea..8c17e37f 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2SetSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/observedV2/ObservedV2SetSample.ets @@ -51,7 +51,57 @@ struct ChildObservedV2SetSample { struct ObservedV2SetSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) testData: ClassB = new ClassB(new ClassA()) + testData1: ClassB = new ClassB(new ClassA()) + testData2: ClassB = new ClassB(new ClassA()) + testData3: ClassB = new ClassB(new ClassA()) + testData4: ClassB = new ClassB(new ClassA()) + testData5: ClassB = new ClassB(new ClassA()) + testData6: ClassB = new ClassB(new ClassA()) + testData7: ClassB = new ClassB(new ClassA()) + testData8: ClassB = new ClassB(new ClassA()) + testData9: ClassB = new ClassB(new ClassA()) + testData10: ClassB = new ClassB(new ClassA()) + testData11: ClassB = new ClassB(new ClassA()) + testData12: ClassB = new ClassB(new ClassA()) + testData13: ClassB = new ClassB(new ClassA()) + testData14: ClassB = new ClassB(new ClassA()) + testData15: ClassB = new ClassB(new ClassA()) + testData16: ClassB = new ClassB(new ClassA()) + testData17: ClassB = new ClassB(new ClassA()) + testData18: ClassB = new ClassB(new ClassA()) + testData19: ClassB = new ClassB(new ClassA()) + testData20: ClassB = new ClassB(new ClassA()) + testData21: ClassB = new ClassB(new ClassA()) + testData22: ClassB = new ClassB(new ClassA()) + testData23: ClassB = new ClassB(new ClassA()) + testData24: ClassB = new ClassB(new ClassA()) + testData25: ClassB = new ClassB(new ClassA()) + testData26: ClassB = new ClassB(new ClassA()) + testData27: ClassB = new ClassB(new ClassA()) + testData28: ClassB = new ClassB(new ClassA()) + testData29: ClassB = new ClassB(new ClassA()) + testData30: ClassB = new ClassB(new ClassA()) + testData31: ClassB = new ClassB(new ClassA()) + testData32: ClassB = new ClassB(new ClassA()) + testData33: ClassB = new ClassB(new ClassA()) + testData34: ClassB = new ClassB(new ClassA()) + testData35: ClassB = new ClassB(new ClassA()) + testData36: ClassB = new ClassB(new ClassA()) + testData37: ClassB = new ClassB(new ClassA()) + testData38: ClassB = new ClassB(new ClassA()) + testData39: ClassB = new ClassB(new ClassA()) + testData40: ClassB = new ClassB(new ClassA()) + testData41: ClassB = new ClassB(new ClassA()) + testData42: ClassB = new ClassB(new ClassA()) + testData43: ClassB = new ClassB(new ClassA()) + testData44: ClassB = new ClassB(new ClassA()) + testData45: ClassB = new ClassB(new ClassA()) + testData46: ClassB = new ClassB(new ClassA()) + testData47: ClassB = new ClassB(new ClassA()) + testData48: ClassB = new ClassB(new ClassA()) + testData49: ClassB = new ClassB(new ClassA()) b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -85,15 +135,20 @@ struct ObservedV2SetSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.b.values() + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.b.values() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@ObservedV2的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.b.add(-1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.b.add(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildObservedV2SetSample({ Info : this.testData.b }) diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceArraySample.ets new file mode 100755 index 00000000..d6330c5c --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceArraySample.ets @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceArraySample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceArraySample { + @Event changeChildArray : (x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childArray: Array = [1,2,3,4,5] + @Once @Param childArray1: Array = [1,2,3,4,5] + @Once @Param childArray2: Array = [1,2,3,4,5] + @Once @Param childArray3: Array = [1,2,3,4,5] + @Once @Param childArray4: Array = [1,2,3,4,5] + @Once @Param childArray5: Array = [1,2,3,4,5] + @Once @Param childArray6: Array = [1,2,3,4,5] + @Once @Param childArray7: Array = [1,2,3,4,5] + @Once @Param childArray8: Array = [1,2,3,4,5] + @Once @Param childArray9: Array = [1,2,3,4,5] + @Once @Param childArray10: Array = [1,2,3,4,5] + @Once @Param childArray11: Array = [1,2,3,4,5] + @Once @Param childArray12: Array = [1,2,3,4,5] + @Once @Param childArray13: Array = [1,2,3,4,5] + @Once @Param childArray14: Array = [1,2,3,4,5] + @Once @Param childArray15: Array = [1,2,3,4,5] + @Once @Param childArray16: Array = [1,2,3,4,5] + @Once @Param childArray17: Array = [1,2,3,4,5] + @Once @Param childArray18: Array = [1,2,3,4,5] + @Once @Param childArray19: Array = [1,2,3,4,5] + @Once @Param childArray20: Array = [1,2,3,4,5] + @Once @Param childArray21: Array = [1,2,3,4,5] + @Once @Param childArray22: Array = [1,2,3,4,5] + @Once @Param childArray23: Array = [1,2,3,4,5] + @Once @Param childArray24: Array = [1,2,3,4,5] + @Once @Param childArray25: Array = [1,2,3,4,5] + @Once @Param childArray26: Array = [1,2,3,4,5] + @Once @Param childArray27: Array = [1,2,3,4,5] + @Once @Param childArray28: Array = [1,2,3,4,5] + @Once @Param childArray29: Array = [1,2,3,4,5] + @Once @Param childArray30: Array = [1,2,3,4,5] + @Once @Param childArray31: Array = [1,2,3,4,5] + @Once @Param childArray32: Array = [1,2,3,4,5] + @Once @Param childArray33: Array = [1,2,3,4,5] + @Once @Param childArray34: Array = [1,2,3,4,5] + @Once @Param childArray35: Array = [1,2,3,4,5] + @Once @Param childArray36: Array = [1,2,3,4,5] + @Once @Param childArray37: Array = [1,2,3,4,5] + @Once @Param childArray38: Array = [1,2,3,4,5] + @Once @Param childArray39: Array = [1,2,3,4,5] + @Once @Param childArray40: Array = [1,2,3,4,5] + @Once @Param childArray41: Array = [1,2,3,4,5] + @Once @Param childArray42: Array = [1,2,3,4,5] + @Once @Param childArray43: Array = [1,2,3,4,5] + @Once @Param childArray44: Array = [1,2,3,4,5] + @Once @Param childArray45: Array = [1,2,3,4,5] + @Once @Param childArray46: Array = [1,2,3,4,5] + @Once @Param childArray47: Array = [1,2,3,4,5] + @Once @Param childArray48: Array = [1,2,3,4,5] + @Once @Param childArray49: Array = [1,2,3,4,5] + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.changeChildArray(index%2) + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childArray[0]}` : + `child value: ${this.childArray[0]}`) + + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.changeChildArray(index%2) + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceArraySample { + @Local parentArray: Array = [5,4,3]; + changeParentArray : (type: number) => void = (type: number) => { + if(type==0){ + this.parentArray = [999,888,777] + }else if(type==1){ + this.parentArray = [123,456,789] + } + }; + build() { + Column({ space: 15 }) { + Text('OnceArraySample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentArray[0]}`) + ChildOnceArraySample({childArray:this.parentArray,changeChildArray:this.changeParentArray.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceBooleanSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceBooleanSample.ets new file mode 100755 index 00000000..5315568e --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceBooleanSample.ets @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceBooleanSample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceBooleanSample { + @Event changeChildBoolean : (x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childBoolean: boolean = true; + @Once @Param childBoolean1: boolean = true; + @Once @Param childBoolean2: boolean = true; + @Once @Param childBoolean3: boolean = true; + @Once @Param childBoolean4: boolean = true; + @Once @Param childBoolean5: boolean = true; + @Once @Param childBoolean6: boolean = true; + @Once @Param childBoolean7: boolean = true; + @Once @Param childBoolean8: boolean = true; + @Once @Param childBoolean9: boolean = true; + @Once @Param childBoolean10: boolean = true; + @Once @Param childBoolean11: boolean = true; + @Once @Param childBoolean12: boolean = true; + @Once @Param childBoolean13: boolean = true; + @Once @Param childBoolean14: boolean = true; + @Once @Param childBoolean15: boolean = true; + @Once @Param childBoolean16: boolean = true; + @Once @Param childBoolean17: boolean = true; + @Once @Param childBoolean18: boolean = true; + @Once @Param childBoolean19: boolean = true; + @Once @Param childBoolean20: boolean = true; + @Once @Param childBoolean21: boolean = true; + @Once @Param childBoolean22: boolean = true; + @Once @Param childBoolean23: boolean = true; + @Once @Param childBoolean24: boolean = true; + @Once @Param childBoolean25: boolean = true; + @Once @Param childBoolean26: boolean = true; + @Once @Param childBoolean27: boolean = true; + @Once @Param childBoolean28: boolean = true; + @Once @Param childBoolean29: boolean = true; + @Once @Param childBoolean30: boolean = true; + @Once @Param childBoolean31: boolean = true; + @Once @Param childBoolean32: boolean = true; + @Once @Param childBoolean33: boolean = true; + @Once @Param childBoolean34: boolean = true; + @Once @Param childBoolean35: boolean = true; + @Once @Param childBoolean36: boolean = true; + @Once @Param childBoolean37: boolean = true; + @Once @Param childBoolean38: boolean = true; + @Once @Param childBoolean39: boolean = true; + @Once @Param childBoolean40: boolean = true; + @Once @Param childBoolean41: boolean = true; + @Once @Param childBoolean42: boolean = true; + @Once @Param childBoolean43: boolean = true; + @Once @Param childBoolean44: boolean = true; + @Once @Param childBoolean45: boolean = true; + @Once @Param childBoolean46: boolean = true; + @Once @Param childBoolean47: boolean = true; + @Once @Param childBoolean48: boolean = true; + @Once @Param childBoolean49: boolean = true; + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childBoolean + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childBoolean}` : + `child value: ${this.childBoolean}`) + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childBoolean + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceBooleanSample { + @Local parentBoolean: boolean = true; + changeParentBoolean : (type: number) => void = (type: number) => { + if(type==0){ + this.parentBoolean=true + }else if(type==1){ + this.parentBoolean=false + } + }; + build() { + Column({ space: 15 }) { + Text('OnceBooleanSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentBoolean}`) + ChildOnceBooleanSample({childBoolean:this.parentBoolean,changeChildBoolean: this.changeParentBoolean.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceClassSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceClassSample.ets new file mode 100755 index 00000000..72ce942f --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceClassSample.ets @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import {ClassModel, classModel, classModel1, classModel2, classModel3 } from '../ClassModel'; +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceClassSample') +let isType: boolean = true +@ObservedV2 +class Info{ + @Trace value:string; + constructor(value:string) { + this.value=value; + } +} +@ComponentV2 +struct ChildOnceClassSample { + @Event changeChildClass:(x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childClass:Info=new Info("childClass") + @Once @Param childClass1:Info=new Info("childClass") + @Once @Param childClass2:Info=new Info("childClass") + @Once @Param childClass3:Info=new Info("childClass") + @Once @Param childClass4:Info=new Info("childClass") + @Once @Param childClass5:Info=new Info("childClass") + @Once @Param childClass6:Info=new Info("childClass") + @Once @Param childClass7:Info=new Info("childClass") + @Once @Param childClass8:Info=new Info("childClass") + @Once @Param childClass9:Info=new Info("childClass") + @Once @Param childClass10:Info=new Info("childClass") + @Once @Param childClass11:Info=new Info("childClass") + @Once @Param childClass12:Info=new Info("childClass") + @Once @Param childClass13:Info=new Info("childClass") + @Once @Param childClass14:Info=new Info("childClass") + @Once @Param childClass15:Info=new Info("childClass") + @Once @Param childClass16:Info=new Info("childClass") + @Once @Param childClass17:Info=new Info("childClass") + @Once @Param childClass18:Info=new Info("childClass") + @Once @Param childClass19:Info=new Info("childClass") + @Once @Param childClass20:Info=new Info("childClass") + @Once @Param childClass21:Info=new Info("childClass") + @Once @Param childClass22:Info=new Info("childClass") + @Once @Param childClass23:Info=new Info("childClass") + @Once @Param childClass24:Info=new Info("childClass") + @Once @Param childClass25:Info=new Info("childClass") + @Once @Param childClass26:Info=new Info("childClass") + @Once @Param childClass27:Info=new Info("childClass") + @Once @Param childClass28:Info=new Info("childClass") + @Once @Param childClass29:Info=new Info("childClass") + @Once @Param childClass30:Info=new Info("childClass") + @Once @Param childClass31:Info=new Info("childClass") + @Once @Param childClass32:Info=new Info("childClass") + @Once @Param childClass33:Info=new Info("childClass") + @Once @Param childClass34:Info=new Info("childClass") + @Once @Param childClass35:Info=new Info("childClass") + @Once @Param childClass36:Info=new Info("childClass") + @Once @Param childClass37:Info=new Info("childClass") + @Once @Param childClass38:Info=new Info("childClass") + @Once @Param childClass39:Info=new Info("childClass") + @Once @Param childClass40:Info=new Info("childClass") + @Once @Param childClass41:Info=new Info("childClass") + @Once @Param childClass42:Info=new Info("childClass") + @Once @Param childClass43:Info=new Info("childClass") + @Once @Param childClass44:Info=new Info("childClass") + @Once @Param childClass45:Info=new Info("childClass") + @Once @Param childClass46:Info=new Info("childClass") + @Once @Param childClass47:Info=new Info("childClass") + @Once @Param childClass48:Info=new Info("childClass") + @Once @Param childClass49:Info=new Info("childClass") + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childClass + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childClass.value}` : + `child value: ${this.childClass.value}`) + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childClass + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceClassSample { + @Local parentClass:Info=new Info("parentClass") + changeParentClass:(type: number) => void = (type: number) => { + if(type==0){ + this.parentClass=new Info('Class000') + }else if(type==1){ + this.parentClass=new Info('Class111') + } + }; + build() { + Column({ space: 15 }) { + Text('OnceClassSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentClass.value}` ) + ChildOnceClassSample({childClass:this.parentClass,changeChildClass:this.changeParentClass.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceDateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceDateSample.ets new file mode 100755 index 00000000..b5e2209d --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceDateSample.ets @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceDateSample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceDateSample { + @Event changeChildDate:(x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childDate: Date = new Date('2021-08-08') + @Once @Param childDate1: Date = new Date('2021-08-08') + @Once @Param childDate2: Date = new Date('2021-08-08') + @Once @Param childDate3: Date = new Date('2021-08-08') + @Once @Param childDate4: Date = new Date('2021-08-08') + @Once @Param childDate5: Date = new Date('2021-08-08') + @Once @Param childDate6: Date = new Date('2021-08-08') + @Once @Param childDate7: Date = new Date('2021-08-08') + @Once @Param childDate8: Date = new Date('2021-08-08') + @Once @Param childDate9: Date = new Date('2021-08-08') + @Once @Param childDate10: Date = new Date('2021-08-08') + @Once @Param childDate11: Date = new Date('2021-08-08') + @Once @Param childDate12: Date = new Date('2021-08-08') + @Once @Param childDate13: Date = new Date('2021-08-08') + @Once @Param childDate14: Date = new Date('2021-08-08') + @Once @Param childDate15: Date = new Date('2021-08-08') + @Once @Param childDate16: Date = new Date('2021-08-08') + @Once @Param childDate17: Date = new Date('2021-08-08') + @Once @Param childDate18: Date = new Date('2021-08-08') + @Once @Param childDate19: Date = new Date('2021-08-08') + @Once @Param childDate20: Date = new Date('2021-08-08') + @Once @Param childDate21: Date = new Date('2021-08-08') + @Once @Param childDate22: Date = new Date('2021-08-08') + @Once @Param childDate23: Date = new Date('2021-08-08') + @Once @Param childDate24: Date = new Date('2021-08-08') + @Once @Param childDate25: Date = new Date('2021-08-08') + @Once @Param childDate26: Date = new Date('2021-08-08') + @Once @Param childDate27: Date = new Date('2021-08-08') + @Once @Param childDate28: Date = new Date('2021-08-08') + @Once @Param childDate29: Date = new Date('2021-08-08') + @Once @Param childDate30: Date = new Date('2021-08-08') + @Once @Param childDate31: Date = new Date('2021-08-08') + @Once @Param childDate32: Date = new Date('2021-08-08') + @Once @Param childDate33: Date = new Date('2021-08-08') + @Once @Param childDate34: Date = new Date('2021-08-08') + @Once @Param childDate35: Date = new Date('2021-08-08') + @Once @Param childDate36: Date = new Date('2021-08-08') + @Once @Param childDate37: Date = new Date('2021-08-08') + @Once @Param childDate38: Date = new Date('2021-08-08') + @Once @Param childDate39: Date = new Date('2021-08-08') + @Once @Param childDate40: Date = new Date('2021-08-08') + @Once @Param childDate41: Date = new Date('2021-08-08') + @Once @Param childDate42: Date = new Date('2021-08-08') + @Once @Param childDate43: Date = new Date('2021-08-08') + @Once @Param childDate44: Date = new Date('2021-08-08') + @Once @Param childDate45: Date = new Date('2021-08-08') + @Once @Param childDate46: Date = new Date('2021-08-08') + @Once @Param childDate47: Date = new Date('2021-08-08') + @Once @Param childDate48: Date = new Date('2021-08-08') + @Once @Param childDate49: Date = new Date('2021-08-08') + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childDate.getTime() + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childDate.toTimeString()}` : + `child value: ${this.childDate.toTimeString()}`) + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childDate.getTime() + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceDateSample { + @Local parentDate: Date=new Date('2021-08-08'); + changeParentDate : (type: number) => void = (type: number) => { + if(type==0){ + this.parentDate.setTime(this.parentDate.getTime() + 100 * 60 * 60 * 1000) + } + }; + build() { + Column({ space: 15 }) { + Text('OnceDateSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentDate.toTimeString()}`) + ChildOnceDateSample({childDate:this.parentDate,changeChildDate:this.changeParentDate.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceEnumSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceEnumSample.ets new file mode 100755 index 00000000..76053502 --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceEnumSample.ets @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { LanguageEnum } from '../ClassModel'; +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceEnumSample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceEnumSample { + @Event changeChildEnum:(x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childEnum: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum1: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum2: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum3: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum4: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum5: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum6: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum7: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum8: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum9: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum10: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum11: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum12: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum13: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum14: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum15: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum16: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum17: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum18: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum19: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum20: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum21: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum22: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum23: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum24: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum25: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum26: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum27: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum28: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum29: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum30: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum31: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum32: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum33: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum34: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum35: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum36: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum37: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum38: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum39: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum40: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum41: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum42: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum43: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum44: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum45: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum46: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum47: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum48: LanguageEnum = LanguageEnum.English; + @Once @Param childEnum49: LanguageEnum = LanguageEnum.English; + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childEnum + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childEnum}` : + `child value: ${this.childEnum}`) + Button('child click:读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childEnum + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceEnumSample { + @Local parentEnum: LanguageEnum = LanguageEnum.English; + changeParentEnum:(type: number) => void = (type: number) => { + if(type==0){ + this.parentEnum=LanguageEnum.Chinese + }else if(type==1){ + this.parentEnum=LanguageEnum.French + } + }; + build() { + Column({ space: 15 }) { + Text('OnceEnumSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentEnum}`) + ChildOnceEnumSample({childEnum:this.parentEnum,changeChildEnum:this.changeParentEnum.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/event/EventHome.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceHome.ets similarity index 44% rename from performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/event/EventHome.ets rename to performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceHome.ets index d3bf8ba2..178f7d4c 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/event/EventHome.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceHome.ets @@ -17,17 +17,28 @@ import { CommonButton } from '../../../util/CommonButton'; @Entry @Component -struct EventHome { +struct OnceHome{ build() { Scroll() { Flex({ direction: FlexDirection.Row, wrap: FlexWrap.Wrap }) { - Text('EventHome') + Text('OnceHome') .padding('15vp') .width('100%') .fontSize('25fp') .textAlign(TextAlign.Center) - CommonButton({buttonName:'EventEventSample',buttonUrl:'pages/stateManagement/event/EventEventSample'}); + CommonButton({buttonName:'OnceObjectSample',buttonUrl:'pages/stateManagement/once/OnceObjectSample'}); + CommonButton({buttonName:'OnceClassSample',buttonUrl:'pages/stateManagement/once/OnceClassSample'}); + CommonButton({buttonName:'OnceStringSample',buttonUrl:'pages/stateManagement/once/OnceStringSample'}); + CommonButton({buttonName:'OnceNumberSample',buttonUrl:'pages/stateManagement/once/OnceNumberSample'}); + CommonButton({buttonName:'OnceBooleanSample',buttonUrl:'pages/stateManagement/once/OnceBooleanSample'}); + CommonButton({buttonName:'OnceEnumSample',buttonUrl:'pages/stateManagement/once/OnceEnumSample'}); + CommonButton({buttonName:'OnceArraySample',buttonUrl:'pages/stateManagement/once/OnceArraySample'}); + CommonButton({buttonName:'OnceDateSample',buttonUrl:'pages/stateManagement/once/OnceDateSample'}); + CommonButton({buttonName:'OnceMapSample',buttonUrl:'pages/stateManagement/once/OnceMapSample'}); + CommonButton({buttonName:'OnceSetSample',buttonUrl:'pages/stateManagement/once/OnceSetSample'}); + CommonButton({buttonName:'OnceUnionSample',buttonUrl:'pages/stateManagement/once/OnceUnionSample'}); + } .padding('5vp') .width('100%') diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceMapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceMapSample.ets new file mode 100755 index 00000000..c6bdcd6a --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceMapSample.ets @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceMapSample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceMapSample { + + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childMap: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap1: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap2: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap3: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap4: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap5: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap6: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap7: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap8: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap9: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap10: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap11: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap12: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap13: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap14: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap15: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap16: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap17: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap18: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap19: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap20: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap21: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap22: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap23: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap24: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap25: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap26: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap27: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap28: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap29: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap30: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap31: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap32: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap33: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap34: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap35: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap36: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap37: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap38: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap39: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap40: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap41: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap42: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap43: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap44: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap45: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap46: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap47: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap48: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Once @Param childMap49: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childMap.get(index%2) + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childMap.get(0)}` : + `child value: ${this.childMap.get(0)}`) + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childMap.get(index%2) + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceMapSample { + @Local parentMap: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + build() { + Column({ space: 15 }) { + Text('OnceMapSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentMap.get(0)}`) + ChildOnceMapSample({childMap:this.parentMap}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/event/EventEventSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceNumberSample.ets similarity index 39% rename from performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/event/EventEventSample.ets rename to performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceNumberSample.ets index 25b22f57..2fba6a3f 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/event/EventEventSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceNumberSample.ets @@ -18,48 +18,85 @@ import { TimeHelper } from '../../../util/TimeHelper' import { StateConstants, StateModel } from '../StateModel'; import { StateUtils } from '../StateUtils'; -const timeHelper: TimeHelper = new TimeHelper('EventEventSample') +const timeHelper: TimeHelper = new TimeHelper('OnceNumberSample') let isType: boolean = true - @ComponentV2 -struct ChildEventEventSample { - @Param childString: string = 'childString'; +struct ChildOnceNumberSample { + @Event changeChildNumber:(x: number) => void = (x: number) => {}; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - @Event changeChildString : (x: number) => void = (x: number) => {}; + @Once @Param childNumber: number = 10; + @Once @Param childNumber1: number = 10; + @Once @Param childNumber2: number = 10; + @Once @Param childNumber3: number = 10; + @Once @Param childNumber4: number = 10; + @Once @Param childNumber5: number = 10; + @Once @Param childNumber6: number = 10; + @Once @Param childNumber7: number = 10; + @Once @Param childNumber8: number = 10; + @Once @Param childNumber9: number = 10; + @Once @Param childNumber10: number = 10; + @Once @Param childNumber11: number = 10; + @Once @Param childNumber12: number = 10; + @Once @Param childNumber13: number = 10; + @Once @Param childNumber14: number = 10; + @Once @Param childNumber15: number = 10; + @Once @Param childNumber16: number = 10; + @Once @Param childNumber17: number = 10; + @Once @Param childNumber18: number = 10; + @Once @Param childNumber19: number = 10; + @Once @Param childNumber20: number = 10; + @Once @Param childNumber21: number = 10; + @Once @Param childNumber22: number = 10; + @Once @Param childNumber23: number = 10; + @Once @Param childNumber24: number = 10; + @Once @Param childNumber25: number = 10; + @Once @Param childNumber26: number = 10; + @Once @Param childNumber27: number = 10; + @Once @Param childNumber28: number = 10; + @Once @Param childNumber29: number = 10; + @Once @Param childNumber30: number = 10; + @Once @Param childNumber31: number = 10; + @Once @Param childNumber32: number = 10; + @Once @Param childNumber33: number = 10; + @Once @Param childNumber34: number = 10; + @Once @Param childNumber35: number = 10; + @Once @Param childNumber36: number = 10; + @Once @Param childNumber37: number = 10; + @Once @Param childNumber38: number = 10; + @Once @Param childNumber39: number = 10; + @Once @Param childNumber40: number = 10; + @Once @Param childNumber41: number = 10; + @Once @Param childNumber42: number = 10; + @Once @Param childNumber43: number = 10; + @Once @Param childNumber44: number = 10; + @Once @Param childNumber45: number = 10; + @Once @Param childNumber46: number = 10; + @Once @Param childNumber47: number = 10; + @Once @Param childNumber48: number = 10; + @Once @Param childNumber49: number = 10; b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) aboutToAppear(): void { - timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) - for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.changeChildString(index%3) - } - timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - let value = this.changeChildString(index%3) + let value = this.childNumber } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) } build() { Column({ space: 15 }) { - Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childString}` : - `child value: ${this.childString}`) - Button('child click: 读@Event的耗时') + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childNumber}` : + `child value: ${this.childNumber}`) + Button('child click: 读@Once的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.changeChildString + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childNumber + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('child click: 写@Event的耗时') - .id('setStateTimeTaken') - .onClick(() => { - isType = true - timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildString(2) - timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) - }) } } } @@ -67,32 +104,23 @@ struct ChildEventEventSample { @Entry @ComponentV2 -struct EventEventSample { - @Local parentString: string = 'parentEvent'; - changeParentString : (type: number) => void = (type: number) => { +struct OnceNumberSample { + @Local parentNumber: number = 10; + changeParentNumber:(type: number) => void = (type: number) => { if(type==0){ - this.parentString='parent: parentSetStateTimeTaken'; + this.parentNumber=99 }else if(type==1){ - this.parentString='parent: parentSetStateTimeTaken1'; - }else if(type==2){ - this.parentString='parent: parentSetStateTimeTaken2'; + this.parentNumber=999 } - } + }; build() { Column({ space: 15 }) { - Text('ParamStringSample') + Text('OnceNumberSample') .fontSize('25') .textAlign(TextAlign.Center) .margin({ bottom: 50, top: 50 }) - Text(`parent value: ${this.parentString}`) - Button('parent click') - .id('changeUITimeTaken') - .onClick(() => { - isType = false - this.changeParentString(0) - timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) - }) - ChildEventEventSample({childString: this.parentString,changeChildString: this.changeParentString.bind(this)}) + Text(`parent value: ${this.parentNumber}`) + ChildOnceNumberSample({childNumber:this.parentNumber,changeChildNumber:this.changeParentNumber.bind(this)}) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceObjectSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceObjectSample.ets new file mode 100755 index 00000000..b708dcca --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceObjectSample.ets @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceObjectSample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceObjectSample { + @Event changeChildObject:(x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childObject: Object = "child Param" + @Once @Param childObject1: Object = "child Param" + @Once @Param childObject2: Object = "child Param" + @Once @Param childObject3: Object = "child Param" + @Once @Param childObject4: Object = "child Param" + @Once @Param childObject5: Object = "child Param" + @Once @Param childObject6: Object = "child Param" + @Once @Param childObject7: Object = "child Param" + @Once @Param childObject8: Object = "child Param" + @Once @Param childObject9: Object = "child Param" + @Once @Param childObject10: Object = "child Param" + @Once @Param childObject11: Object = "child Param" + @Once @Param childObject12: Object = "child Param" + @Once @Param childObject13: Object = "child Param" + @Once @Param childObject14: Object = "child Param" + @Once @Param childObject15: Object = "child Param" + @Once @Param childObject16: Object = "child Param" + @Once @Param childObject17: Object = "child Param" + @Once @Param childObject18: Object = "child Param" + @Once @Param childObject19: Object = "child Param" + @Once @Param childObject20: Object = "child Param" + @Once @Param childObject21: Object = "child Param" + @Once @Param childObject22: Object = "child Param" + @Once @Param childObject23: Object = "child Param" + @Once @Param childObject24: Object = "child Param" + @Once @Param childObject25: Object = "child Param" + @Once @Param childObject26: Object = "child Param" + @Once @Param childObject27: Object = "child Param" + @Once @Param childObject28: Object = "child Param" + @Once @Param childObject29: Object = "child Param" + @Once @Param childObject30: Object = "child Param" + @Once @Param childObject31: Object = "child Param" + @Once @Param childObject32: Object = "child Param" + @Once @Param childObject33: Object = "child Param" + @Once @Param childObject34: Object = "child Param" + @Once @Param childObject35: Object = "child Param" + @Once @Param childObject36: Object = "child Param" + @Once @Param childObject37: Object = "child Param" + @Once @Param childObject38: Object = "child Param" + @Once @Param childObject39: Object = "child Param" + @Once @Param childObject40: Object = "child Param" + @Once @Param childObject41: Object = "child Param" + @Once @Param childObject42: Object = "child Param" + @Once @Param childObject43: Object = "child Param" + @Once @Param childObject44: Object = "child Param" + @Once @Param childObject45: Object = "child Param" + @Once @Param childObject46: Object = "child Param" + @Once @Param childObject47: Object = "child Param" + @Once @Param childObject48: Object = "child Param" + @Once @Param childObject49: Object = "child Param" + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childObject + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childObject.toString()}` : + `child value: ${this.childObject.toString()}`) + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childObject + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceObjectSample { + @Local parentObject: Object = 'hello, world'; + changeParentObject:(type: number) => void = (type: number) => { + if(type==0){ + this.parentObject='你好, 世界' + }else if(type==1){ + this.parentObject='world hello' + } + }; + build() { + Column({ space: 15 }) { + Text('OnceObjectSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentObject.toString()}`) + ChildOnceObjectSample({childObject:this.parentObject,changeChildObject:this.changeParentObject.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceSetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceSetSample.ets new file mode 100755 index 00000000..02af2659 --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceSetSample.ets @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceSetSample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceSetSample { + + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childSet: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet1: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet2: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet3: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet4: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet5: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet6: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet7: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet8: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet9: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet10: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet11: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet12: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet13: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet14: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet15: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet16: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet17: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet18: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet19: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet20: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet21: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet22: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet23: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet24: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet25: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet26: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet27: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet28: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet29: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet30: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet31: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet32: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet33: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet34: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet35: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet36: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet37: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet38: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet39: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet40: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet41: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet42: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet43: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet44: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet45: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet46: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet47: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet48: Set = new Set([0, 1, 2, 3, 4]); + @Once @Param childSet49: Set = new Set([0, 1, 2, 3, 4]); + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childSet.values() + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${Array.from(this.childSet.values()).toString()}` : + `child value: ${Array.from(this.childSet.values()).toString()}`) + Button('child click: 读@Once @Param的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childSet.values() + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceSetSample { + @Local parentSet: Set = new Set([0, 1, 2, 3, 4]); + build() { + Column({ space: 15 }) { + Text('OnceSetSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${Array.from(this.parentSet.values()).toString()}`) + ChildOnceSetSample({childSet:this.parentSet}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceStringSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceStringSample.ets new file mode 100755 index 00000000..ab25330f --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceStringSample.ets @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceStringSample') +let isType: boolean = true + +@ComponentV2 +struct ChildOnceStringSample { + @Event changeChildString:(x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childString: string = 'childString'; + @Once @Param childString1: string = 'childString'; + @Once @Param childString2: string = 'childString'; + @Once @Param childString3: string = 'childString'; + @Once @Param childString4: string = 'childString'; + @Once @Param childString5: string = 'childString'; + @Once @Param childString6: string = 'childString'; + @Once @Param childString7: string = 'childString'; + @Once @Param childString8: string = 'childString'; + @Once @Param childString9: string = 'childString'; + @Once @Param childString10: string = 'childString'; + @Once @Param childString11: string = 'childString'; + @Once @Param childString12: string = 'childString'; + @Once @Param childString13: string = 'childString'; + @Once @Param childString14: string = 'childString'; + @Once @Param childString15: string = 'childString'; + @Once @Param childString16: string = 'childString'; + @Once @Param childString17: string = 'childString'; + @Once @Param childString18: string = 'childString'; + @Once @Param childString19: string = 'childString'; + @Once @Param childString20: string = 'childString'; + @Once @Param childString21: string = 'childString'; + @Once @Param childString22: string = 'childString'; + @Once @Param childString23: string = 'childString'; + @Once @Param childString24: string = 'childString'; + @Once @Param childString25: string = 'childString'; + @Once @Param childString26: string = 'childString'; + @Once @Param childString27: string = 'childString'; + @Once @Param childString28: string = 'childString'; + @Once @Param childString29: string = 'childString'; + @Once @Param childString30: string = 'childString'; + @Once @Param childString31: string = 'childString'; + @Once @Param childString32: string = 'childString'; + @Once @Param childString33: string = 'childString'; + @Once @Param childString34: string = 'childString'; + @Once @Param childString35: string = 'childString'; + @Once @Param childString36: string = 'childString'; + @Once @Param childString37: string = 'childString'; + @Once @Param childString38: string = 'childString'; + @Once @Param childString39: string = 'childString'; + @Once @Param childString40: string = 'childString'; + @Once @Param childString41: string = 'childString'; + @Once @Param childString42: string = 'childString'; + @Once @Param childString43: string = 'childString'; + @Once @Param childString44: string = 'childString'; + @Once @Param childString45: string = 'childString'; + @Once @Param childString46: string = 'childString'; + @Once @Param childString47: string = 'childString'; + @Once @Param childString48: string = 'childString'; + @Once @Param childString49: string = 'childString'; + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childString + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childString}` : + `child value: ${this.childString}`) + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childString + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceStringSample { + @Local parentString: string = 'parentParam'; + changeParentString:(type: number) => void = (type: number) => { + if(type==0){ + this.parentString='你好, 世界' + }else if(type==1){ + this.parentString='world hello' + } + }; + build() { + Column({ space: 15 }) { + Text('OnceStringSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentString}`) + ChildOnceStringSample({childString: this.parentString,changeChildString:this.changeParentString.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceUnionSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceUnionSample.ets new file mode 100755 index 00000000..337f5441 --- /dev/null +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/once/OnceUnionSample.ets @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArrEntity } from '../../../entity/ArrEntity'; +import { TimeHelper } from '../../../util/TimeHelper' +import { StateConstants, StateModel } from '../StateModel'; +import { StateUtils } from '../StateUtils'; + +const timeHelper: TimeHelper = new TimeHelper('OnceUnionSample') +let isType: boolean = true +@ComponentV2 +struct ChildOnceUnionSample { + @Event changeChildUnion:(x: number) => void = (x: number) => {}; + a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Once @Param childUnion: null|undefined|number=0 + @Once @Param childUnion1: null|undefined|number=0 + @Once @Param childUnion2: null|undefined|number=0 + @Once @Param childUnion3: null|undefined|number=0 + @Once @Param childUnion4: null|undefined|number=0 + @Once @Param childUnion5: null|undefined|number=0 + @Once @Param childUnion6: null|undefined|number=0 + @Once @Param childUnion7: null|undefined|number=0 + @Once @Param childUnion8: null|undefined|number=0 + @Once @Param childUnion9: null|undefined|number=0 + @Once @Param childUnion10: null|undefined|number=0 + @Once @Param childUnion11: null|undefined|number=0 + @Once @Param childUnion12: null|undefined|number=0 + @Once @Param childUnion13: null|undefined|number=0 + @Once @Param childUnion14: null|undefined|number=0 + @Once @Param childUnion15: null|undefined|number=0 + @Once @Param childUnion16: null|undefined|number=0 + @Once @Param childUnion17: null|undefined|number=0 + @Once @Param childUnion18: null|undefined|number=0 + @Once @Param childUnion19: null|undefined|number=0 + @Once @Param childUnion20: null|undefined|number=0 + @Once @Param childUnion21: null|undefined|number=0 + @Once @Param childUnion22: null|undefined|number=0 + @Once @Param childUnion23: null|undefined|number=0 + @Once @Param childUnion24: null|undefined|number=0 + @Once @Param childUnion25: null|undefined|number=0 + @Once @Param childUnion26: null|undefined|number=0 + @Once @Param childUnion27: null|undefined|number=0 + @Once @Param childUnion28: null|undefined|number=0 + @Once @Param childUnion29: null|undefined|number=0 + @Once @Param childUnion30: null|undefined|number=0 + @Once @Param childUnion31: null|undefined|number=0 + @Once @Param childUnion32: null|undefined|number=0 + @Once @Param childUnion33: null|undefined|number=0 + @Once @Param childUnion34: null|undefined|number=0 + @Once @Param childUnion35: null|undefined|number=0 + @Once @Param childUnion36: null|undefined|number=0 + @Once @Param childUnion37: null|undefined|number=0 + @Once @Param childUnion38: null|undefined|number=0 + @Once @Param childUnion39: null|undefined|number=0 + @Once @Param childUnion40: null|undefined|number=0 + @Once @Param childUnion41: null|undefined|number=0 + @Once @Param childUnion42: null|undefined|number=0 + @Once @Param childUnion43: null|undefined|number=0 + @Once @Param childUnion44: null|undefined|number=0 + @Once @Param childUnion45: null|undefined|number=0 + @Once @Param childUnion46: null|undefined|number=0 + @Once @Param childUnion47: null|undefined|number=0 + @Once @Param childUnion48: null|undefined|number=0 + @Once @Param childUnion49: null|undefined|number=0 + b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + + aboutToAppear(): void { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childUnion + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, false)) + } + + build() { + Column({ space: 15 }) { + Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childUnion}` : + `child value: ${this.childUnion}`) + Button('child click: 读@Once的耗时') + .id('getStateTimeTaken') + .onClick(() => { + timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childUnion + } + timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) + }) + } + } +} + + +@Entry +@ComponentV2 +struct OnceUnionSample { + @Local parentUnion: null|undefined|number=0 + changeParentUnion:(type: number) => void = (type: number) => { + if(type==0){ + this.parentUnion=undefined + }else if(type==1){ + this.parentUnion=null + } + }; + build() { + Column({ space: 15 }) { + Text('OnceUnionSample') + .fontSize('25') + .textAlign(TextAlign.Center) + .margin({ bottom: 50, top: 50 }) + Text(`parent value: ${this.parentUnion}`) + ChildOnceUnionSample({childUnion:this.parentUnion,changeChildUnion:this.changeParentUnion.bind(this)}) + } + } +} \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamArraySample.ets index 6f7e96d2..0b7d5165 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamArraySample.ets @@ -20,12 +20,62 @@ import { StateUtils } from '../StateUtils'; const timeHelper: TimeHelper = new TimeHelper('ParamArraySample') let isType: boolean = true + @ComponentV2 struct ChildParamArraySample { - a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - @Param childArray: Array = [1,2,3,4,5] + @Param childArray: Array = [1, 2, 3, 4, 5] + @Param childArray1: Array = [1, 2, 3, 4, 5] + @Param childArray2: Array = [1, 2, 3, 4, 5] + @Param childArray3: Array = [1, 2, 3, 4, 5] + @Param childArray4: Array = [1, 2, 3, 4, 5] + @Param childArray5: Array = [1, 2, 3, 4, 5] + @Param childArray6: Array = [1, 2, 3, 4, 5] + @Param childArray7: Array = [1, 2, 3, 4, 5] + @Param childArray8: Array = [1, 2, 3, 4, 5] + @Param childArray9: Array = [1, 2, 3, 4, 5] + @Param childArray10: Array = [1, 2, 3, 4, 5] + @Param childArray11: Array = [1, 2, 3, 4, 5] + @Param childArray12: Array = [1, 2, 3, 4, 5] + @Param childArray13: Array = [1, 2, 3, 4, 5] + @Param childArray14: Array = [1, 2, 3, 4, 5] + @Param childArray15: Array = [1, 2, 3, 4, 5] + @Param childArray16: Array = [1, 2, 3, 4, 5] + @Param childArray17: Array = [1, 2, 3, 4, 5] + @Param childArray18: Array = [1, 2, 3, 4, 5] + @Param childArray19: Array = [1, 2, 3, 4, 5] + @Param childArray20: Array = [1, 2, 3, 4, 5] + @Param childArray21: Array = [1, 2, 3, 4, 5] + @Param childArray22: Array = [1, 2, 3, 4, 5] + @Param childArray23: Array = [1, 2, 3, 4, 5] + @Param childArray24: Array = [1, 2, 3, 4, 5] + @Param childArray25: Array = [1, 2, 3, 4, 5] + @Param childArray26: Array = [1, 2, 3, 4, 5] + @Param childArray27: Array = [1, 2, 3, 4, 5] + @Param childArray28: Array = [1, 2, 3, 4, 5] + @Param childArray29: Array = [1, 2, 3, 4, 5] + @Param childArray30: Array = [1, 2, 3, 4, 5] + @Param childArray31: Array = [1, 2, 3, 4, 5] + @Param childArray32: Array = [1, 2, 3, 4, 5] + @Param childArray33: Array = [1, 2, 3, 4, 5] + @Param childArray34: Array = [1, 2, 3, 4, 5] + @Param childArray35: Array = [1, 2, 3, 4, 5] + @Param childArray36: Array = [1, 2, 3, 4, 5] + @Param childArray37: Array = [1, 2, 3, 4, 5] + @Param childArray38: Array = [1, 2, 3, 4, 5] + @Param childArray39: Array = [1, 2, 3, 4, 5] + @Param childArray40: Array = [1, 2, 3, 4, 5] + @Param childArray41: Array = [1, 2, 3, 4, 5] + @Param childArray42: Array = [1, 2, 3, 4, 5] + @Param childArray43: Array = [1, 2, 3, 4, 5] + @Param childArray44: Array = [1, 2, 3, 4, 5] + @Param childArray45: Array = [1, 2, 3, 4, 5] + @Param childArray46: Array = [1, 2, 3, 4, 5] + @Param childArray47: Array = [1, 2, 3, 4, 5] + @Param childArray48: Array = [1, 2, 3, 4, 5] + @Param childArray49: Array = [1, 2, 3, 4, 5] b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -42,21 +92,26 @@ struct ChildParamArraySample { build() { Column({ space: 15 }) { - Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childArray[0]}` : + Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.childArray[0]}` : `child value: ${this.childArray[0]}`) Button('child click: 读@Param的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childArray[0] + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childArray[index] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.childArray[0]=5000 + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.childArray[index] = index + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -67,7 +122,8 @@ struct ChildParamArraySample { @Entry @ComponentV2 struct ParamArraySample { - @Local parentArray: Array = [1,2,3,4,5]; + @Local parentArray: Array = [1, 2, 3, 4, 5]; + build() { Column({ space: 15 }) { Text('ParamArraySample') @@ -79,10 +135,10 @@ struct ParamArraySample { .id('changeUITimeTaken') .onClick(() => { isType = false - this.parentArray[0]=1000 + this.parentArray[0] = 1000 timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildParamArraySample({childArray:this.parentArray}) + ChildParamArraySample({ childArray: this.parentArray }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamBooleanSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamBooleanSample.ets index 36b800c8..5c1ea8af 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamBooleanSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamBooleanSample.ets @@ -25,7 +25,57 @@ struct ChildParamBooleanSample { @Event changeChildBoolean : (x: number) => void = (x: number) => {}; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childBoolean: boolean = true; + @Param childBoolean1: boolean = true; + @Param childBoolean2: boolean = true; + @Param childBoolean3: boolean = true; + @Param childBoolean4: boolean = true; + @Param childBoolean5: boolean = true; + @Param childBoolean6: boolean = true; + @Param childBoolean7: boolean = true; + @Param childBoolean8: boolean = true; + @Param childBoolean9: boolean = true; + @Param childBoolean10: boolean = true; + @Param childBoolean11: boolean = true; + @Param childBoolean12: boolean = true; + @Param childBoolean13: boolean = true; + @Param childBoolean14: boolean = true; + @Param childBoolean15: boolean = true; + @Param childBoolean16: boolean = true; + @Param childBoolean17: boolean = true; + @Param childBoolean18: boolean = true; + @Param childBoolean19: boolean = true; + @Param childBoolean20: boolean = true; + @Param childBoolean21: boolean = true; + @Param childBoolean22: boolean = true; + @Param childBoolean23: boolean = true; + @Param childBoolean24: boolean = true; + @Param childBoolean25: boolean = true; + @Param childBoolean26: boolean = true; + @Param childBoolean27: boolean = true; + @Param childBoolean28: boolean = true; + @Param childBoolean29: boolean = true; + @Param childBoolean30: boolean = true; + @Param childBoolean31: boolean = true; + @Param childBoolean32: boolean = true; + @Param childBoolean33: boolean = true; + @Param childBoolean34: boolean = true; + @Param childBoolean35: boolean = true; + @Param childBoolean36: boolean = true; + @Param childBoolean37: boolean = true; + @Param childBoolean38: boolean = true; + @Param childBoolean39: boolean = true; + @Param childBoolean40: boolean = true; + @Param childBoolean41: boolean = true; + @Param childBoolean42: boolean = true; + @Param childBoolean43: boolean = true; + @Param childBoolean44: boolean = true; + @Param childBoolean45: boolean = true; + @Param childBoolean46: boolean = true; + @Param childBoolean47: boolean = true; + @Param childBoolean48: boolean = true; + @Param childBoolean49: boolean = true; b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -48,15 +98,20 @@ struct ChildParamBooleanSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childBoolean + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childBoolean + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildBoolean(1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildBoolean(index%2) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamClassSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamClassSample.ets index 45dd14b0..48ec82d1 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamClassSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamClassSample.ets @@ -15,29 +15,84 @@ import { ArrEntity } from '../../../entity/ArrEntity'; import { TimeHelper } from '../../../util/TimeHelper' -import {ClassModel, classModel, classModel1, classModel2, classModel3 } from '../ClassModel'; +import { ClassModel, classModel, classModel1, classModel2, classModel3 } from '../ClassModel'; import { StateConstants, StateModel } from '../StateModel'; import { StateUtils } from '../StateUtils'; const timeHelper: TimeHelper = new TimeHelper('ParamClassSample') let isType: boolean = true + @ObservedV2 -class Info{ - @Trace value:string; - constructor(value:string) { - this.value=value; +class Info { + @Trace value: string; + + constructor(value: string) { + this.value = value; } } + @ComponentV2 struct ChildParamClassSample { - @Event changeChildClass:(x: number) => void = (x: number) => {}; + @Event changeChildClass: (x: number) => void = (x: number) => { + }; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - @Param childClass:Info=new Info("childClass") + @Param childClass: Info = new Info("childClass") + @Param childClass1: Info = new Info("childClass") + @Param childClass2: Info = new Info("childClass") + @Param childClass3: Info = new Info("childClass") + @Param childClass4: Info = new Info("childClass") + @Param childClass5: Info = new Info("childClass") + @Param childClass6: Info = new Info("childClass") + @Param childClass7: Info = new Info("childClass") + @Param childClass8: Info = new Info("childClass") + @Param childClass9: Info = new Info("childClass") + @Param childClass10: Info = new Info("childClass") + @Param childClass11: Info = new Info("childClass") + @Param childClass12: Info = new Info("childClass") + @Param childClass13: Info = new Info("childClass") + @Param childClass14: Info = new Info("childClass") + @Param childClass15: Info = new Info("childClass") + @Param childClass16: Info = new Info("childClass") + @Param childClass17: Info = new Info("childClass") + @Param childClass18: Info = new Info("childClass") + @Param childClass19: Info = new Info("childClass") + @Param childClass20: Info = new Info("childClass") + @Param childClass21: Info = new Info("childClass") + @Param childClass22: Info = new Info("childClass") + @Param childClass23: Info = new Info("childClass") + @Param childClass24: Info = new Info("childClass") + @Param childClass25: Info = new Info("childClass") + @Param childClass26: Info = new Info("childClass") + @Param childClass27: Info = new Info("childClass") + @Param childClass28: Info = new Info("childClass") + @Param childClass29: Info = new Info("childClass") + @Param childClass30: Info = new Info("childClass") + @Param childClass31: Info = new Info("childClass") + @Param childClass32: Info = new Info("childClass") + @Param childClass33: Info = new Info("childClass") + @Param childClass34: Info = new Info("childClass") + @Param childClass35: Info = new Info("childClass") + @Param childClass36: Info = new Info("childClass") + @Param childClass37: Info = new Info("childClass") + @Param childClass38: Info = new Info("childClass") + @Param childClass39: Info = new Info("childClass") + @Param childClass40: Info = new Info("childClass") + @Param childClass41: Info = new Info("childClass") + @Param childClass42: Info = new Info("childClass") + @Param childClass43: Info = new Info("childClass") + @Param childClass44: Info = new Info("childClass") + @Param childClass45: Info = new Info("childClass") + @Param childClass46: Info = new Info("childClass") + @Param childClass47: Info = new Info("childClass") + @Param childClass48: Info = new Info("childClass") + @Param childClass49: Info = new Info("childClass") b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true + aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.changeChildClass(index%2) + this.changeChildClass(index % 2) } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) @@ -49,21 +104,26 @@ struct ChildParamClassSample { build() { Column({ space: 15 }) { - Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childClass.value}` : + Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.childClass.value}` : `child value: ${this.childClass.value}`) Button('child click: 读@Param的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childClass + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childClass + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildClass(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildClass(index % 2) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -74,29 +134,30 @@ struct ChildParamClassSample { @Entry @ComponentV2 struct ParamClassSample { - @Local parentClass:Info=new Info("parentClass") - changeParentClass:(type: number) => void = (type: number) => { - if(type==0){ - this.parentClass=new Info('Class000') - }else if(type==1){ - this.parentClass=new Info('Class111') + @Local parentClass: Info = new Info("parentClass") + changeParentClass: (type: number) => void = (type: number) => { + if (type == 0) { + this.parentClass = new Info('Class000') + } else if (type == 1) { + this.parentClass = new Info('Class111') } }; + build() { Column({ space: 15 }) { Text('ParamClassSample') .fontSize('25') .textAlign(TextAlign.Center) .margin({ bottom: 50, top: 50 }) - Text(`parent value: ${this.parentClass.value}` ) + Text(`parent value: ${this.parentClass.value}`) Button('parent click') .id('changeUITimeTaken') .onClick(() => { isType = false - this.parentClass.value="parentClass1" + this.parentClass.value = "parentClass1" timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildParamClassSample({childClass:this.parentClass,changeChildClass:this.changeParentClass.bind(this)}) + ChildParamClassSample({ childClass: this.parentClass, changeChildClass: this.changeParentClass.bind(this) }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamDateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamDateSample.ets index e0227316..0569f99d 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamDateSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamDateSample.ets @@ -25,7 +25,57 @@ struct ChildParamDateSample { @Event changeChildDate:(x: number) => void = (x: number) => {}; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childDate: Date = new Date('2021-08-08') + @Param childDate1: Date = new Date('2021-08-08') + @Param childDate2: Date = new Date('2021-08-08') + @Param childDate3: Date = new Date('2021-08-08') + @Param childDate4: Date = new Date('2021-08-08') + @Param childDate5: Date = new Date('2021-08-08') + @Param childDate6: Date = new Date('2021-08-08') + @Param childDate7: Date = new Date('2021-08-08') + @Param childDate8: Date = new Date('2021-08-08') + @Param childDate9: Date = new Date('2021-08-08') + @Param childDate10: Date = new Date('2021-08-08') + @Param childDate11: Date = new Date('2021-08-08') + @Param childDate12: Date = new Date('2021-08-08') + @Param childDate13: Date = new Date('2021-08-08') + @Param childDate14: Date = new Date('2021-08-08') + @Param childDate15: Date = new Date('2021-08-08') + @Param childDate16: Date = new Date('2021-08-08') + @Param childDate17: Date = new Date('2021-08-08') + @Param childDate18: Date = new Date('2021-08-08') + @Param childDate19: Date = new Date('2021-08-08') + @Param childDate20: Date = new Date('2021-08-08') + @Param childDate21: Date = new Date('2021-08-08') + @Param childDate22: Date = new Date('2021-08-08') + @Param childDate23: Date = new Date('2021-08-08') + @Param childDate24: Date = new Date('2021-08-08') + @Param childDate25: Date = new Date('2021-08-08') + @Param childDate26: Date = new Date('2021-08-08') + @Param childDate27: Date = new Date('2021-08-08') + @Param childDate28: Date = new Date('2021-08-08') + @Param childDate29: Date = new Date('2021-08-08') + @Param childDate30: Date = new Date('2021-08-08') + @Param childDate31: Date = new Date('2021-08-08') + @Param childDate32: Date = new Date('2021-08-08') + @Param childDate33: Date = new Date('2021-08-08') + @Param childDate34: Date = new Date('2021-08-08') + @Param childDate35: Date = new Date('2021-08-08') + @Param childDate36: Date = new Date('2021-08-08') + @Param childDate37: Date = new Date('2021-08-08') + @Param childDate38: Date = new Date('2021-08-08') + @Param childDate39: Date = new Date('2021-08-08') + @Param childDate40: Date = new Date('2021-08-08') + @Param childDate41: Date = new Date('2021-08-08') + @Param childDate42: Date = new Date('2021-08-08') + @Param childDate43: Date = new Date('2021-08-08') + @Param childDate44: Date = new Date('2021-08-08') + @Param childDate45: Date = new Date('2021-08-08') + @Param childDate46: Date = new Date('2021-08-08') + @Param childDate47: Date = new Date('2021-08-08') + @Param childDate48: Date = new Date('2021-08-08') + @Param childDate49: Date = new Date('2021-08-08') b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -48,15 +98,20 @@ struct ChildParamDateSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childDate + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childDate.getTime() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildDate(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildDate(index%1) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamEnumSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamEnumSample.ets index 2b4e314c..2b28b7dc 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamEnumSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamEnumSample.ets @@ -26,7 +26,57 @@ struct ChildParamEnumSample { @Event changeChildEnum:(x: number) => void = (x: number) => {}; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childEnum: LanguageEnum = LanguageEnum.English; + @Param childEnum1: LanguageEnum = LanguageEnum.English; + @Param childEnum2: LanguageEnum = LanguageEnum.English; + @Param childEnum3: LanguageEnum = LanguageEnum.English; + @Param childEnum4: LanguageEnum = LanguageEnum.English; + @Param childEnum5: LanguageEnum = LanguageEnum.English; + @Param childEnum6: LanguageEnum = LanguageEnum.English; + @Param childEnum7: LanguageEnum = LanguageEnum.English; + @Param childEnum8: LanguageEnum = LanguageEnum.English; + @Param childEnum9: LanguageEnum = LanguageEnum.English; + @Param childEnum10: LanguageEnum = LanguageEnum.English; + @Param childEnum11: LanguageEnum = LanguageEnum.English; + @Param childEnum12: LanguageEnum = LanguageEnum.English; + @Param childEnum13: LanguageEnum = LanguageEnum.English; + @Param childEnum14: LanguageEnum = LanguageEnum.English; + @Param childEnum15: LanguageEnum = LanguageEnum.English; + @Param childEnum16: LanguageEnum = LanguageEnum.English; + @Param childEnum17: LanguageEnum = LanguageEnum.English; + @Param childEnum18: LanguageEnum = LanguageEnum.English; + @Param childEnum19: LanguageEnum = LanguageEnum.English; + @Param childEnum20: LanguageEnum = LanguageEnum.English; + @Param childEnum21: LanguageEnum = LanguageEnum.English; + @Param childEnum22: LanguageEnum = LanguageEnum.English; + @Param childEnum23: LanguageEnum = LanguageEnum.English; + @Param childEnum24: LanguageEnum = LanguageEnum.English; + @Param childEnum25: LanguageEnum = LanguageEnum.English; + @Param childEnum26: LanguageEnum = LanguageEnum.English; + @Param childEnum27: LanguageEnum = LanguageEnum.English; + @Param childEnum28: LanguageEnum = LanguageEnum.English; + @Param childEnum29: LanguageEnum = LanguageEnum.English; + @Param childEnum30: LanguageEnum = LanguageEnum.English; + @Param childEnum31: LanguageEnum = LanguageEnum.English; + @Param childEnum32: LanguageEnum = LanguageEnum.English; + @Param childEnum33: LanguageEnum = LanguageEnum.English; + @Param childEnum34: LanguageEnum = LanguageEnum.English; + @Param childEnum35: LanguageEnum = LanguageEnum.English; + @Param childEnum36: LanguageEnum = LanguageEnum.English; + @Param childEnum37: LanguageEnum = LanguageEnum.English; + @Param childEnum38: LanguageEnum = LanguageEnum.English; + @Param childEnum39: LanguageEnum = LanguageEnum.English; + @Param childEnum40: LanguageEnum = LanguageEnum.English; + @Param childEnum41: LanguageEnum = LanguageEnum.English; + @Param childEnum42: LanguageEnum = LanguageEnum.English; + @Param childEnum43: LanguageEnum = LanguageEnum.English; + @Param childEnum44: LanguageEnum = LanguageEnum.English; + @Param childEnum45: LanguageEnum = LanguageEnum.English; + @Param childEnum46: LanguageEnum = LanguageEnum.English; + @Param childEnum47: LanguageEnum = LanguageEnum.English; + @Param childEnum48: LanguageEnum = LanguageEnum.English; + @Param childEnum49: LanguageEnum = LanguageEnum.English; b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -49,15 +99,20 @@ struct ChildParamEnumSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childEnum + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childEnum + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildEnum(1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildEnum(index%2) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamMapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamMapSample.ets index 232e86ff..ec7b6607 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamMapSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamMapSample.ets @@ -25,7 +25,57 @@ struct ChildParamMapSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childMap: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap1: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap2: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap3: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap4: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap5: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap6: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap7: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap8: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap9: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap10: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap11: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap12: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap13: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap14: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap15: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap16: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap17: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap18: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap19: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap20: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap21: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap22: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap23: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap24: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap25: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap26: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap27: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap28: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap29: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap30: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap31: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap32: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap33: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap34: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap35: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap36: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap37: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap38: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap39: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap40: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap41: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap42: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap43: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap44: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap45: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap46: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap47: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap48: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); + @Param childMap49: Map = new Map([[0, 'a'], [1, 'b'], [3, 'c']]); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -48,15 +98,20 @@ struct ChildParamMapSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childMap.get(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childMap.get(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.childMap.set(0,'good') + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.childMap.set(index,index.toString()) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamNumberSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamNumberSample.ets index dc8ac77f..3937d159 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamNumberSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamNumberSample.ets @@ -25,7 +25,57 @@ struct ChildParamNumberSample { @Event changeChildNumber:(x: number) => void = (x: number) => {}; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childNumber: number = 10; + @Param childNumber1: number = 10; + @Param childNumber2: number = 10; + @Param childNumber3: number = 10; + @Param childNumber4: number = 10; + @Param childNumber5: number = 10; + @Param childNumber6: number = 10; + @Param childNumber7: number = 10; + @Param childNumber8: number = 10; + @Param childNumber9: number = 10; + @Param childNumber10: number = 10; + @Param childNumber11: number = 10; + @Param childNumber12: number = 10; + @Param childNumber13: number = 10; + @Param childNumber14: number = 10; + @Param childNumber15: number = 10; + @Param childNumber16: number = 10; + @Param childNumber17: number = 10; + @Param childNumber18: number = 10; + @Param childNumber19: number = 10; + @Param childNumber20: number = 10; + @Param childNumber21: number = 10; + @Param childNumber22: number = 10; + @Param childNumber23: number = 10; + @Param childNumber24: number = 10; + @Param childNumber25: number = 10; + @Param childNumber26: number = 10; + @Param childNumber27: number = 10; + @Param childNumber28: number = 10; + @Param childNumber29: number = 10; + @Param childNumber30: number = 10; + @Param childNumber31: number = 10; + @Param childNumber32: number = 10; + @Param childNumber33: number = 10; + @Param childNumber34: number = 10; + @Param childNumber35: number = 10; + @Param childNumber36: number = 10; + @Param childNumber37: number = 10; + @Param childNumber38: number = 10; + @Param childNumber39: number = 10; + @Param childNumber40: number = 10; + @Param childNumber41: number = 10; + @Param childNumber42: number = 10; + @Param childNumber43: number = 10; + @Param childNumber44: number = 10; + @Param childNumber45: number = 10; + @Param childNumber46: number = 10; + @Param childNumber47: number = 10; + @Param childNumber48: number = 10; + @Param childNumber49: number = 10; b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -48,15 +98,20 @@ struct ChildParamNumberSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childNumber + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childNumber + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildNumber(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildNumber(index%2) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamObjectSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamObjectSample.ets index 30db6cb9..3d313c64 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamObjectSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamObjectSample.ets @@ -25,7 +25,57 @@ struct ChildParamObjectSample { @Event changeChildObject:(x: number) => void = (x: number) => {}; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childObject: Object = "child Param" + @Param childObject1: Object = "child Param" + @Param childObject2: Object = "child Param" + @Param childObject3: Object = "child Param" + @Param childObject4: Object = "child Param" + @Param childObject5: Object = "child Param" + @Param childObject6: Object = "child Param" + @Param childObject7: Object = "child Param" + @Param childObject8: Object = "child Param" + @Param childObject9: Object = "child Param" + @Param childObject10: Object = "child Param" + @Param childObject11: Object = "child Param" + @Param childObject12: Object = "child Param" + @Param childObject13: Object = "child Param" + @Param childObject14: Object = "child Param" + @Param childObject15: Object = "child Param" + @Param childObject16: Object = "child Param" + @Param childObject17: Object = "child Param" + @Param childObject18: Object = "child Param" + @Param childObject19: Object = "child Param" + @Param childObject20: Object = "child Param" + @Param childObject21: Object = "child Param" + @Param childObject22: Object = "child Param" + @Param childObject23: Object = "child Param" + @Param childObject24: Object = "child Param" + @Param childObject25: Object = "child Param" + @Param childObject26: Object = "child Param" + @Param childObject27: Object = "child Param" + @Param childObject28: Object = "child Param" + @Param childObject29: Object = "child Param" + @Param childObject30: Object = "child Param" + @Param childObject31: Object = "child Param" + @Param childObject32: Object = "child Param" + @Param childObject33: Object = "child Param" + @Param childObject34: Object = "child Param" + @Param childObject35: Object = "child Param" + @Param childObject36: Object = "child Param" + @Param childObject37: Object = "child Param" + @Param childObject38: Object = "child Param" + @Param childObject39: Object = "child Param" + @Param childObject40: Object = "child Param" + @Param childObject41: Object = "child Param" + @Param childObject42: Object = "child Param" + @Param childObject43: Object = "child Param" + @Param childObject44: Object = "child Param" + @Param childObject45: Object = "child Param" + @Param childObject46: Object = "child Param" + @Param childObject47: Object = "child Param" + @Param childObject48: Object = "child Param" + @Param childObject49: Object = "child Param" b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -48,15 +98,20 @@ struct ChildParamObjectSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childObject + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childObject + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildObject(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildObject(index%2) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamSetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamSetSample.ets index 3568b9c1..76c4d003 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamSetSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamSetSample.ets @@ -25,7 +25,57 @@ struct ChildParamSetSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childSet: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet1: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet2: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet3: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet4: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet5: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet6: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet7: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet8: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet9: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet10: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet11: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet12: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet13: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet14: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet15: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet16: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet17: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet18: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet19: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet20: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet21: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet22: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet23: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet24: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet25: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet26: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet27: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet28: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet29: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet30: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet31: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet32: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet33: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet34: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet35: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet36: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet37: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet38: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet39: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet40: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet41: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet42: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet43: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet44: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet45: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet46: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet47: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet48: Set = new Set([0, 1, 2, 3, 4]); + @Param childSet49: Set = new Set([0, 1, 2, 3, 4]); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -50,15 +100,20 @@ struct ChildParamSetSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childSet.values() + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childSet.values() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.childSet.add(-1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.childSet.add(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamStringSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamStringSample.ets index 9d9b61e0..17b5e29a 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamStringSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamStringSample.ets @@ -26,7 +26,57 @@ struct ChildParamStringSample { @Event changeChildString:(x: number) => void = (x: number) => {}; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Param childString: string = 'childString'; + @Param childString1: string = 'childString'; + @Param childString2: string = 'childString'; + @Param childString3: string = 'childString'; + @Param childString4: string = 'childString'; + @Param childString5: string = 'childString'; + @Param childString6: string = 'childString'; + @Param childString7: string = 'childString'; + @Param childString8: string = 'childString'; + @Param childString9: string = 'childString'; + @Param childString10: string = 'childString'; + @Param childString11: string = 'childString'; + @Param childString12: string = 'childString'; + @Param childString13: string = 'childString'; + @Param childString14: string = 'childString'; + @Param childString15: string = 'childString'; + @Param childString16: string = 'childString'; + @Param childString17: string = 'childString'; + @Param childString18: string = 'childString'; + @Param childString19: string = 'childString'; + @Param childString20: string = 'childString'; + @Param childString21: string = 'childString'; + @Param childString22: string = 'childString'; + @Param childString23: string = 'childString'; + @Param childString24: string = 'childString'; + @Param childString25: string = 'childString'; + @Param childString26: string = 'childString'; + @Param childString27: string = 'childString'; + @Param childString28: string = 'childString'; + @Param childString29: string = 'childString'; + @Param childString30: string = 'childString'; + @Param childString31: string = 'childString'; + @Param childString32: string = 'childString'; + @Param childString33: string = 'childString'; + @Param childString34: string = 'childString'; + @Param childString35: string = 'childString'; + @Param childString36: string = 'childString'; + @Param childString37: string = 'childString'; + @Param childString38: string = 'childString'; + @Param childString39: string = 'childString'; + @Param childString40: string = 'childString'; + @Param childString41: string = 'childString'; + @Param childString42: string = 'childString'; + @Param childString43: string = 'childString'; + @Param childString44: string = 'childString'; + @Param childString45: string = 'childString'; + @Param childString46: string = 'childString'; + @Param childString47: string = 'childString'; + @Param childString48: string = 'childString'; + @Param childString49: string = 'childString'; b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -49,15 +99,20 @@ struct ChildParamStringSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childString + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childString + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildString(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildString(index%2) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamUnionSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamUnionSample.ets index 452fef9f..1756e17f 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamUnionSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/param/ParamUnionSample.ets @@ -20,17 +20,69 @@ import { StateUtils } from '../StateUtils'; const timeHelper: TimeHelper = new TimeHelper('ParamUnionSample') let isType: boolean = true + @ComponentV2 struct ChildParamUnionSample { - @Event changeChildUnion:(x: number) => void = (x: number) => {}; + @Event changeChildUnion: (x: number) => void = (x: number) => { + }; a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - @Param childUnion: null|undefined|number=0 + @Param childUnion: null | undefined | number = 0 + @Param childUnion1: null | undefined | number = 0 + @Param childUnion2: null | undefined | number = 0 + @Param childUnion3: null | undefined | number = 0 + @Param childUnion4: null | undefined | number = 0 + @Param childUnion5: null | undefined | number = 0 + @Param childUnion6: null | undefined | number = 0 + @Param childUnion7: null | undefined | number = 0 + @Param childUnion8: null | undefined | number = 0 + @Param childUnion9: null | undefined | number = 0 + @Param childUnion10: null | undefined | number = 0 + @Param childUnion11: null | undefined | number = 0 + @Param childUnion12: null | undefined | number = 0 + @Param childUnion13: null | undefined | number = 0 + @Param childUnion14: null | undefined | number = 0 + @Param childUnion15: null | undefined | number = 0 + @Param childUnion16: null | undefined | number = 0 + @Param childUnion17: null | undefined | number = 0 + @Param childUnion18: null | undefined | number = 0 + @Param childUnion19: null | undefined | number = 0 + @Param childUnion20: null | undefined | number = 0 + @Param childUnion21: null | undefined | number = 0 + @Param childUnion22: null | undefined | number = 0 + @Param childUnion23: null | undefined | number = 0 + @Param childUnion24: null | undefined | number = 0 + @Param childUnion25: null | undefined | number = 0 + @Param childUnion26: null | undefined | number = 0 + @Param childUnion27: null | undefined | number = 0 + @Param childUnion28: null | undefined | number = 0 + @Param childUnion29: null | undefined | number = 0 + @Param childUnion30: null | undefined | number = 0 + @Param childUnion31: null | undefined | number = 0 + @Param childUnion32: null | undefined | number = 0 + @Param childUnion33: null | undefined | number = 0 + @Param childUnion34: null | undefined | number = 0 + @Param childUnion35: null | undefined | number = 0 + @Param childUnion36: null | undefined | number = 0 + @Param childUnion37: null | undefined | number = 0 + @Param childUnion38: null | undefined | number = 0 + @Param childUnion39: null | undefined | number = 0 + @Param childUnion40: null | undefined | number = 0 + @Param childUnion41: null | undefined | number = 0 + @Param childUnion42: null | undefined | number = 0 + @Param childUnion43: null | undefined | number = 0 + @Param childUnion44: null | undefined | number = 0 + @Param childUnion45: null | undefined | number = 0 + @Param childUnion46: null | undefined | number = 0 + @Param childUnion47: null | undefined | number = 0 + @Param childUnion48: null | undefined | number = 0 + @Param childUnion49: null | undefined | number = 0 b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.changeChildUnion(index%2) + this.changeChildUnion(index % 2) } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) @@ -42,21 +94,26 @@ struct ChildParamUnionSample { build() { Column({ space: 15 }) { - Text(StateUtils.isType(isType,timeHelper) ? `child value: ${this.childUnion}` : + Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.childUnion}` : `child value: ${this.childUnion}`) Button('child click: 读@Param的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.childUnion + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.childUnion + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Param的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.changeChildUnion(1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.changeChildUnion(index % 2) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -67,14 +124,15 @@ struct ChildParamUnionSample { @Entry @ComponentV2 struct ParamUnionSample { - @Local parentUnion: null|undefined|number=0 - changeParentUnion:(type: number) => void = (type: number) => { - if(type==0){ - this.parentUnion=undefined - }else if(type==1){ - this.parentUnion=null + @Local parentUnion: null | undefined | number = 0 + changeParentUnion: (type: number) => void = (type: number) => { + if (type == 0) { + this.parentUnion = undefined + } else if (type == 1) { + this.parentUnion = null } }; + build() { Column({ space: 15 }) { Text('ParamUnionSample') @@ -86,10 +144,10 @@ struct ParamUnionSample { .id('changeUITimeTaken') .onClick(() => { isType = false - this.parentUnion=undefined + this.parentUnion = undefined timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildParamUnionSample({childUnion:this.parentUnion,changeChildUnion:this.changeParentUnion.bind(this)}) + ChildParamUnionSample({ childUnion: this.parentUnion, changeChildUnion: this.changeParentUnion.bind(this) }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderArraySample.ets index 7e77a619..f1b398fc 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderArraySample.ets @@ -38,8 +38,58 @@ struct ChildProviderArraySample { @ComponentV2 struct ProviderArraySample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - @Provider() testData: Array = ['1','2'] + @Provider() testData: Array = ['1', '2'] + @Provider() testData1: Array = ['1', '2'] + @Provider() testData2: Array = ['1', '2'] + @Provider() testData3: Array = ['1', '2'] + @Provider() testData4: Array = ['1', '2'] + @Provider() testData5: Array = ['1', '2'] + @Provider() testData6: Array = ['1', '2'] + @Provider() testData7: Array = ['1', '2'] + @Provider() testData8: Array = ['1', '2'] + @Provider() testData9: Array = ['1', '2'] + @Provider() testData10: Array = ['1', '2'] + @Provider() testData11: Array = ['1', '2'] + @Provider() testData12: Array = ['1', '2'] + @Provider() testData13: Array = ['1', '2'] + @Provider() testData14: Array = ['1', '2'] + @Provider() testData15: Array = ['1', '2'] + @Provider() testData16: Array = ['1', '2'] + @Provider() testData17: Array = ['1', '2'] + @Provider() testData18: Array = ['1', '2'] + @Provider() testData19: Array = ['1', '2'] + @Provider() testData20: Array = ['1', '2'] + @Provider() testData21: Array = ['1', '2'] + @Provider() testData22: Array = ['1', '2'] + @Provider() testData23: Array = ['1', '2'] + @Provider() testData24: Array = ['1', '2'] + @Provider() testData25: Array = ['1', '2'] + @Provider() testData26: Array = ['1', '2'] + @Provider() testData27: Array = ['1', '2'] + @Provider() testData28: Array = ['1', '2'] + @Provider() testData29: Array = ['1', '2'] + @Provider() testData30: Array = ['1', '2'] + @Provider() testData31: Array = ['1', '2'] + @Provider() testData32: Array = ['1', '2'] + @Provider() testData33: Array = ['1', '2'] + @Provider() testData34: Array = ['1', '2'] + @Provider() testData35: Array = ['1', '2'] + @Provider() testData36: Array = ['1', '2'] + @Provider() testData37: Array = ['1', '2'] + @Provider() testData38: Array = ['1', '2'] + @Provider() testData39: Array = ['1', '2'] + @Provider() testData40: Array = ['1', '2'] + @Provider() testData41: Array = ['1', '2'] + @Provider() testData42: Array = ['1', '2'] + @Provider() testData43: Array = ['1', '2'] + @Provider() testData44: Array = ['1', '2'] + @Provider() testData45: Array = ['1', '2'] + @Provider() testData46: Array = ['1', '2'] + @Provider() testData47: Array = ['1', '2'] + @Provider() testData48: Array = ['1', '2'] + @Provider() testData49: Array = ['1', '2'] b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -71,15 +121,20 @@ struct ProviderArraySample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData[index] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provider的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData[0] = '世界你好' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData[index] = index.toString() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderArraySample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderBooleanSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderBooleanSample.ets index b41beeb6..bcb0b2dd 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderBooleanSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderBooleanSample.ets @@ -39,8 +39,58 @@ struct ChildProviderBooleanSample { struct ProviderBooleanSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Provider() testData: boolean = true; + @Provider() testData1: boolean = true + @Provider() testData2: boolean = true + @Provider() testData3: boolean = true + @Provider() testData4: boolean = true + @Provider() testData5: boolean = true + @Provider() testData6: boolean = true + @Provider() testData7: boolean = true + @Provider() testData8: boolean = true + @Provider() testData9: boolean = true + @Provider() testData10: boolean = true + @Provider() testData11: boolean = true + @Provider() testData12: boolean = true + @Provider() testData13: boolean = true + @Provider() testData14: boolean = true + @Provider() testData15: boolean = true + @Provider() testData16: boolean = true + @Provider() testData17: boolean = true + @Provider() testData18: boolean = true + @Provider() testData19: boolean = true + @Provider() testData20: boolean = true + @Provider() testData21: boolean = true + @Provider() testData22: boolean = true + @Provider() testData23: boolean = true + @Provider() testData24: boolean = true + @Provider() testData25: boolean = true + @Provider() testData26: boolean = true + @Provider() testData27: boolean = true + @Provider() testData28: boolean = true + @Provider() testData29: boolean = true + @Provider() testData30: boolean = true + @Provider() testData31: boolean = true + @Provider() testData32: boolean = true + @Provider() testData33: boolean = true + @Provider() testData34: boolean = true + @Provider() testData35: boolean = true + @Provider() testData36: boolean = true + @Provider() testData37: boolean = true + @Provider() testData38: boolean = true + @Provider() testData39: boolean = true + @Provider() testData40: boolean = true + @Provider() testData41: boolean = true + @Provider() testData42: boolean = true + @Provider() testData43: boolean = true + @Provider() testData44: boolean = true + @Provider() testData45: boolean = true + @Provider() testData46: boolean = true + @Provider() testData47: boolean = true + @Provider() testData48: boolean = true + @Provider() testData49: boolean = true b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: boolean[] = [false, true] + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -72,16 +122,20 @@ struct ProviderBooleanSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provider的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let a = !this.testData + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = a + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = this.tmpArr[index % 2] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderBooleanSample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderClassSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderClassSample.ets index 1f009261..6b391fc5 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderClassSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderClassSample.ets @@ -40,8 +40,58 @@ struct ChildProviderClassSample { struct ProviderClassSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Provider() testData: ClassModel = classModel; + @Provider() testData1: ClassModel = classModel + @Provider() testData2: ClassModel = classModel + @Provider() testData3: ClassModel = classModel + @Provider() testData4: ClassModel = classModel + @Provider() testData5: ClassModel = classModel + @Provider() testData6: ClassModel = classModel + @Provider() testData7: ClassModel = classModel + @Provider() testData8: ClassModel = classModel + @Provider() testData9: ClassModel = classModel + @Provider() testData10: ClassModel = classModel + @Provider() testData11: ClassModel = classModel + @Provider() testData12: ClassModel = classModel + @Provider() testData13: ClassModel = classModel + @Provider() testData14: ClassModel = classModel + @Provider() testData15: ClassModel = classModel + @Provider() testData16: ClassModel = classModel + @Provider() testData17: ClassModel = classModel + @Provider() testData18: ClassModel = classModel + @Provider() testData19: ClassModel = classModel + @Provider() testData20: ClassModel = classModel + @Provider() testData21: ClassModel = classModel + @Provider() testData22: ClassModel = classModel + @Provider() testData23: ClassModel = classModel + @Provider() testData24: ClassModel = classModel + @Provider() testData25: ClassModel = classModel + @Provider() testData26: ClassModel = classModel + @Provider() testData27: ClassModel = classModel + @Provider() testData28: ClassModel = classModel + @Provider() testData29: ClassModel = classModel + @Provider() testData30: ClassModel = classModel + @Provider() testData31: ClassModel = classModel + @Provider() testData32: ClassModel = classModel + @Provider() testData33: ClassModel = classModel + @Provider() testData34: ClassModel = classModel + @Provider() testData35: ClassModel = classModel + @Provider() testData36: ClassModel = classModel + @Provider() testData37: ClassModel = classModel + @Provider() testData38: ClassModel = classModel + @Provider() testData39: ClassModel = classModel + @Provider() testData40: ClassModel = classModel + @Provider() testData41: ClassModel = classModel + @Provider() testData42: ClassModel = classModel + @Provider() testData43: ClassModel = classModel + @Provider() testData44: ClassModel = classModel + @Provider() testData45: ClassModel = classModel + @Provider() testData46: ClassModel = classModel + @Provider() testData47: ClassModel = classModel + @Provider() testData48: ClassModel = classModel + @Provider() testData49: ClassModel = classModel b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: ClassModel[] = [classModel1, classModel2] + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -73,15 +123,20 @@ struct ProviderClassSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provider的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = classModel3 + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = this.tmpArr[index % 2] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderClassSample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderDateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderDateSample.ets index 6e973050..f6935783 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderDateSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderDateSample.ets @@ -39,8 +39,58 @@ struct ChildProviderDateSample { struct ProviderDateSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Provider() testData: Date = new Date(); + @Provider() testData1: Date = new Date() + @Provider() testData2: Date = new Date() + @Provider() testData3: Date = new Date() + @Provider() testData4: Date = new Date() + @Provider() testData5: Date = new Date() + @Provider() testData6: Date = new Date() + @Provider() testData7: Date = new Date() + @Provider() testData8: Date = new Date() + @Provider() testData9: Date = new Date() + @Provider() testData10: Date = new Date() + @Provider() testData11: Date = new Date() + @Provider() testData12: Date = new Date() + @Provider() testData13: Date = new Date() + @Provider() testData14: Date = new Date() + @Provider() testData15: Date = new Date() + @Provider() testData16: Date = new Date() + @Provider() testData17: Date = new Date() + @Provider() testData18: Date = new Date() + @Provider() testData19: Date = new Date() + @Provider() testData20: Date = new Date() + @Provider() testData21: Date = new Date() + @Provider() testData22: Date = new Date() + @Provider() testData23: Date = new Date() + @Provider() testData24: Date = new Date() + @Provider() testData25: Date = new Date() + @Provider() testData26: Date = new Date() + @Provider() testData27: Date = new Date() + @Provider() testData28: Date = new Date() + @Provider() testData29: Date = new Date() + @Provider() testData30: Date = new Date() + @Provider() testData31: Date = new Date() + @Provider() testData32: Date = new Date() + @Provider() testData33: Date = new Date() + @Provider() testData34: Date = new Date() + @Provider() testData35: Date = new Date() + @Provider() testData36: Date = new Date() + @Provider() testData37: Date = new Date() + @Provider() testData38: Date = new Date() + @Provider() testData39: Date = new Date() + @Provider() testData40: Date = new Date() + @Provider() testData41: Date = new Date() + @Provider() testData42: Date = new Date() + @Provider() testData43: Date = new Date() + @Provider() testData44: Date = new Date() + @Provider() testData45: Date = new Date() + @Provider() testData46: Date = new Date() + @Provider() testData47: Date = new Date() + @Provider() testData48: Date = new Date() + @Provider() testData49: Date = new Date() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: number[] = [this.testData.getTime() - 60 * 60 * 1000, this.testData.getTime() - 30 * 60 * 1000] + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -72,16 +122,20 @@ struct ProviderDateSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provide的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let a = this.testData.getTime() + 10 * 60 * 60 * 1000 + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.setTime(a) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.setTime(this.tmpArr[index % 2]) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderDateSample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderMapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderMapSample.ets index bf68572e..7b401417 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderMapSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderMapSample.ets @@ -39,12 +39,62 @@ struct ChildProviderMapSample { struct ProviderMapSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Provider() testData: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData1: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData2: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData3: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData4: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData5: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData6: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData7: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData8: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData9: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData10: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData11: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData12: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData13: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData14: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData15: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData16: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData17: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData18: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData19: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData20: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData21: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData22: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData23: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData24: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData25: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData26: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData27: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData28: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData29: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData30: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData31: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData32: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData33: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData34: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData35: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData36: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData37: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData38: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData39: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData40: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData41: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData42: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData43: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData44: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData45: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData46: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData47: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData48: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + @Provider() testData49: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.testData.set(index,index.toString()) + this.testData.set(index, index.toString()) } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) @@ -64,22 +114,27 @@ struct ProviderMapSample { .id('changeUITimeTaken') .onClick(() => { isType = false - this.testData.set(3,'bye') + this.testData.set(3, 'bye') timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) Button('parent click: 读@Provider的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData.get(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData.get(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provider的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.set(3,'world') + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.set(index, index.toString()) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderMapSample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderNumberSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderNumberSample.ets index cf2fdd2c..c4c174be 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderNumberSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderNumberSample.ets @@ -39,7 +39,57 @@ struct ChildProviderNumberSample { struct ProviderNumberSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Provider() testData: number = 1; + @Provider() testData1: number = 0 + @Provider() testData2: number = 0 + @Provider() testData3: number = 0 + @Provider() testData4: number = 0 + @Provider() testData5: number = 0 + @Provider() testData6: number = 0 + @Provider() testData7: number = 0 + @Provider() testData8: number = 0 + @Provider() testData9: number = 0 + @Provider() testData10: number = 0 + @Provider() testData11: number = 0 + @Provider() testData12: number = 0 + @Provider() testData13: number = 0 + @Provider() testData14: number = 0 + @Provider() testData15: number = 0 + @Provider() testData16: number = 0 + @Provider() testData17: number = 0 + @Provider() testData18: number = 0 + @Provider() testData19: number = 0 + @Provider() testData20: number = 0 + @Provider() testData21: number = 0 + @Provider() testData22: number = 0 + @Provider() testData23: number = 0 + @Provider() testData24: number = 0 + @Provider() testData25: number = 0 + @Provider() testData26: number = 0 + @Provider() testData27: number = 0 + @Provider() testData28: number = 0 + @Provider() testData29: number = 0 + @Provider() testData30: number = 0 + @Provider() testData31: number = 0 + @Provider() testData32: number = 0 + @Provider() testData33: number = 0 + @Provider() testData34: number = 0 + @Provider() testData35: number = 0 + @Provider() testData36: number = 0 + @Provider() testData37: number = 0 + @Provider() testData38: number = 0 + @Provider() testData39: number = 0 + @Provider() testData40: number = 0 + @Provider() testData41: number = 0 + @Provider() testData42: number = 0 + @Provider() testData43: number = 0 + @Provider() testData44: number = 0 + @Provider() testData45: number = 0 + @Provider() testData46: number = 0 + @Provider() testData47: number = 0 + @Provider() testData48: number = 0 + @Provider() testData49: number = 0 b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -71,16 +121,20 @@ struct ProviderNumberSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provider的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let a: number = this.testData - 1 + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = a + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = index + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderNumberSample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderSetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderSetSample.ets index e6de9654..48d11719 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderSetSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderSetSample.ets @@ -39,7 +39,57 @@ struct ChildProviderSetSample { struct ProviderSetSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Provider() testData: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData1: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData2: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData3: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData4: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData5: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData6: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData7: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData8: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData9: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData10: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData11: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData12: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData13: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData14: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData15: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData16: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData17: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData18: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData19: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData20: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData21: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData22: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData23: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData24: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData25: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData26: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData27: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData28: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData29: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData30: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData31: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData32: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData33: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData34: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData35: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData36: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData37: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData38: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData39: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData40: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData41: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData42: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData43: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData44: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData45: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData46: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData47: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData48: Set = new Set([0, 1, 2, 3, 4]); + @Provider() testData49: Set = new Set([0, 1, 2, 3, 4]); b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -73,15 +123,20 @@ struct ProviderSetSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provider的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData.add(-1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData.add(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderSetSample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderStringSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderStringSample.ets index cc0e1a8b..4ed21e64 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderStringSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/provider/ProviderStringSample.ets @@ -39,7 +39,57 @@ struct ChildProviderStringSample { struct ProviderStringSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) @Provider() testData: string = 'hello, world'; + @Provider() testData1: string = '0' + @Provider() testData2: string = '0' + @Provider() testData3: string = '0' + @Provider() testData4: string = '0' + @Provider() testData5: string = '0' + @Provider() testData6: string = '0' + @Provider() testData7: string = '0' + @Provider() testData8: string = '0' + @Provider() testData9: string = '0' + @Provider() testData10: string = '0' + @Provider() testData11: string = '0' + @Provider() testData12: string = '0' + @Provider() testData13: string = '0' + @Provider() testData14: string = '0' + @Provider() testData15: string = '0' + @Provider() testData16: string = '0' + @Provider() testData17: string = '0' + @Provider() testData18: string = '0' + @Provider() testData19: string = '0' + @Provider() testData20: string = '0' + @Provider() testData21: string = '0' + @Provider() testData22: string = '0' + @Provider() testData23: string = '0' + @Provider() testData24: string = '0' + @Provider() testData25: string = '0' + @Provider() testData26: string = '0' + @Provider() testData27: string = '0' + @Provider() testData28: string = '0' + @Provider() testData29: string = '0' + @Provider() testData30: string = '0' + @Provider() testData31: string = '0' + @Provider() testData32: string = '0' + @Provider() testData33: string = '0' + @Provider() testData34: string = '0' + @Provider() testData35: string = '0' + @Provider() testData36: string = '0' + @Provider() testData37: string = '0' + @Provider() testData38: string = '0' + @Provider() testData39: string = '0' + @Provider() testData40: string = '0' + @Provider() testData41: string = '0' + @Provider() testData42: string = '0' + @Provider() testData43: string = '0' + @Provider() testData44: string = '0' + @Provider() testData45: string = '0' + @Provider() testData46: string = '0' + @Provider() testData47: string = '0' + @Provider() testData48: string = '0' + @Provider() testData49: string = '0' b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @Local isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -71,15 +121,20 @@ struct ProviderStringSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.testData + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.testData + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('parent click: 写@Provider的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.testData = '世界你好' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.testData = index.toString() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) ChildProviderStringSample() diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceArraySample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceArraySample.ets index fb12a784..06d004c0 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceArraySample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceArraySample.ets @@ -30,8 +30,58 @@ class Arr { @Component struct ChildTraceArraySample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - test : Arr = new Arr() + test: Arr = new Arr() + test1: Arr = new Arr() + test2: Arr = new Arr() + test3: Arr = new Arr() + test4: Arr = new Arr() + test5: Arr = new Arr() + test6: Arr = new Arr() + test7: Arr = new Arr() + test8: Arr = new Arr() + test9: Arr = new Arr() + test10: Arr = new Arr() + test11: Arr = new Arr() + test12: Arr = new Arr() + test13: Arr = new Arr() + test14: Arr = new Arr() + test15: Arr = new Arr() + test16: Arr = new Arr() + test17: Arr = new Arr() + test18: Arr = new Arr() + test19: Arr = new Arr() + test20: Arr = new Arr() + test21: Arr = new Arr() + test22: Arr = new Arr() + test23: Arr = new Arr() + test24: Arr = new Arr() + test25: Arr = new Arr() + test26: Arr = new Arr() + test27: Arr = new Arr() + test28: Arr = new Arr() + test29: Arr = new Arr() + test30: Arr = new Arr() + test31: Arr = new Arr() + test32: Arr = new Arr() + test33: Arr = new Arr() + test34: Arr = new Arr() + test35: Arr = new Arr() + test36: Arr = new Arr() + test37: Arr = new Arr() + test38: Arr = new Arr() + test39: Arr = new Arr() + test40: Arr = new Arr() + test41: Arr = new Arr() + test42: Arr = new Arr() + test43: Arr = new Arr() + test44: Arr = new Arr() + test45: Arr = new Arr() + test46: Arr = new Arr() + test47: Arr = new Arr() + test48: Arr = new Arr() + test49: Arr = new Arr() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -47,21 +97,26 @@ struct ChildTraceArraySample { } build() { - Column({space: 15}) { - Text(StateUtils.isType(isType, timeHelper) ?`child value: ${this.test.numberArr[0]}`:`child value: ${this.test.numberArr[0]}`) + Column({ space: 15 }) { + Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.test.numberArr[0]}` : `child value: ${this.test.numberArr[0]}`) Button('child clink: 读@Trace的耗时') .id('getStateTimeTaken') - .onClick(()=>{ + .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.test.numberArr[0] + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.test.numberArr[index] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) - Button('child clink: 写@Trace的耗时') + Button('child clink: 写@Trace的耗时') .id('setStateTimeTaken') - .onClick(()=>{ + .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.test.numberArr[0] = 100000 + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.test.numberArr[index] = index + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -74,20 +129,20 @@ struct TraceArraySample { testData: Arr = new Arr(); build() { - Column({space: 15}) { + Column({ space: 15 }) { Text('TraceArraySample') .fontSize('25') .textAlign(TextAlign.Center) .margin({ bottom: 50, top: 50 }) - Text(this.testData.numberArr[0] ? `parent value: ${this.testData.numberArr[0]}` : `parent value: 1`) + Text(this.testData.numberArr[0] ? `parent value: ${this.testData.numberArr[0]}` : `parent value:${this.testData.numberArr[0]}`) Button('parent click') .id('changeUITimeTaken') - .onClick(()=>{ + .onClick(() => { isType = false this.testData.numberArr[0] = 1000 timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildTraceArraySample({ test : this.testData }) + ChildTraceArraySample({ test: this.testData }) } } } \ No newline at end of file diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceBooleanSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceBooleanSample.ets index 3987a48a..a58c3940 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceBooleanSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceBooleanSample.ets @@ -21,8 +21,6 @@ import { StateUtils } from '../StateUtils'; const timeHelper: TimeHelper = new TimeHelper('TraceBooleanSample'); let isType: boolean = true -let nextId: number = 0; - @ObservedV2 class Father { @Trace a: boolean = true; @@ -31,9 +29,59 @@ class Father { @Component struct ChildTraceBooleanSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - Arr : Father = new Father() + Arr: Father = new Father() + Arr1: Father = new Father() + Arr2: Father = new Father() + Arr3: Father = new Father() + Arr4: Father = new Father() + Arr5: Father = new Father() + Arr6: Father = new Father() + Arr7: Father = new Father() + Arr8: Father = new Father() + Arr9: Father = new Father() + Arr10: Father = new Father() + Arr11: Father = new Father() + Arr12: Father = new Father() + Arr13: Father = new Father() + Arr14: Father = new Father() + Arr15: Father = new Father() + Arr16: Father = new Father() + Arr17: Father = new Father() + Arr18: Father = new Father() + Arr19: Father = new Father() + Arr20: Father = new Father() + Arr21: Father = new Father() + Arr22: Father = new Father() + Arr23: Father = new Father() + Arr24: Father = new Father() + Arr25: Father = new Father() + Arr26: Father = new Father() + Arr27: Father = new Father() + Arr28: Father = new Father() + Arr29: Father = new Father() + Arr30: Father = new Father() + Arr31: Father = new Father() + Arr32: Father = new Father() + Arr33: Father = new Father() + Arr34: Father = new Father() + Arr35: Father = new Father() + Arr36: Father = new Father() + Arr37: Father = new Father() + Arr38: Father = new Father() + Arr39: Father = new Father() + Arr40: Father = new Father() + Arr41: Father = new Father() + Arr42: Father = new Father() + Arr43: Father = new Father() + Arr44: Father = new Father() + Arr45: Father = new Father() + Arr46: Father = new Father() + Arr47: Father = new Father() + Arr48: Father = new Father() + Arr49: Father = new Father() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: boolean[] = [false, true] + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -50,21 +98,25 @@ struct ChildTraceBooleanSample { build() { Column({ space: 15 }) { - Text(StateUtils.isType(isType, timeHelper) ?`child value: ${this.Arr.a}`:`child value: ${this.Arr.a}`) + Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.Arr.a}` : `child value: ${this.Arr.a}`) Button('child click: 读@Trace的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.Arr.a + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.Arr.a + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Trace的耗时') .id('setStateTimeTaken') .onClick(() => { - let value = !this.Arr.a isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.Arr.a = value + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.Arr.a = !this.Arr.a + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -92,7 +144,7 @@ struct TraceBooleanSample { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildTraceBooleanSample({ Arr : this.parentBoolean }) + ChildTraceBooleanSample({ Arr: this.parentBoolean }) } } } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceClassSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceClassSample.ets index 6a3f9868..1c798ff9 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceClassSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceClassSample.ets @@ -24,15 +24,65 @@ let isType: boolean = true @ObservedV2 class Father { - @Trace obj : ClassModel = classModel1; + @Trace obj: ClassModel = classModel1; } @Component struct ChildTraceClassSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - Arr : Father = new Father() + Arr: Father = new Father() + Arr1: Father = new Father() + Arr2: Father = new Father() + Arr3: Father = new Father() + Arr4: Father = new Father() + Arr5: Father = new Father() + Arr6: Father = new Father() + Arr7: Father = new Father() + Arr8: Father = new Father() + Arr9: Father = new Father() + Arr10: Father = new Father() + Arr11: Father = new Father() + Arr12: Father = new Father() + Arr13: Father = new Father() + Arr14: Father = new Father() + Arr15: Father = new Father() + Arr16: Father = new Father() + Arr17: Father = new Father() + Arr18: Father = new Father() + Arr19: Father = new Father() + Arr20: Father = new Father() + Arr21: Father = new Father() + Arr22: Father = new Father() + Arr23: Father = new Father() + Arr24: Father = new Father() + Arr25: Father = new Father() + Arr26: Father = new Father() + Arr27: Father = new Father() + Arr28: Father = new Father() + Arr29: Father = new Father() + Arr30: Father = new Father() + Arr31: Father = new Father() + Arr32: Father = new Father() + Arr33: Father = new Father() + Arr34: Father = new Father() + Arr35: Father = new Father() + Arr36: Father = new Father() + Arr37: Father = new Father() + Arr38: Father = new Father() + Arr39: Father = new Father() + Arr40: Father = new Father() + Arr41: Father = new Father() + Arr42: Father = new Father() + Arr43: Father = new Father() + Arr44: Father = new Father() + Arr45: Father = new Father() + Arr46: Father = new Father() + Arr47: Father = new Father() + Arr48: Father = new Father() + Arr49: Father = new Father() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) tmpArr: ClassModel[] = [classModel, classModel1] + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -49,20 +99,25 @@ struct ChildTraceClassSample { build() { Column({ space: 15 }) { - Text(StateUtils.isType(isType, timeHelper) ?`child value: ${this.Arr.obj.value}`:`child value: ${this.Arr.obj.value}`) + Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.Arr.obj.value}` : `child value: ${this.Arr.obj.value}`) Button('child click: 读@Trace的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.Arr.obj.value + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.Arr.obj.value + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Trace的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.Arr.obj = classModel3 + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.Arr.obj = this.tmpArr[index % 2] + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -89,7 +144,7 @@ struct TraceClassSample { this.parentClass.obj = classModel2 timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildTraceClassSample({ Arr : this.parentClass }) + ChildTraceClassSample({ Arr: this.parentClass }) } } } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceDateSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceDateSample.ets index 8065c9ee..2d61b470 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceDateSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceDateSample.ets @@ -30,11 +30,61 @@ class Info { @Component struct ChildTraceDateSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - time : Date = new Date() + time: Date = new Date() + time1: Date = new Date() + time2: Date = new Date() + time3: Date = new Date() + time4: Date = new Date() + time5: Date = new Date() + time6: Date = new Date() + time7: Date = new Date() + time8: Date = new Date() + time9: Date = new Date() + time10: Date = new Date() + time11: Date = new Date() + time12: Date = new Date() + time13: Date = new Date() + time14: Date = new Date() + time15: Date = new Date() + time16: Date = new Date() + time17: Date = new Date() + time18: Date = new Date() + time19: Date = new Date() + time20: Date = new Date() + time21: Date = new Date() + time22: Date = new Date() + time23: Date = new Date() + time24: Date = new Date() + time25: Date = new Date() + time26: Date = new Date() + time27: Date = new Date() + time28: Date = new Date() + time29: Date = new Date() + time30: Date = new Date() + time31: Date = new Date() + time32: Date = new Date() + time33: Date = new Date() + time34: Date = new Date() + time35: Date = new Date() + time36: Date = new Date() + time37: Date = new Date() + time38: Date = new Date() + time39: Date = new Date() + time40: Date = new Date() + time41: Date = new Date() + time42: Date = new Date() + time43: Date = new Date() + time44: Date = new Date() + time45: Date = new Date() + time46: Date = new Date() + time47: Date = new Date() + time48: Date = new Date() + time49: Date = new Date() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { - let arr: number[] = [this.time.getTime() - 60 * 60 * 1000, this.time.getTime() - 20 * 60 * 1000] + let arr: number[] = [this.time.getTime() - 60 * 60 * 1000, this.time.getTime() - 20 * 60 * 1000] timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { this.time.setTime(arr[index%2]) @@ -49,21 +99,26 @@ struct ChildTraceDateSample { build() { Column({ space: 15 }) { - Text(StateUtils.isType(isType, timeHelper) ?`child value: ${this.time.toString()}`:`child value: ${this.time.toString()}`) + Text(StateUtils.isType(isType, timeHelper) ? `child value: ${this.time.toString()}` : `child value: ${this.time.toString()}`) Button('child click: 读@Trace的耗时') .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.time + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.time.getTime() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Trace的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true - let timeType: number = this.time.getTime() + 10 * 60 * 60 * 1000 + this.isTypeState = !this.isTypeState + let timeType: number[] = [this.time.getTime() + 10 * 60 * 60 * 1000, this.time.getTime() + 20 * 60 * 60 * 1000] timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.time.setTime(timeType) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.time.setTime(timeType[index%2]) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -76,7 +131,7 @@ struct TraceDateSample { testDate: Info = new Info(); build() { - Column({space: 15}) { + Column({ space: 15 }) { Text('TraceDateSample') .fontSize('25') .textAlign(TextAlign.Center) @@ -84,12 +139,12 @@ struct TraceDateSample { Text(this.testDate.selectedDate.toTimeString() ? `parent value: ${this.testDate.selectedDate.toTimeString()}` : `parent value: ${this.testDate.selectedDate.toTimeString()}`) Button('parent click') .id('changeUITimeTaken') - .onClick(()=>{ + .onClick(() => { isType = false this.testDate.selectedDate.setTime(this.testDate.selectedDate.getTime() + 100 * 60 * 60 * 1000) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildTraceDateSample({ time : this.testDate.selectedDate }) + ChildTraceDateSample({ time: this.testDate.selectedDate }) } } } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceMapSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceMapSample.ets index 7f5a2f12..d9c35b8d 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceMapSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceMapSample.ets @@ -30,13 +30,63 @@ class Info { @Component struct ChildTraceMapSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - mapType : Info = new Info() + mapType: Info = new Info() + mapType1: Info = new Info() + mapType2: Info = new Info() + mapType3: Info = new Info() + mapType4: Info = new Info() + mapType5: Info = new Info() + mapType6: Info = new Info() + mapType7: Info = new Info() + mapType8: Info = new Info() + mapType9: Info = new Info() + mapType10: Info = new Info() + mapType11: Info = new Info() + mapType12: Info = new Info() + mapType13: Info = new Info() + mapType14: Info = new Info() + mapType15: Info = new Info() + mapType16: Info = new Info() + mapType17: Info = new Info() + mapType18: Info = new Info() + mapType19: Info = new Info() + mapType20: Info = new Info() + mapType21: Info = new Info() + mapType22: Info = new Info() + mapType23: Info = new Info() + mapType24: Info = new Info() + mapType25: Info = new Info() + mapType26: Info = new Info() + mapType27: Info = new Info() + mapType28: Info = new Info() + mapType29: Info = new Info() + mapType30: Info = new Info() + mapType31: Info = new Info() + mapType32: Info = new Info() + mapType33: Info = new Info() + mapType34: Info = new Info() + mapType35: Info = new Info() + mapType36: Info = new Info() + mapType37: Info = new Info() + mapType38: Info = new Info() + mapType39: Info = new Info() + mapType40: Info = new Info() + mapType41: Info = new Info() + mapType42: Info = new Info() + mapType43: Info = new Info() + mapType44: Info = new Info() + mapType45: Info = new Info() + mapType46: Info = new Info() + mapType47: Info = new Info() + mapType48: Info = new Info() + mapType49: Info = new Info() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { - this.mapType.memberMap.set(index,index.toString()) + this.mapType.memberMap.set(index, index.toString()) } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, false)) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, false)) @@ -54,15 +104,20 @@ struct ChildTraceMapSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.mapType.memberMap.get(0) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.mapType.memberMap.get(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Trace的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.mapType.memberMap.set(0,'good') + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.mapType.memberMap.set(index, index.toString()) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -75,7 +130,7 @@ struct TraceMapSample { testDate: Info = new Info(); build() { - Column({space: 15}) { + Column({ space: 15 }) { Text('TraceMapSample') .fontSize('25') .textAlign(TextAlign.Center) @@ -83,12 +138,12 @@ struct TraceMapSample { Text(`parent value: ${this.testDate.memberMap.get(0)}`) Button('parent click') .id('changeUITimeTaken') - .onClick(()=>{ + .onClick(() => { isType = false this.testDate.memberMap = new Map([[0, 'apple'], [1, 'banana'], [3, 'cat']]) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildTraceMapSample({ mapType : this.testDate }) + ChildTraceMapSample({ mapType: this.testDate }) } } } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceNumberSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceNumberSample.ets index eec10008..b6a7e3bf 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceNumberSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceNumberSample.ets @@ -29,8 +29,58 @@ class Son { @Component struct ChildTraceNumberSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - Arr : Son = new Son() + Arr: Son = new Son() + Arr1: Son = new Son() + Arr2: Son = new Son() + Arr3: Son = new Son() + Arr4: Son = new Son() + Arr5: Son = new Son() + Arr6: Son = new Son() + Arr7: Son = new Son() + Arr8: Son = new Son() + Arr9: Son = new Son() + Arr10: Son = new Son() + Arr11: Son = new Son() + Arr12: Son = new Son() + Arr13: Son = new Son() + Arr14: Son = new Son() + Arr15: Son = new Son() + Arr16: Son = new Son() + Arr17: Son = new Son() + Arr18: Son = new Son() + Arr19: Son = new Son() + Arr20: Son = new Son() + Arr21: Son = new Son() + Arr22: Son = new Son() + Arr23: Son = new Son() + Arr24: Son = new Son() + Arr25: Son = new Son() + Arr26: Son = new Son() + Arr27: Son = new Son() + Arr28: Son = new Son() + Arr29: Son = new Son() + Arr30: Son = new Son() + Arr31: Son = new Son() + Arr32: Son = new Son() + Arr33: Son = new Son() + Arr34: Son = new Son() + Arr35: Son = new Son() + Arr36: Son = new Son() + Arr37: Son = new Son() + Arr38: Son = new Son() + Arr39: Son = new Son() + Arr40: Son = new Son() + Arr41: Son = new Son() + Arr42: Son = new Son() + Arr43: Son = new Son() + Arr44: Son = new Son() + Arr45: Son = new Son() + Arr46: Son = new Son() + Arr47: Son = new Son() + Arr48: Son = new Son() + Arr49: Son = new Son() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -53,16 +103,20 @@ struct ChildTraceNumberSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.Arr.age + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.Arr + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Trace的耗时') .id('setStateTimeTaken') .onClick(() => { - let tmp = this.Arr.age - 1 isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.Arr.age = tmp + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.Arr.age = index + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceSetSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceSetSample.ets index 6b01f019..3f3b9199 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceSetSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceSetSample.ets @@ -30,8 +30,58 @@ class Info { @Component struct ChildTraceSetSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - setType : Info = new Info() + setType: Info = new Info() + setType1: Info = new Info() + setType2: Info = new Info() + setType3: Info = new Info() + setType4: Info = new Info() + setType5: Info = new Info() + setType6: Info = new Info() + setType7: Info = new Info() + setType8: Info = new Info() + setType9: Info = new Info() + setType10: Info = new Info() + setType11: Info = new Info() + setType12: Info = new Info() + setType13: Info = new Info() + setType14: Info = new Info() + setType15: Info = new Info() + setType16: Info = new Info() + setType17: Info = new Info() + setType18: Info = new Info() + setType19: Info = new Info() + setType20: Info = new Info() + setType21: Info = new Info() + setType22: Info = new Info() + setType23: Info = new Info() + setType24: Info = new Info() + setType25: Info = new Info() + setType26: Info = new Info() + setType27: Info = new Info() + setType28: Info = new Info() + setType29: Info = new Info() + setType30: Info = new Info() + setType31: Info = new Info() + setType32: Info = new Info() + setType33: Info = new Info() + setType34: Info = new Info() + setType35: Info = new Info() + setType36: Info = new Info() + setType37: Info = new Info() + setType38: Info = new Info() + setType39: Info = new Info() + setType40: Info = new Info() + setType41: Info = new Info() + setType42: Info = new Info() + setType43: Info = new Info() + setType44: Info = new Info() + setType45: Info = new Info() + setType46: Info = new Info() + setType47: Info = new Info() + setType48: Info = new Info() + setType49: Info = new Info() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -56,15 +106,20 @@ struct ChildTraceSetSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.setType.memberSet.values() + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.setType.memberSet.values() + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写@Trace的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.setType.memberSet.add(-1) + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.setType.memberSet.add(index) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -77,7 +132,7 @@ struct TraceSetSample { testDate: Info = new Info(); build() { - Column({space: 15}) { + Column({ space: 15 }) { Text('TraceSetSample') .fontSize('25') .textAlign(TextAlign.Center) @@ -85,12 +140,12 @@ struct TraceSetSample { Text(`parent value: ${Array.from(this.testDate.memberSet.values()).toString()}`) Button('parent click') .id('changeUITimeTaken') - .onClick(()=>{ + .onClick(() => { isType = false this.testDate.memberSet.add(10000) timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildTraceSetSample({ setType : this.testDate }) + ChildTraceSetSample({ setType: this.testDate }) } } } diff --git a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceStringSample.ets b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceStringSample.ets index 6ce574b0..a67784e6 100755 --- a/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceStringSample.ets +++ b/performance/arkui/benchmark_component/entry/src/main/ets/pages/stateManagement/trace/TraceStringSample.ets @@ -29,8 +29,58 @@ class Father { @Component struct ChildTraceStringSample { a = timeHelper.printStateTime(true, 1, new StateModel(StateConstants.CREATE_STATE, true)) - Arr : Father = new Father() + Arr: Father = new Father() + Arr1: Father = new Father() + Arr2: Father = new Father() + Arr3: Father = new Father() + Arr4: Father = new Father() + Arr5: Father = new Father() + Arr6: Father = new Father() + Arr7: Father = new Father() + Arr8: Father = new Father() + Arr9: Father = new Father() + Arr10: Father = new Father() + Arr11: Father = new Father() + Arr12: Father = new Father() + Arr13: Father = new Father() + Arr14: Father = new Father() + Arr15: Father = new Father() + Arr16: Father = new Father() + Arr17: Father = new Father() + Arr18: Father = new Father() + Arr19: Father = new Father() + Arr20: Father = new Father() + Arr21: Father = new Father() + Arr22: Father = new Father() + Arr23: Father = new Father() + Arr24: Father = new Father() + Arr25: Father = new Father() + Arr26: Father = new Father() + Arr27: Father = new Father() + Arr28: Father = new Father() + Arr29: Father = new Father() + Arr30: Father = new Father() + Arr31: Father = new Father() + Arr32: Father = new Father() + Arr33: Father = new Father() + Arr34: Father = new Father() + Arr35: Father = new Father() + Arr36: Father = new Father() + Arr37: Father = new Father() + Arr38: Father = new Father() + Arr39: Father = new Father() + Arr40: Father = new Father() + Arr41: Father = new Father() + Arr42: Father = new Father() + Arr43: Father = new Father() + Arr44: Father = new Father() + Arr45: Father = new Father() + Arr46: Father = new Father() + Arr47: Father = new Father() + Arr48: Father = new Father() + Arr49: Father = new Father() b = timeHelper.printStateTime(false, 1, new StateModel(StateConstants.CREATE_STATE, true)) + @State isTypeState: boolean = true aboutToAppear(): void { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, false)) @@ -52,15 +102,20 @@ struct ChildTraceStringSample { .id('getStateTimeTaken') .onClick(() => { timeHelper.printStateTime(true, 1, new StateModel(StateConstants.READ_STATE, true)) - let value = this.Arr.name + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + let value = this.Arr.name + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.READ_STATE, true)) }) Button('child click: 写Trace的耗时') .id('setStateTimeTaken') .onClick(() => { isType = true + this.isTypeState = !this.isTypeState timeHelper.printStateTime(true, 1, new StateModel(StateConstants.WRITE_STATE, true)) - this.Arr.name = 'child: setStateTimeTaken' + for (let index = 0; index < ArrEntity.STATE_LOOP; index++) { + this.Arr.name = `child: setStateTimeTaken` + (index + 1) + } timeHelper.printStateTime(false, 1, new StateModel(StateConstants.WRITE_STATE, true)) }) } @@ -86,7 +141,7 @@ struct TraceStringSample { this.parentString.name = 'parent: parentSetStateTimeTaken' timeHelper.printStateTime(true, 1, new StateModel(StateConstants.UI_CHANGE, true)) }) - ChildTraceStringSample({ Arr : this.parentString }) + ChildTraceStringSample({ Arr: this.parentString }) } } } diff --git a/performance/arkui/benchmark_component/entry/src/main/resources/base/profile/main_pages.json b/performance/arkui/benchmark_component/entry/src/main/resources/base/profile/main_pages.json index c15bffcb..cfa898c2 100644 --- a/performance/arkui/benchmark_component/entry/src/main/resources/base/profile/main_pages.json +++ b/performance/arkui/benchmark_component/entry/src/main/resources/base/profile/main_pages.json @@ -745,8 +745,6 @@ "pages/stateManagement/param/ParamMapSample", "pages/stateManagement/param/ParamSetSample", "pages/stateManagement/param/ParamUnionSample", - "pages/stateManagement/event/EventHome", - "pages/stateManagement/event/EventEventSample", "pages/stateManagement/consumer/ConsumerHome", "pages/stateManagement/consumer/ConsumerNumberSample", "pages/stateManagement/consumer/ConsumerStringSample", @@ -764,6 +762,18 @@ "pages/stateManagement/provider/ProviderArraySample", "pages/stateManagement/provider/ProviderDateSample", "pages/stateManagement/provider/ProviderMapSample", - "pages/stateManagement/provider/ProviderSetSample" + "pages/stateManagement/provider/ProviderSetSample", + "pages/stateManagement/once/OnceHome", + "pages/stateManagement/once/OnceObjectSample", + "pages/stateManagement/once/OnceClassSample", + "pages/stateManagement/once/OnceStringSample", + "pages/stateManagement/once/OnceNumberSample", + "pages/stateManagement/once/OnceBooleanSample", + "pages/stateManagement/once/OnceEnumSample", + "pages/stateManagement/once/OnceArraySample", + "pages/stateManagement/once/OnceDateSample", + "pages/stateManagement/once/OnceMapSample", + "pages/stateManagement/once/OnceSetSample", + "pages/stateManagement/once/OnceUnionSample" ] } diff --git a/performance/arkui/benchmark_component/entry/src/ohosTest/ets/test/State.test.ets b/performance/arkui/benchmark_component/entry/src/ohosTest/ets/test/State.test.ets index aebc5b0b..288830a9 100644 --- a/performance/arkui/benchmark_component/entry/src/ohosTest/ets/test/State.test.ets +++ b/performance/arkui/benchmark_component/entry/src/ohosTest/ets/test/State.test.ets @@ -714,59 +714,41 @@ export default function stateTest() { it('ComputedBenchMarkTest', 0, async () => { await driver.delayMs(3000); await checkButtonAndClickWithID('@Computed') - //读写@Computed装饰的Array类型 + //读@Computed装饰的Array类型 await checkButtonAndClickWithID('ComputedArraySample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的Boolean类型 + //读@Computed装饰的Boolean类型 await checkButtonAndClickWithID('ComputedBooleanSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的Date类型 + //读@Computed装饰的Date类型 await checkButtonAndClickWithID('ComputedDateSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的Enum类型 + //读@Computed装饰的Enum类型 await checkButtonAndClickWithID('ComputedEnumSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的Map类型 + //读@Computed装饰的Map类型 await checkButtonAndClickWithID('ComputedMapSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的Number类型 + //读@Computed装饰的Number类型 await checkButtonAndClickWithID('ComputedNumberSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的Object类型 + //读@Computed装饰的Object类型 await checkButtonAndClickWithID('ComputedObjectSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的Set类型 + //读@Computed装饰的Set类型 await checkButtonAndClickWithID('ComputedSetSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); - //读写@Computed装饰的String类型 + //读@Computed装饰的String类型 await checkButtonAndClickWithID('ComputedStringSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); await pressBack(); //返回首页 }) @@ -842,15 +824,53 @@ export default function stateTest() { await pressBack(); await pressBack(); //返回首页 }) - // 点击首页@Event - it('EventBenchMarkTest', 0, async () => { + // 点击首页@Once + it('OnceBenchMarkTest', 0, async () => { await driver.delayMs(3000); - await checkButtonAndClickWithID('@Event') - //读写@Event装饰的event类型 - await checkButtonAndClickWithID('EventEventSample'); - await checkButtonAndClickWithID('changeUITimeTaken'); + await checkButtonAndClickWithID('@Once') + //读@Once装饰的Array类型 + await checkButtonAndClickWithID('OnceArraySample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的Boolean类型 + await checkButtonAndClickWithID('OnceBooleanSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的Class类型 + await checkButtonAndClickWithID('OnceClassSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的Date类型 + await checkButtonAndClickWithID('OnceDateSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的Enum类型 + await checkButtonAndClickWithID('OnceEnumSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的Map类型 + await checkButtonAndClickWithID('OnceMapSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的number类型 + await checkButtonAndClickWithID('OnceNumberSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的Object类型 + await checkButtonAndClickWithID('OnceObjectSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的Set类型 + await checkButtonAndClickWithID('OnceSetSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的string类型 + await checkButtonAndClickWithID('OnceStringSample'); + await checkButtonAndClickWithID('getStateTimeTaken'); + await pressBack(); + //读@Once装饰的union类型 + await checkButtonAndClickWithID('OnceUnionSample'); await checkButtonAndClickWithID('getStateTimeTaken'); - await checkButtonAndClickWithID('setStateTimeTaken'); await pressBack(); await pressBack(); //返回首页 }) -- Gitee