Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce AttributeAccessInterface lookup cache #32414

Merged
merged 6 commits into from
Mar 4, 2024

Conversation

tcarmelveilleux
Copy link
Contributor

  • Running TC_DeviceBasicComposition test caused, for a single Wildcard read, 44622 iterations through the AttributeAccessInterface (AAI) lookup loop. This is significant runtime cost on embedded devices, when a wildcard subscription is established or when trying to iterate over changes of attributes.
  • Instrumented analysis showed that significant locality exists within the lookup, which could be exploited by a cache.
  • This PR introduces a cache, and its use, in AAI lookups. On same workload as the initial investigation, the total number of iterations of the costly loop went from 44622 --> 4864, a factor of almost 10, for very little additional RAM usage (single entry in cache).

Issue #31405

Testing done:

  • Added unit tests
  • Integration tests still pass
  • TC_BasicDeviceComposition still succeeds

- Running TC_DeviceBasicComposition test caused, for a single Wildcard read,
  44622 iterations through the AttributeAccessInterface (AAI) lookup loop. This
  is significant runtime cost on embedded devices, when a wildcard subscription
  is established or when trying to iterate over changes of attributes.
- Instrumented analysis showed that significant locality exists within
  the lookup, which could be exploited by a cache.
- This PR introduces a cache, and its use, in AAI lookups. On same workload as
  the initial investigation, the total number of iterations of the costly loop
  went from 44622 --> 4864, a factor of almost 10, for very little additional
  RAM usage (single entry in cache).

Issue project-chip#31405

Testing done:
- Added unit tests
- Integration tests still pass
- TC_BasicDeviceComposition still succeeds
Copy link

github-actions bot commented Mar 4, 2024

PR #32414: Size comparison from fb786aa to 2f7c7d2

Increases above 0.2%:

platform target config section fb786aa 2f7c7d2 change % change
psoc6 all-clusters-minimal cy8ckit_062s2_43012 .data 2632 2640 8 0.3
light cy8ckit_062s2_43012 .data 2440 2448 8 0.3
qpg lighting-app qpg6105+debug .data 820 824 4 0.5
lock-app qpg6105+debug .data 840 844 4 0.5
Increases (39 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, esp32, k32w, mbed, nrfconnect, psoc6, qpg, stm32)
platform target config section fb786aa 2f7c7d2 change % change
bl602 lighting-app bl602 (read/write) 1436234 1436526 292 0.0
.bss 85304 85328 24 0.0
.text 1102466 1102722 256 0.0
bl602+mfd (read/write) 1450650 1451182 532 0.0
.bss 85464 85488 24 0.0
.text 1117784 1118296 512 0.0
bl602+rpc (read/write) 1483882 1484174 292 0.0
.bss 93336 93360 24 0.0
.text 1134112 1134368 256 0.0
bl702 lighting-app bl702 (read/write) 1200575 1200851 276 0.0
.bss 11117 11133 16 0.1
.text 971246 971502 256 0.0
bl702+mfd (read/write) 1211627 1211903 276 0.0
.bss 11293 11309 16 0.1
.text 983256 983512 256 0.0
bl702+rpc (read/write) 1292303 1292595 292 0.0
.bss 19581 19613 32 0.2
.text 1046198 1046454 256 0.0
bl706-eth (read/write) 1018653 1018929 276 0.0
.bss 23692 23708 16 0.1
.text 762738 762994 256 0.0
bl706-wifi (read/write) 1252854 1253386 532 0.0
.bss 10561 10577 16 0.2
.text 994210 994722 512 0.1
bl702l lighting-app bl702l (read/write) 1170176 1170964 788 0.1
.bss 16312 16328 16 0.1
.text 964372 964628 256 0.0
bl702l+mfd (read/write) 1181584 1182372 788 0.1
.bss 16488 16504 16 0.1
.text 976694 976950 256 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 772932 773084 152 0.0
(read/write) 168576 168600 24 0.0
.bss 90580 90604 24 0.0
.rodata 81700 81716 16 0.0
.text 690968 691100 132 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 789452 789596 144 0.0
(read/write) 178824 178848 24 0.0
.bss 100828 100852 24 0.0
.rodata 75948 75964 16 0.0
.text 713236 713368 132 0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 778108 778276 168 0.0
(read/write) 173264 173288 24 0.0
.bss 95268 95292 24 0.0
.rodata 102700 102716 16 0.0
.text 675144 675292 148 0.0
pump-app LP_EM_CC1354P10_6 (read only) 730284 730428 144 0.0
(read/write) 167544 167568 24 0.0
.bss 89312 89336 24 0.0
.rodata 77372 77380 8 0.0
.text 652648 652780 132 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 715908 716052 144 0.0
(read/write) 167752 167776 24 0.0
.bss 89536 89560 24 0.0
.rodata 73212 73220 8 0.0
.text 642432 642564 132 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL (read only) 582154 582490 336 0.1
(read/write) 207944 207968 24 0.0
.bss 201180 201204 24 0.0
.rodata 86530 86546 16 0.0
.text 493500 493824 324 0.1
lock CC3235SF_LAUNCHXL (read only) 627514 627778 264 0.0
(read/write) 208288 208312 24 0.0
.bss 201672 201696 24 0.0
.rodata 106994 107002 8 0.0
.text 518396 518656 260 0.1
cyw30739 light cyw930739m2evb_01 (read/write) 568155 568323 168 0.0
.app_xip_area 457957 458101 144 0.0
.bss 65032 65056 24 0.0
lock cyw930739m2evb_01 (read/write) 550867 551035 168 0.0
.app_xip_area 435909 436053 144 0.0
.bss 69784 69808 24 0.0
ota-requestor cyw930739m2evb_01 (read/write) 571043 571211 168 0.0
.app_xip_area 462349 462493 144 0.0
.bss 63568 63592 24 0.0
switch cyw930739m2evb_01 (read/write) 563931 564107 176 0.0
.app_xip_area 451957 452109 152 0.0
.bss 66768 66792 24 0.0
esp32 all-clusters-app c3devkit (read only) 1210446 1210646 200 0.0
(read/write) 1749440 1749488 48 0.0
.dram0.bss 74272 74296 24 0.0
.flash.rodata 252016 252032 16 0.0
.flash.text 1210446 1210646 200 0.0
m5stack (read only) 1252815 1252983 168 0.0
(read/write) 536004 536048 44 0.0
.dram0.bss 81184 81208 24 0.0
.flash.rodata 283736 283756 20 0.0
.flash.text 1246651 1246819 168 0.0
k32w contact k32w0+release (read only) 605184 605328 144 0.0
(read/write) 79584 79612 28 0.0
.bss 67404 67428 24 0.0
.data 2196 2200 4 0.2
.text 604648 604792 144 0.0
k32w1+release (read/write) 746548 746728 180 0.0
.bss 79164 79188 24 0.0
.text 625200 625352 152 0.0
light k32w0+release (read only) 609128 609264 136 0.0
(read/write) 79468 79496 28 0.0
.bss 67284 67308 24 0.0
.data 2200 2204 4 0.2
.text 608592 608728 136 0.0
k32w1+release (read/write) 789448 789612 164 0.0
.bss 80556 80580 24 0.0
.text 667504 667640 136 0.0
lock k32w0+release (read only) 588720 588864 144 0.0
(read/write) 77456 77484 28 0.0
.bss 65324 65348 24 0.0
.data 2148 2152 4 0.2
.text 588184 588328 144 0.0
mbed lock-app-release cy8cproto_062_4343w (read/write) 2531592 2531736 144 0.0
.bss 220424 220448 24 0.0
.text 1494276 1494420 144 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1102036 1102340 304 0.0
bss 130807 130831 24 0.0
rodata 112812 112828 16 0.0
text 810680 810824 144 0.0
nrf7002dk_nrf5340_cpuapp (read/write) 1221588 1221788 200 0.0
bss 122897 122921 24 0.0
rodata 141772 141788 16 0.0
text 806404 806548 144 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1050440 1050584 144 0.0
bss 129665 129689 24 0.0
text 772732 772864 132 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read/write) 1795300 1795660 360 0.0
.bss 196188 196212 24 0.0
.text 1588060 1588396 336 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read/write) 1717396 1717708 312 0.0
.bss 193068 193092 24 0.0
.data 2632 2640 8 0.3
.text 1513308 1513588 280 0.0
light cy8ckit_062s2_43012 (read/write) 1636516 1636836 320 0.0
.bss 186532 186556 24 0.0
.data 2440 2448 8 0.3
.text 1439156 1439444 288 0.0
lock cy8ckit_062s2_43012 (read/write) 1666428 1666724 296 0.0
.bss 213692 213716 24 0.0
.text 1441908 1442180 272 0.0
qpg lighting-app qpg6105+debug (read/write) 1128992 1129148 156 0.0
.bss 102432 102456 24 0.0
.data 820 824 4 0.5
.text 641376 641528 152 0.0
lock-app qpg6105+debug (read/write) 1089088 1089220 132 0.0
.bss 97176 97200 24 0.0
.data 840 844 4 0.5
.text 601468 601604 136 0.0
stm32 light STM32WB5MM-DK (read/write) 600149 600321 172 0.0
.bss 128296 128320 24 0.0
.rodata 79596 79604 8 0.0
.text 381864 382000 136 0.0
Decreases (4 builds for psoc6)
platform target config section fb786aa 2f7c7d2 change % change
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 834488 834464 -24 -0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 837640 837608 -32 -0.0
light cy8ckit_062s2_43012 (read only) 844368 844336 -32 -0.0
lock cy8ckit_062s2_43012 (read only) 817208 817184 -24 -0.0
Full report (39 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, esp32, k32w, mbed, nrfconnect, psoc6, qpg, stm32)
platform target config section fb786aa 2f7c7d2 change % change
bl602 lighting-app bl602 (read/write) 1436234 1436526 292 0.0
.bss 85304 85328 24 0.0
.data 9496 9496 0 0.0
.rodata 158324 158324 0 0.0
.text 1102466 1102722 256 0.0
bl602+mfd (read/write) 1450650 1451182 532 0.0
.bss 85464 85488 24 0.0
.data 9472 9472 0 0.0
.rodata 157284 157284 0 0.0
.text 1117784 1118296 512 0.0
bl602+rpc (read/write) 1483882 1484174 292 0.0
.bss 93336 93360 24 0.0
.data 9880 9880 0 0.0
.rodata 165900 165900 0 0.0
.text 1134112 1134368 256 0.0
bl702 lighting-app bl702 (read only) 3478 3478 0 0.0
(read/write) 1200575 1200851 276 0.0
.bss 11117 11133 16 0.1
.data 3680 3680 0 0.0
.rodata 107680 107680 0 0.0
.text 971246 971502 256 0.0
bl702+mfd (read only) 3478 3478 0 0.0
(read/write) 1211627 1211903 276 0.0
.bss 11293 11309 16 0.1
.data 3656 3656 0 0.0
.rodata 106620 106620 0 0.0
.text 983256 983512 256 0.0
bl702+rpc (read only) 3478 3478 0 0.0
(read/write) 1292303 1292595 292 0.0
.bss 19581 19613 32 0.2
.data 4224 4224 0 0.0
.rodata 123052 123052 0 0.0
.text 1046198 1046454 256 0.0
bl706-eth (read/write) 1018653 1018929 276 0.0
.bss 23692 23708 16 0.1
.data 3256 3256 0 0.0
.rodata 101012 101012 0 0.0
.text 762738 762994 256 0.0
bl706-wifi (read/write) 1252854 1253386 532 0.0
.bss 10561 10577 16 0.2
.data 3696 3696 0 0.0
.rodata 122012 122012 0 0.0
.text 994210 994722 512 0.1
bl702l lighting-app bl702l (read/write) 1170176 1170964 788 0.1
.bss 16312 16328 16 0.1
.data 5040 5040 0 0.0
.rodata 101684 101684 0 0.0
.text 964372 964628 256 0.0
bl702l+mfd (read/write) 1181584 1182372 788 0.1
.bss 16488 16504 16 0.1
.data 5024 5024 0 0.0
.rodata 100624 100624 0 0.0
.text 976694 976950 256 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 772932 773084 152 0.0
(read/write) 168576 168600 24 0.0
.bss 90580 90604 24 0.0
.data 3560 3560 0 0.0
.rodata 81700 81716 16 0.0
.text 690968 691100 132 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 789452 789596 144 0.0
(read/write) 178824 178848 24 0.0
.bss 100828 100852 24 0.0
.data 3560 3560 0 0.0
.rodata 75948 75964 16 0.0
.text 713236 713368 132 0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 778108 778276 168 0.0
(read/write) 173264 173288 24 0.0
.bss 95268 95292 24 0.0
.data 3560 3560 0 0.0
.rodata 102700 102716 16 0.0
.text 675144 675292 148 0.0
pump-app LP_EM_CC1354P10_6 (read only) 730284 730428 144 0.0
(read/write) 167544 167568 24 0.0
.bss 89312 89336 24 0.0
.data 3552 3552 0 0.0
.rodata 77372 77380 8 0.0
.text 652648 652780 132 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 715908 716052 144 0.0
(read/write) 167752 167776 24 0.0
.bss 89536 89560 24 0.0
.data 3544 3544 0 0.0
.rodata 73212 73220 8 0.0
.text 642432 642564 132 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL (read only) 582154 582490 336 0.1
(read/write) 207944 207968 24 0.0
.bss 201180 201204 24 0.0
.data 1640 1640 0 0.0
.rodata 86530 86546 16 0.0
.text 493500 493824 324 0.1
lock CC3235SF_LAUNCHXL (read only) 627514 627778 264 0.0
(read/write) 208288 208312 24 0.0
.bss 201672 201696 24 0.0
.data 1496 1496 0 0.0
.rodata 106994 107002 8 0.0
.text 518396 518656 260 0.1
cyw30739 light cyw930739m2evb_01 (read/write) 568155 568323 168 0.0
.app_xip_area 457957 458101 144 0.0
.bss 65032 65056 24 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 550867 551035 168 0.0
.app_xip_area 435909 436053 144 0.0
.bss 69784 69808 24 0.0
.data 752 752 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 571043 571211 168 0.0
.app_xip_area 462349 462493 144 0.0
.bss 63568 63592 24 0.0
.data 704 704 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 563931 564107 176 0.0
.app_xip_area 451957 452109 152 0.0
.bss 66768 66792 24 0.0
.data 784 784 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
esp32 all-clusters-app c3devkit (read only) 1210446 1210646 200 0.0
(read/write) 1749440 1749488 48 0.0
.dram0.bss 74272 74296 24 0.0
.dram0.data 13620 13620 0 0.0
.flash.rodata 252016 252032 16 0.0
.flash.text 1210446 1210646 200 0.0
.iram0.text 75530 75530 0 0.0
m5stack (read only) 1252815 1252983 168 0.0
(read/write) 536004 536048 44 0.0
.dram0.bss 81184 81208 24 0.0
.dram0.data 35164 35164 0 0.0
.flash.rodata 283736 283756 20 0.0
.flash.text 1246651 1246819 168 0.0
.iram0.text 125403 125403 0 0.0
k32w contact k32w0+release (read only) 605184 605328 144 0.0
(read/write) 79584 79612 28 0.0
.bss 67404 67428 24 0.0
.data 2196 2200 4 0.2
.text 604648 604792 144 0.0
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 746548 746728 180 0.0
.bss 79164 79188 24 0.0
.data 2816 2816 0 0.0
.text 625200 625352 152 0.0
light k32w0+release (read only) 609128 609264 136 0.0
(read/write) 79468 79496 28 0.0
.bss 67284 67308 24 0.0
.data 2200 2204 4 0.2
.text 608592 608728 136 0.0
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 789448 789612 164 0.0
.bss 80556 80580 24 0.0
.data 2032 2032 0 0.0
.text 667504 667640 136 0.0
lock k32w0+release (read only) 588720 588864 144 0.0
(read/write) 77456 77484 28 0.0
.bss 65324 65348 24 0.0
.data 2148 2152 4 0.2
.text 588184 588328 144 0.0
mbed lock-app-release cy8cproto_062_4343w (read only) 6224 6224 0 0.0
(read/write) 2531592 2531736 144 0.0
.bss 220424 220448 24 0.0
.data 5200 5200 0 0.0
.text 1494276 1494420 144 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1102036 1102340 304 0.0
bss 130807 130831 24 0.0
rodata 112812 112828 16 0.0
text 810680 810824 144 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1221588 1221788 200 0.0
bss 122897 122921 24 0.0
rodata 141772 141788 16 0.0
text 806404 806548 144 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1050440 1050584 144 0.0
bss 129665 129689 24 0.0
rodata 100184 100184 0 0.0
text 772732 772864 132 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 834488 834464 -24 -0.0
(read/write) 1795300 1795660 360 0.0
.bss 196188 196212 24 0.0
.data 2664 2664 0 0.0
.text 1588060 1588396 336 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 837640 837608 -32 -0.0
(read/write) 1717396 1717708 312 0.0
.bss 193068 193092 24 0.0
.data 2632 2640 8 0.3
.text 1513308 1513588 280 0.0
light cy8ckit_062s2_43012 (read only) 844368 844336 -32 -0.0
(read/write) 1636516 1636836 320 0.0
.bss 186532 186556 24 0.0
.data 2440 2448 8 0.3
.text 1439156 1439444 288 0.0
lock cy8ckit_062s2_43012 (read only) 817208 817184 -24 -0.0
(read/write) 1666428 1666724 296 0.0
.bss 213692 213716 24 0.0
.data 2440 2440 0 0.0
.text 1441908 1442180 272 0.0
qpg lighting-app qpg6105+debug (read/write) 1128992 1129148 156 0.0
.bss 102432 102456 24 0.0
.data 820 824 4 0.5
.text 641376 641528 152 0.0
lock-app qpg6105+debug (read/write) 1089088 1089220 132 0.0
.bss 97176 97200 24 0.0
.data 840 844 4 0.5
.text 601468 601604 136 0.0
stm32 light STM32WB5MM-DK (read/write) 600149 600321 172 0.0
.bss 128296 128320 24 0.0
.data 668 668 0 0.0
.rodata 79596 79604 8 0.0
.text 381864 382000 136 0.0

src/app/AttributeAccessInterfaceCache.h Outdated Show resolved Hide resolved
src/app/AttributeAccessInterfaceCache.h Show resolved Hide resolved
Copy link

github-actions bot commented Mar 4, 2024

PR #32414: Size comparison from fb786aa to e6d7071

Increases above 0.2%:

platform target config section fb786aa e6d7071 change % change
efr32 lighting-app BRD4161A+rs9116 .data 1388 1392 4 0.3
linux chip-tool-ipv6only arm64 .init_array 248 256 8 3.2
thermostat-no-ble arm64 (read/write) 242064 245096 3032 1.3
.init_array 416 424 8 1.9
psoc6 all-clusters-minimal cy8ckit_062s2_43012 .data 2632 2640 8 0.3
light cy8ckit_062s2_43012 .data 2440 2448 8 0.3
qpg lighting-app qpg6105+debug .data 820 824 4 0.5
lock-app qpg6105+debug .data 840 844 4 0.5
Increases (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32, telink)
platform target config section fb786aa e6d7071 change % change
bl602 lighting-app bl602 (read/write) 1436234 1436782 548 0.0
.bss 85304 85328 24 0.0
.text 1102466 1102978 512 0.0
bl602+mfd (read/write) 1450650 1451182 532 0.0
.bss 85464 85488 24 0.0
.text 1117784 1118296 512 0.0
bl602+rpc (read/write) 1483882 1484174 292 0.0
.bss 93336 93360 24 0.0
.text 1134112 1134368 256 0.0
bl702 lighting-app bl702 (read/write) 1200575 1200851 276 0.0
.bss 11117 11133 16 0.1
.text 971246 971502 256 0.0
bl702+mfd (read/write) 1211627 1211903 276 0.0
.bss 11293 11309 16 0.1
.text 983256 983512 256 0.0
bl702+rpc (read/write) 1292303 1292595 292 0.0
.bss 19581 19613 32 0.2
.text 1046198 1046454 256 0.0
bl706-eth (read/write) 1018653 1018929 276 0.0
.bss 23692 23708 16 0.1
.text 762738 762994 256 0.0
bl706-wifi (read/write) 1252854 1253386 532 0.0
.bss 10561 10577 16 0.2
.text 994210 994722 512 0.1
bl702l lighting-app bl702l (read/write) 1170176 1170964 788 0.1
.bss 16312 16328 16 0.1
.text 964372 964628 256 0.0
bl702l+mfd (read/write) 1181584 1182372 788 0.1
.bss 16488 16504 16 0.1
.text 976694 976950 256 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 772932 773084 152 0.0
(read/write) 168576 168600 24 0.0
.bss 90580 90604 24 0.0
.rodata 81700 81716 16 0.0
.text 690968 691100 132 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 789452 789596 144 0.0
(read/write) 178824 178848 24 0.0
.bss 100828 100852 24 0.0
.rodata 75948 75964 16 0.0
.text 713236 713368 132 0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 778108 778276 168 0.0
(read/write) 173264 173288 24 0.0
.bss 95268 95292 24 0.0
.rodata 102700 102716 16 0.0
.text 675144 675292 148 0.0
pump-app LP_EM_CC1354P10_6 (read only) 730284 730428 144 0.0
(read/write) 167544 167568 24 0.0
.bss 89312 89336 24 0.0
.rodata 77372 77380 8 0.0
.text 652648 652780 132 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 715908 716052 144 0.0
(read/write) 167752 167776 24 0.0
.bss 89536 89560 24 0.0
.rodata 73212 73220 8 0.0
.text 642432 642564 132 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL (read only) 582154 582554 400 0.1
(read/write) 207944 207968 24 0.0
.bss 201180 201204 24 0.0
.rodata 86530 86546 16 0.0
.text 493500 493888 388 0.1
lock CC3235SF_LAUNCHXL (read only) 627514 627842 328 0.1
(read/write) 208288 208312 24 0.0
.bss 201672 201696 24 0.0
.rodata 106994 107002 8 0.0
.text 518396 518720 324 0.1
cyw30739 light cyw930739m2evb_01 (read/write) 568155 568323 168 0.0
.app_xip_area 457957 458101 144 0.0
.bss 65032 65056 24 0.0
lock cyw930739m2evb_01 (read/write) 550867 551035 168 0.0
.app_xip_area 435909 436053 144 0.0
.bss 69784 69808 24 0.0
ota-requestor cyw930739m2evb_01 (read/write) 571043 571211 168 0.0
.app_xip_area 462349 462493 144 0.0
.bss 63568 63592 24 0.0
switch cyw930739m2evb_01 (read/write) 563931 564107 176 0.0
.app_xip_area 451957 452109 152 0.0
.bss 66768 66792 24 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 931504 931888 384 0.0
.bss 197888 197912 24 0.0
.data 1388 1392 4 0.3
.text 732204 732564 360 0.0
BRD4187C (read/write) 1108920 1109084 164 0.0
.bss 195152 195176 24 0.0
.data 3408 3412 4 0.1
.text 910340 910476 136 0.0
lock-app BRD4161A+wf200 (read/write) 1121900 1122068 168 0.0
.bss 186740 186764 24 0.0
.data 2792 2796 4 0.1
.text 932348 932484 136 0.0
window-app BRD4187C (read/write) 1155512 1155900 388 0.0
.bss 167392 167416 24 0.0
.data 3320 3324 4 0.1
.text 984780 985140 360 0.0
esp32 all-clusters-app c3devkit (read only) 1210446 1210646 200 0.0
(read/write) 1749440 1749488 48 0.0
.dram0.bss 74272 74296 24 0.0
.flash.rodata 252016 252032 16 0.0
.flash.text 1210446 1210646 200 0.0
m5stack (read only) 1252815 1252975 160 0.0
(read/write) 536004 536048 44 0.0
.dram0.bss 81184 81208 24 0.0
.flash.rodata 283736 283756 20 0.0
.flash.text 1246651 1246811 160 0.0
k32w contact k32w0+release (read only) 605184 605328 144 0.0
(read/write) 79584 79612 28 0.0
.bss 67404 67428 24 0.0
.data 2196 2200 4 0.2
.text 604648 604792 144 0.0
k32w1+release (read/write) 746548 746728 180 0.0
.bss 79164 79188 24 0.0
.text 625200 625352 152 0.0
light k32w0+release (read only) 609128 609264 136 0.0
(read/write) 79468 79496 28 0.0
.bss 67284 67308 24 0.0
.data 2200 2204 4 0.2
.text 608592 608728 136 0.0
k32w1+release (read/write) 789448 789612 164 0.0
.bss 80556 80580 24 0.0
.text 667504 667640 136 0.0
lock k32w0+release (read only) 588720 588864 144 0.0
(read/write) 77456 77484 28 0.0
.bss 65324 65348 24 0.0
.data 2148 2152 4 0.2
.text 588184 588328 144 0.0
linux air-purifier-app debug (read only) 2611669 2612581 912 0.0
(read/write) 128832 128864 32 0.0
.bss 46448 46480 32 0.1
.text 2250053 2250965 912 0.0
all-clusters-app debug (read only) 5918105 5919033 928 0.0
(read/write) 480272 480304 32 0.0
.bss 134752 134784 32 0.0
.text 5135555 5136483 928 0.0
all-clusters-minimal-app debug (read only) 5198657 5199569 912 0.0
(read/write) 236192 236256 64 0.0
.bss 127552 127616 64 0.1
.text 4675747 4676659 912 0.0
bridge-app debug (read only) 4593121 4594033 912 0.0
(read/write) 217072 217136 64 0.0
.bss 118080 118144 64 0.1
.text 4143987 4144899 912 0.0
chip-tool debug (read only) 12029273 12030169 896 0.0
(read/write) 521448 521480 32 0.0
.bss 94392 94424 32 0.0
.text 10875251 10876147 896 0.0
chip-tool-ipv6only arm64 (read only) 11353420 11354476 1056 0.0
.bss 103464 103512 48 0.0
.init_array 248 256 8 3.2
.text 10120840 10121864 1024 0.0
lighting-app debug+rpc+ui (read only) 5516497 5517393 896 0.0
(read/write) 225896 225960 64 0.0
.bss 119048 119112 64 0.1
.text 4915939 4916835 896 0.0
lock-app debug (read only) 4660865 4661761 896 0.0
(read/write) 204688 204752 64 0.0
.bss 113504 113568 64 0.1
.text 4194355 4195251 896 0.0
ota-provider-app debug (read only) 4292697 4293593 896 0.0
(read/write) 193192 193224 32 0.0
.bss 113216 113248 32 0.0
.text 3892323 3893219 896 0.0
ota-requestor-app debug (read only) 4422153 4423049 896 0.0
(read/write) 197592 197656 64 0.0
.bss 114112 114176 64 0.1
.text 4011091 4011987 896 0.0
shell debug (read only) 2885913 2886809 896 0.0
(read/write) 156224 156256 32 0.0
.bss 62640 62672 32 0.1
.text 2527506 2528402 896 0.0
thermostat-no-ble arm64 (read only) 4412628 4413700 1072 0.0
(read/write) 242064 245096 3032 1.3
.bss 121768 121800 32 0.0
.init_array 416 424 8 1.9
.text 3919016 3920056 1040 0.0
tv-app debug (read only) 5700889 5701801 912 0.0
(read/write) 352424 352488 64 0.0
.bss 244272 244336 64 0.0
.text 5169251 5170163 912 0.0
tv-casting-app debug (read only) 9860073 9860985 912 0.0
(read/write) 340168 340232 64 0.0
.bss 156176 156240 64 0.0
.text 9011779 9012691 912 0.0
mbed lock-app-release cy8cproto_062_4343w (read/write) 2531592 2531736 144 0.0
.bss 220424 220448 24 0.0
.text 1494276 1494420 144 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1102036 1102340 304 0.0
bss 130807 130831 24 0.0
rodata 112812 112828 16 0.0
text 810680 810824 144 0.0
nrf7002dk_nrf5340_cpuapp (read/write) 1221588 1221788 200 0.0
bss 122897 122921 24 0.0
rodata 141772 141788 16 0.0
text 806404 806548 144 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1050440 1050584 144 0.0
bss 129665 129689 24 0.0
text 772732 772864 132 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read/write) 1795300 1795756 456 0.0
.bss 196188 196212 24 0.0
.text 1588060 1588492 432 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read/write) 1717396 1717804 408 0.0
.bss 193068 193092 24 0.0
.data 2632 2640 8 0.3
.text 1513308 1513684 376 0.0
light cy8ckit_062s2_43012 (read/write) 1636516 1636932 416 0.0
.bss 186532 186556 24 0.0
.data 2440 2448 8 0.3
.text 1439156 1439540 384 0.0
lock cy8ckit_062s2_43012 (read/write) 1666428 1666820 392 0.0
.bss 213692 213716 24 0.0
.text 1441908 1442276 368 0.0
qpg lighting-app qpg6105+debug (read/write) 1128992 1129148 156 0.0
.bss 102432 102456 24 0.0
.data 820 824 4 0.5
.text 641376 641528 152 0.0
lock-app qpg6105+debug (read/write) 1089088 1089220 132 0.0
.bss 97176 97200 24 0.0
.data 840 844 4 0.5
.text 601468 601604 136 0.0
stm32 light STM32WB5MM-DK (read/write) 600149 600321 172 0.0
.bss 128296 128320 24 0.0
.rodata 79596 79604 8 0.0
.text 381864 382000 136 0.0
telink air-quality-sensor-app tlsr9528a_retention (read/write) 822878 823106 228 0.0
bss 49636 49660 24 0.0
text 615784 615972 188 0.0
all-clusters-app tlsr9518adk80d (read/write) 1091584 1091820 236 0.0
bss 101756 101780 24 0.0
text 792816 793012 196 0.0
all-clusters-minimal-app tlsr9528a (read/write) 1049080 1049292 212 0.0
bss 110060 110084 24 0.0
text 764164 764334 170 0.0
bridge-app tlsr9518adk80d (read/write) 909768 909972 204 0.0
bss 93092 93116 24 0.0
text 651614 651784 170 0.0
contact-sensor-app tlsr9528a_retention (read/write) 824558 824762 204 0.0
bss 49684 49708 24 0.0
text 617522 617686 164 0.0
light-switch-app-ota-shell-factory-data tlsr9528a (read/write) 930260 930472 212 0.0
bss 77684 77708 24 0.0
text 697660 697830 170 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d (read/write) 1072964 1073168 204 0.0
bss 100172 100196 24 0.0
text 777018 777188 170 0.0
lock-app-dfu tlsr9528a (read/write) 902636 902848 212 0.0
bss 69148 69172 24 0.0
text 652904 653074 170 0.0
ota-requestor-app tlsr9518adk80d (read/write) 928912 929124 212 0.0
bss 92672 92696 24 0.0
text 670798 670968 170 0.0
pump-app tlsr9258a_retention (read/write) 827118 827322 204 0.0
bss 49792 49816 24 0.0
text 620478 620642 164 0.0
pump-controller-app tlsr9518adk80d (read/write) 790832 791036 204 0.0
bss 55992 56016 24 0.0
text 591230 591400 170 0.0
smoke_co_alarm-app tlsr9528a_retention (read/write) 832094 832298 204 0.0
bss 51316 51340 24 0.0
text 623892 624056 164 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d (read/write) 850793 851005 212 0.0
bss 59468 59492 24 0.0
text 635940 636110 170 0.0
thermostat tlsr9518adk80d (read/write) 816492 816704 212 0.0
bss 56280 56304 24 0.0
text 610938 611108 170 0.0
window-covering tlsr9258a (read/write) 834596 834808 212 0.0
bss 68056 68080 24 0.0
text 626194 626364 170 0.0
Decreases (5 builds for linux, psoc6)
platform target config section fb786aa e6d7071 change % change
linux chip-tool-ipv6only arm64 (read/write) 588400 587416 -984 -0.2
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 834488 834464 -24 -0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 837640 837608 -32 -0.0
light cy8ckit_062s2_43012 (read only) 844368 844336 -32 -0.0
lock cy8ckit_062s2_43012 (read only) 817208 817184 -24 -0.0
Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32, telink)
platform target config section fb786aa e6d7071 change % change
bl602 lighting-app bl602 (read/write) 1436234 1436782 548 0.0
.bss 85304 85328 24 0.0
.data 9496 9496 0 0.0
.rodata 158324 158324 0 0.0
.text 1102466 1102978 512 0.0
bl602+mfd (read/write) 1450650 1451182 532 0.0
.bss 85464 85488 24 0.0
.data 9472 9472 0 0.0
.rodata 157284 157284 0 0.0
.text 1117784 1118296 512 0.0
bl602+rpc (read/write) 1483882 1484174 292 0.0
.bss 93336 93360 24 0.0
.data 9880 9880 0 0.0
.rodata 165900 165900 0 0.0
.text 1134112 1134368 256 0.0
bl702 lighting-app bl702 (read only) 3478 3478 0 0.0
(read/write) 1200575 1200851 276 0.0
.bss 11117 11133 16 0.1
.data 3680 3680 0 0.0
.rodata 107680 107680 0 0.0
.text 971246 971502 256 0.0
bl702+mfd (read only) 3478 3478 0 0.0
(read/write) 1211627 1211903 276 0.0
.bss 11293 11309 16 0.1
.data 3656 3656 0 0.0
.rodata 106620 106620 0 0.0
.text 983256 983512 256 0.0
bl702+rpc (read only) 3478 3478 0 0.0
(read/write) 1292303 1292595 292 0.0
.bss 19581 19613 32 0.2
.data 4224 4224 0 0.0
.rodata 123052 123052 0 0.0
.text 1046198 1046454 256 0.0
bl706-eth (read/write) 1018653 1018929 276 0.0
.bss 23692 23708 16 0.1
.data 3256 3256 0 0.0
.rodata 101012 101012 0 0.0
.text 762738 762994 256 0.0
bl706-wifi (read/write) 1252854 1253386 532 0.0
.bss 10561 10577 16 0.2
.data 3696 3696 0 0.0
.rodata 122012 122012 0 0.0
.text 994210 994722 512 0.1
bl702l lighting-app bl702l (read/write) 1170176 1170964 788 0.1
.bss 16312 16328 16 0.1
.data 5040 5040 0 0.0
.rodata 101684 101684 0 0.0
.text 964372 964628 256 0.0
bl702l+mfd (read/write) 1181584 1182372 788 0.1
.bss 16488 16504 16 0.1
.data 5024 5024 0 0.0
.rodata 100624 100624 0 0.0
.text 976694 976950 256 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 772932 773084 152 0.0
(read/write) 168576 168600 24 0.0
.bss 90580 90604 24 0.0
.data 3560 3560 0 0.0
.rodata 81700 81716 16 0.0
.text 690968 691100 132 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 789452 789596 144 0.0
(read/write) 178824 178848 24 0.0
.bss 100828 100852 24 0.0
.data 3560 3560 0 0.0
.rodata 75948 75964 16 0.0
.text 713236 713368 132 0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 778108 778276 168 0.0
(read/write) 173264 173288 24 0.0
.bss 95268 95292 24 0.0
.data 3560 3560 0 0.0
.rodata 102700 102716 16 0.0
.text 675144 675292 148 0.0
pump-app LP_EM_CC1354P10_6 (read only) 730284 730428 144 0.0
(read/write) 167544 167568 24 0.0
.bss 89312 89336 24 0.0
.data 3552 3552 0 0.0
.rodata 77372 77380 8 0.0
.text 652648 652780 132 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 715908 716052 144 0.0
(read/write) 167752 167776 24 0.0
.bss 89536 89560 24 0.0
.data 3544 3544 0 0.0
.rodata 73212 73220 8 0.0
.text 642432 642564 132 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL (read only) 582154 582554 400 0.1
(read/write) 207944 207968 24 0.0
.bss 201180 201204 24 0.0
.data 1640 1640 0 0.0
.rodata 86530 86546 16 0.0
.text 493500 493888 388 0.1
lock CC3235SF_LAUNCHXL (read only) 627514 627842 328 0.1
(read/write) 208288 208312 24 0.0
.bss 201672 201696 24 0.0
.data 1496 1496 0 0.0
.rodata 106994 107002 8 0.0
.text 518396 518720 324 0.1
cyw30739 light cyw930739m2evb_01 (read/write) 568155 568323 168 0.0
.app_xip_area 457957 458101 144 0.0
.bss 65032 65056 24 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 550867 551035 168 0.0
.app_xip_area 435909 436053 144 0.0
.bss 69784 69808 24 0.0
.data 752 752 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 571043 571211 168 0.0
.app_xip_area 462349 462493 144 0.0
.bss 63568 63592 24 0.0
.data 704 704 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 563931 564107 176 0.0
.app_xip_area 451957 452109 152 0.0
.bss 66768 66792 24 0.0
.data 784 784 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 931504 931888 384 0.0
.bss 197888 197912 24 0.0
.data 1388 1392 4 0.3
.text 732204 732564 360 0.0
BRD4187C (read/write) 1108920 1109084 164 0.0
.bss 195152 195176 24 0.0
.data 3408 3412 4 0.1
.text 910340 910476 136 0.0
lock-app BRD4161A+wf200 (read/write) 1121900 1122068 168 0.0
.bss 186740 186764 24 0.0
.data 2792 2796 4 0.1
.text 932348 932484 136 0.0
window-app BRD4187C (read/write) 1155512 1155900 388 0.0
.bss 167392 167416 24 0.0
.data 3320 3324 4 0.1
.text 984780 985140 360 0.0
esp32 all-clusters-app c3devkit (read only) 1210446 1210646 200 0.0
(read/write) 1749440 1749488 48 0.0
.dram0.bss 74272 74296 24 0.0
.dram0.data 13620 13620 0 0.0
.flash.rodata 252016 252032 16 0.0
.flash.text 1210446 1210646 200 0.0
.iram0.text 75530 75530 0 0.0
m5stack (read only) 1252815 1252975 160 0.0
(read/write) 536004 536048 44 0.0
.dram0.bss 81184 81208 24 0.0
.dram0.data 35164 35164 0 0.0
.flash.rodata 283736 283756 20 0.0
.flash.text 1246651 1246811 160 0.0
.iram0.text 125403 125403 0 0.0
k32w contact k32w0+release (read only) 605184 605328 144 0.0
(read/write) 79584 79612 28 0.0
.bss 67404 67428 24 0.0
.data 2196 2200 4 0.2
.text 604648 604792 144 0.0
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 746548 746728 180 0.0
.bss 79164 79188 24 0.0
.data 2816 2816 0 0.0
.text 625200 625352 152 0.0
light k32w0+release (read only) 609128 609264 136 0.0
(read/write) 79468 79496 28 0.0
.bss 67284 67308 24 0.0
.data 2200 2204 4 0.2
.text 608592 608728 136 0.0
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 789448 789612 164 0.0
.bss 80556 80580 24 0.0
.data 2032 2032 0 0.0
.text 667504 667640 136 0.0
lock k32w0+release (read only) 588720 588864 144 0.0
(read/write) 77456 77484 28 0.0
.bss 65324 65348 24 0.0
.data 2148 2152 4 0.2
.text 588184 588328 144 0.0
linux air-purifier-app debug (read only) 2611669 2612581 912 0.0
(read/write) 128832 128864 32 0.0
.bss 46448 46480 32 0.1
.data 2240 2240 0 0.0
.data.rel.ro 74216 74216 0 0.0
.dynamic 608 608 0 0.0
.got 4544 4544 0 0.0
.init 27 27 0 0.0
.init_array 744 744 0 0.0
.rodata 184272 184272 0 0.0
.text 2250053 2250965 912 0.0
all-clusters-app debug (read only) 5918105 5919033 928 0.0
(read/write) 480272 480304 32 0.0
.bss 134752 134784 32 0.0
.data 4496 4496 0 0.0
.data.rel.ro 333608 333608 0 0.0
.dynamic 624 624 0 0.0
.got 5360 5360 0 0.0
.init 27 27 0 0.0
.init_array 1384 1384 0 0.0
.rodata 349296 349296 0 0.0
.text 5135555 5136483 928 0.0
all-clusters-minimal-app debug (read only) 5198657 5199569 912 0.0
(read/write) 236192 236256 64 0.0
.bss 127552 127616 64 0.1
.data 4400 4400 0 0.0
.data.rel.ro 97176 97176 0 0.0
.dynamic 624 624 0 0.0
.got 5280 5280 0 0.0
.init 27 27 0 0.0
.init_array 1112 1112 0 0.0
.rodata 288322 288322 0 0.0
.text 4675747 4676659 912 0.0
bridge-app debug (read only) 4593121 4594033 912 0.0
(read/write) 217072 217136 64 0.0
.bss 118080 118144 64 0.1
.data 6176 6176 0 0.0
.data.rel.ro 86112 86112 0 0.0
.dynamic 624 624 0 0.0
.got 5248 5248 0 0.0
.init 27 27 0 0.0
.init_array 808 808 0 0.0
.rodata 228962 228962 0 0.0
.text 4143987 4144899 912 0.0
chip-tool debug (read only) 12029273 12030169 896 0.0
(read/write) 521448 521480 32 0.0
.bss 94392 94424 32 0.0
.data 5122 5122 0 0.0
.data.rel.ro 414712 414712 0 0.0
.dynamic 624 624 0 0.0
.got 5768 5768 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 448345 448345 0 0.0
.text 10875251 10876147 896 0.0
chip-tool-ipv6only arm64 (read only) 11353420 11354476 1056 0.0
(read/write) 588400 587416 -984 -0.2
.bss 103464 103512 48 0.0
.data 4496 4496 0 0.0
.data.rel.ro 454496 454496 0 0.0
.dynamic 512 512 0 0.0
.got 16984 16984 0 0.0
.init 24 24 0 0.0
.init_array 248 256 8 3.2
.rodata 354364 354364 0 0.0
.text 10120840 10121864 1024 0.0
lighting-app debug+rpc+ui (read only) 5516497 5517393 896 0.0
(read/write) 225896 225960 64 0.0
.bss 119048 119112 64 0.1
.data 4832 4832 0 0.0
.data.rel.ro 94512 94512 0 0.0
.dynamic 672 672 0 0.0
.got 5888 5888 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 354004 354004 0 0.0
.text 4915939 4916835 896 0.0
lock-app debug (read only) 4660865 4661761 896 0.0
(read/write) 204688 204752 64 0.0
.bss 113504 113568 64 0.1
.data 4128 4128 0 0.0
.data.rel.ro 80360 80360 0 0.0
.dynamic 624 624 0 0.0
.got 5200 5200 0 0.0
.init 27 27 0 0.0
.init_array 840 840 0 0.0
.rodata 254978 254978 0 0.0
.text 4194355 4195251 896 0.0
ota-provider-app debug (read only) 4292697 4293593 896 0.0
(read/write) 193192 193224 32 0.0
.bss 113216 113248 32 0.0
.data 4336 4336 0 0.0
.data.rel.ro 69744 69744 0 0.0
.dynamic 624 624 0 0.0
.got 4536 4536 0 0.0
.init 27 27 0 0.0
.init_array 704 704 0 0.0
.rodata 207522 207522 0 0.0
.text 3892323 3893219 896 0.0
ota-requestor-app debug (read only) 4422153 4423049 896 0.0
(read/write) 197592 197656 64 0.0
.bss 114112 114176 64 0.1
.data 4736 4736 0 0.0
.data.rel.ro 72864 72864 0 0.0
.dynamic 624 624 0 0.0
.got 4472 4472 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 213666 213666 0 0.0
.text 4011091 4011987 896 0.0
shell debug (read only) 2885913 2886809 896 0.0
(read/write) 156224 156256 32 0.0
.bss 62640 62672 32 0.1
.data 1392 1392 0 0.0
.data.rel.ro 86432 86432 0 0.0
.dynamic 592 592 0 0.0
.got 4072 4072 0 0.0
.init 27 27 0 0.0
.init_array 1064 1064 0 0.0
.rodata 185184 185184 0 0.0
.text 2527506 2528402 896 0.0
thermostat-no-ble arm64 (read only) 4412628 4413700 1072 0.0
(read/write) 242064 245096 3032 1.3
.bss 121768 121800 32 0.0
.data 3360 3360 0 0.0
.data.rel.ro 103576 103576 0 0.0
.dynamic 512 512 0 0.0
.got 8616 8616 0 0.0
.init 24 24 0 0.0
.init_array 416 424 8 1.9
.rodata 159116 159116 0 0.0
.text 3919016 3920056 1040 0.0
tv-app debug (read only) 5700889 5701801 912 0.0
(read/write) 352424 352488 64 0.0
.bss 244272 244336 64 0.0
.data 6496 6496 0 0.0
.data.rel.ro 94392 94392 0 0.0
.dynamic 624 624 0 0.0
.got 5496 5496 0 0.0
.init 27 27 0 0.0
.init_array 1136 1136 0 0.0
.rodata 289698 289698 0 0.0
.text 5169251 5170163 912 0.0
tv-casting-app debug (read only) 9860073 9860985 912 0.0
(read/write) 340168 340232 64 0.0
.bss 156176 156240 64 0.0
.data 2944 2944 0 0.0
.data.rel.ro 174168 174168 0 0.0
.dynamic 624 624 0 0.0
.got 5072 5072 0 0.0
.init 27 27 0 0.0
.init_array 1168 1168 0 0.0
.rodata 382672 382672 0 0.0
.text 9011779 9012691 912 0.0
mbed lock-app-release cy8cproto_062_4343w (read only) 6224 6224 0 0.0
(read/write) 2531592 2531736 144 0.0
.bss 220424 220448 24 0.0
.data 5200 5200 0 0.0
.text 1494276 1494420 144 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1102036 1102340 304 0.0
bss 130807 130831 24 0.0
rodata 112812 112828 16 0.0
text 810680 810824 144 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1221588 1221788 200 0.0
bss 122897 122921 24 0.0
rodata 141772 141788 16 0.0
text 806404 806548 144 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1050440 1050584 144 0.0
bss 129665 129689 24 0.0
rodata 100184 100184 0 0.0
text 772732 772864 132 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 834488 834464 -24 -0.0
(read/write) 1795300 1795756 456 0.0
.bss 196188 196212 24 0.0
.data 2664 2664 0 0.0
.text 1588060 1588492 432 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 837640 837608 -32 -0.0
(read/write) 1717396 1717804 408 0.0
.bss 193068 193092 24 0.0
.data 2632 2640 8 0.3
.text 1513308 1513684 376 0.0
light cy8ckit_062s2_43012 (read only) 844368 844336 -32 -0.0
(read/write) 1636516 1636932 416 0.0
.bss 186532 186556 24 0.0
.data 2440 2448 8 0.3
.text 1439156 1439540 384 0.0
lock cy8ckit_062s2_43012 (read only) 817208 817184 -24 -0.0
(read/write) 1666428 1666820 392 0.0
.bss 213692 213716 24 0.0
.data 2440 2440 0 0.0
.text 1441908 1442276 368 0.0
qpg lighting-app qpg6105+debug (read/write) 1128992 1129148 156 0.0
.bss 102432 102456 24 0.0
.data 820 824 4 0.5
.text 641376 641528 152 0.0
lock-app qpg6105+debug (read/write) 1089088 1089220 132 0.0
.bss 97176 97200 24 0.0
.data 840 844 4 0.5
.text 601468 601604 136 0.0
stm32 light STM32WB5MM-DK (read/write) 600149 600321 172 0.0
.bss 128296 128320 24 0.0
.data 668 668 0 0.0
.rodata 79596 79604 8 0.0
.text 381864 382000 136 0.0
telink air-quality-sensor-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 822878 823106 228 0.0
bss 49636 49660 24 0.0
text 615784 615972 188 0.0
all-clusters-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 1091584 1091820 236 0.0
bss 101756 101780 24 0.0
text 792816 793012 196 0.0
all-clusters-minimal-app tlsr9528a (read only) 47960 47960 0 0.0
(read/write) 1049080 1049292 212 0.0
bss 110060 110084 24 0.0
text 764164 764334 170 0.0
bridge-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 909768 909972 204 0.0
bss 93092 93116 24 0.0
text 651614 651784 170 0.0
contact-sensor-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 824558 824762 204 0.0
bss 49684 49708 24 0.0
text 617522 617686 164 0.0
light-switch-app-ota-shell-factory-data tlsr9528a (read only) 51584 51584 0 0.0
(read/write) 930260 930472 212 0.0
bss 77684 77708 24 0.0
text 697660 697830 170 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d (read only) 29122 29122 0 0.0
(read/write) 1072964 1073168 204 0.0
bss 100172 100196 24 0.0
text 777018 777188 170 0.0
lock-app-dfu tlsr9528a (read only) 51584 51584 0 0.0
(read/write) 902636 902848 212 0.0
bss 69148 69172 24 0.0
text 652904 653074 170 0.0
ota-requestor-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 928912 929124 212 0.0
bss 92672 92696 24 0.0
text 670798 670968 170 0.0
pump-app tlsr9258a_retention (read only) 51774 51774 0 0.0
(read/write) 827118 827322 204 0.0
bss 49792 49816 24 0.0
text 620478 620642 164 0.0
pump-controller-app tlsr9518adk80d (read only) 31872 31872 0 0.0
(read/write) 790832 791036 204 0.0
bss 55992 56016 24 0.0
text 591230 591400 170 0.0
shell tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 677148 677148 0 0.0
bss 73672 73672 0 0.0
text 462406 462406 0 0.0
smoke_co_alarm-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 832094 832298 204 0.0
bss 51316 51340 24 0.0
text 623892 624056 164 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d (read only) 32220 32220 0 0.0
(read/write) 850793 851005 212 0.0
bss 59468 59492 24 0.0
text 635940 636110 170 0.0
thermostat tlsr9518adk80d (read only) 31872 31872 0 0.0
(read/write) 816492 816704 212 0.0
bss 56280 56304 24 0.0
text 610938 611108 170 0.0
window-covering tlsr9258a (read only) 51584 51584 0 0.0
(read/write) 834596 834808 212 0.0
bss 68056 68080 24 0.0
text 626194 626364 170 0.0

@mergify mergify bot merged commit 0b4caea into project-chip:master Mar 4, 2024
58 checks passed
erwinpan1 pushed a commit to erwinpan1/connectedhomeip that referenced this pull request Mar 7, 2024
* Introduce AttributeAccessInterface lookup cache

- Running TC_DeviceBasicComposition test caused, for a single Wildcard read,
  44622 iterations through the AttributeAccessInterface (AAI) lookup loop. This
  is significant runtime cost on embedded devices, when a wildcard subscription
  is established or when trying to iterate over changes of attributes.
- Instrumented analysis showed that significant locality exists within
  the lookup, which could be exploited by a cache.
- This PR introduces a cache, and its use, in AAI lookups. On same workload as
  the initial investigation, the total number of iterations of the costly loop
  went from 44622 --> 4864, a factor of almost 10, for very little additional
  RAM usage (single entry in cache).

Issue project-chip#31405

Testing done:
- Added unit tests
- Integration tests still pass
- TC_BasicDeviceComposition still succeeds

* Restyled by clang-format

* Appease the Gods of Lint with a BUILD.gn entry

* Address review comments by simplifying interface

* Restyled by clang-format

* Update src/app/AttributeAccessInterfaceCache.h

Co-authored-by: Boris Zbarsky <[email protected]>

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Boris Zbarsky <[email protected]>
huangxuyong pushed a commit to huangxuyong/connectedhomeip that referenced this pull request Mar 19, 2024
* Introduce AttributeAccessInterface lookup cache

- Running TC_DeviceBasicComposition test caused, for a single Wildcard read,
  44622 iterations through the AttributeAccessInterface (AAI) lookup loop. This
  is significant runtime cost on embedded devices, when a wildcard subscription
  is established or when trying to iterate over changes of attributes.
- Instrumented analysis showed that significant locality exists within
  the lookup, which could be exploited by a cache.
- This PR introduces a cache, and its use, in AAI lookups. On same workload as
  the initial investigation, the total number of iterations of the costly loop
  went from 44622 --> 4864, a factor of almost 10, for very little additional
  RAM usage (single entry in cache).

Issue project-chip#31405

Testing done:
- Added unit tests
- Integration tests still pass
- TC_BasicDeviceComposition still succeeds

* Restyled by clang-format

* Appease the Gods of Lint with a BUILD.gn entry

* Address review comments by simplifying interface

* Restyled by clang-format

* Update src/app/AttributeAccessInterfaceCache.h

Co-authored-by: Boris Zbarsky <[email protected]>

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Boris Zbarsky <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants