Skip to content

Further improvements to FabricTableImpl #38846

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

Merged
merged 1 commit into from
May 20, 2025

Conversation

gmarcosb
Copy link
Contributor

@gmarcosb gmarcosb commented May 9, 2025

Addendum to #38073

Further improvements to FabricTableImpl to reduce copying & memory allocation by writing directly into function argument instead of allocating & copying

Important with TLS clusters where entry is > 3k

Testing

Tested in CI

@gmarcosb gmarcosb requested a review from lpbeliveau-silabs May 9, 2025 17:18
@github-actions github-actions bot added lib app support icd Intermittently Connected Devices labels May 9, 2025
Copy link

github-actions bot commented May 9, 2025

PR #38846: Size comparison from 99c3a2d to 685d0aa

Full report (24 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, qpg, stm32, telink)
platform target config section 99c3a2d 685d0aa change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102758 1103164 406 0.0
RAM 94882 94882 0 0.0
bl702 lighting-app bl702+eth FLASH 657604 658010 406 0.1
RAM 33645 33645 0 0.0
bl702+wifi FLASH 834858 835264 406 0.0
RAM 22369 22369 0 0.0
bl706+mfd+rpc+littlefs FLASH 1067638 1068044 406 0.0
RAM 32293 32293 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 898530 899040 510 0.1
RAM 27040 27040 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 981314 981720 406 0.0
RAM 24780 24780 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 822260 822580 320 0.0
RAM 120296 120296 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 832072 832392 320 0.0
RAM 125432 125432 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 778448 778776 328 0.0
RAM 113780 113780 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 762780 763108 328 0.0
RAM 113988 113988 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 549026 549354 328 0.1
RAM 205192 205192 0 0.0
lock CC3235SF_LAUNCHXL FLASH 581082 581410 328 0.1
RAM 205440 205440 0 0.0
qpg lighting-app qpg6105+debug FLASH 667780 668108 328 0.0
RAM 105200 105200 0 0.0
lock-app qpg6105+debug FLASH 626184 626512 328 0.1
RAM 99820 99820 0 0.0
stm32 light STM32WB5MM-DK FLASH 466620 466956 336 0.1
RAM 141504 141504 0 0.0
telink bridge-app tl7218x FLASH 677290 677522 232 0.0
694024 694256 232 0.0
RAM 90692 90692 0 0.0
101832 101832 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 774656 774888 232 0.0
RAM 50072 50072 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 771772 772004 232 0.0
RAM 40372 40372 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 760228 760460 232 0.0
781762 781994 232 0.0
RAM 97492 97492 0 0.0
109252 109252 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 687266 687498 232 0.0
703140 703372 232 0.0
RAM 51540 51540 0 0.0
62572 62572 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 715716 715948 232 0.0
741094 741326 232 0.0
RAM 73360 73360 0 0.0
85752 85752 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 713044 713276 232 0.0
RAM 36996 36996 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 608518 608750 232 0.0
608060 608292 232 0.0
RAM 106748 106748 0 0.0
119468 119468 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 795230 795466 236 0.0
817024 817260 236 0.0
RAM 96348 96348 0 0.0
107520 107520 0 0.0

Copy link

github-actions bot commented May 9, 2025

PR #38846: Size comparison from 38f7b0d to d581a80

Full report (1 build for stm32)
platform target config section 38f7b0d d581a80 change % change
stm32 light STM32WB5MM-DK FLASH 466052 466388 336 0.1
RAM 141504 141504 0 0.0

Copy link

github-actions bot commented May 9, 2025

PR #38846: Size comparison from 38f7b0d to 095b74a

Increases above 0.2%:

platform target config section 38f7b0d 095b74a change % change
efr32 lock-app BRD4338a FLASH 772736 776128 3392 0.4
window-app BRD4187C FLASH 1038760 1042160 3400 0.3
linux air-purifier-app debug RAM 115032 115736 704 0.6
all-clusters-minimal-app debug RAM 225000 225784 784 0.3
bridge-app debug RAM 204640 205344 704 0.3
camera-app debug RAM 226800 227536 736 0.3
fabric-bridge-app debug RAM 190704 191408 704 0.4
lighting-app debug+rpc+ui RAM 207672 208392 720 0.3
lock-app debug RAM 194904 195608 704 0.4
ota-provider-app debug RAM 184120 184840 720 0.4
ota-requestor-app debug RAM 187992 188712 720 0.4
shell debug RAM 148072 148880 808 0.5
thermostat-no-ble arm64 RAM 231352 232064 712 0.3
psoc6 all-clusters-minimal cy8ckit_062s2_43012 FLASH 1569756 1573716 3960 0.3
tizen all-clusters-app arm unknown 5212 5228 16 0.3
RAM 94832 95228 396 0.4
Full report (75 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 38f7b0d 095b74a change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1101966 1102372 406 0.0
RAM 94882 94882 0 0.0
bl702 lighting-app bl702+eth FLASH 656842 657248 406 0.1
RAM 33645 33645 0 0.0
bl702+wifi FLASH 834096 834502 406 0.0
RAM 22369 22369 0 0.0
bl706+mfd+rpc+littlefs FLASH 1066884 1067290 406 0.0
RAM 32293 32293 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 897768 898278 510 0.1
RAM 27040 27040 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 980552 980958 406 0.0
RAM 24780 24780 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 821748 822068 320 0.0
RAM 120296 120296 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 831560 831880 320 0.0
RAM 125432 125432 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 778448 778776 328 0.0
RAM 113780 113780 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 762780 763108 328 0.0
RAM 113988 113988 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 549026 549354 328 0.1
RAM 205192 205192 0 0.0
lock CC3235SF_LAUNCHXL FLASH 581074 581402 328 0.1
RAM 205440 205440 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 663261 663581 320 0.0
RAM 77324 77324 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 683113 683433 320 0.0
RAM 79964 79964 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 683113 683433 320 0.0
RAM 79964 79964 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 640053 640373 320 0.0
RAM 72392 72392 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 623405 623725 320 0.1
RAM 73564 73564 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 643041 643361 320 0.0
RAM 76116 76116 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 643041 643361 320 0.0
RAM 76116 76116 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 643701 644021 320 0.0
RAM 76588 76588 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 663417 663737 320 0.0
RAM 79140 79140 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 663417 663737 320 0.0
RAM 79140 79140 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620065 620385 320 0.1
RAM 70684 70684 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 639917 640237 320 0.1
RAM 73316 73316 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 639917 640237 320 0.1
RAM 73316 73316 0 0.0
efr32 lock-app BRD4187C FLASH 946180 946532 352 0.0
RAM 132096 132096 0 0.0
BRD4338a FLASH 772736 776128 3392 0.4
RAM 173328 173328 0 0.0
window-app BRD4187C FLASH 1038760 1042160 3400 0.3
RAM 128232 128232 0 0.0
esp32 all-clusters-app c3devkit DRAM 103328 103328 0 0.0
FLASH 1805448 1805700 252 0.0
IRAM 83846 83846 0 0.0
m5stack DRAM 121932 121932 0 0.0
FLASH 1770642 1771418 776 0.0
IRAM 117043 117043 0 0.0
linux air-purifier-app debug unknown 4848 4848 0 0.0
FLASH 2787212 2789734 2522 0.1
RAM 115032 115736 704 0.6
all-clusters-app debug unknown 5656 5656 0 0.0
FLASH 6340936 6344166 3230 0.1
RAM 533496 534280 784 0.1
all-clusters-minimal-app debug unknown 5528 5528 0 0.0
FLASH 5445196 5448426 3230 0.1
RAM 225000 225784 784 0.3
bridge-app debug unknown 5560 5560 0 0.0
FLASH 4761600 4764122 2522 0.1
RAM 204640 205344 704 0.3
camera-app debug unknown 8856 8856 0 0.0
FLASH 6896523 6899035 2512 0.0
RAM 226800 227536 736 0.3
camera-controller debug unknown 9240 9240 0 0.0
FLASH 14317067 14319595 2528 0.0
RAM 658800 659504 704 0.1
chip-tool debug unknown 6256 6256 0 0.0
FLASH 14604557 14607079 2522 0.0
RAM 645552 646264 712 0.1
chip-tool-ipv6only arm64 unknown 40328 40352 24 0.1
FLASH 12582272 12584464 2192 0.0
RAM 691856 692568 712 0.1
fabric-admin debug unknown 5936 5936 0 0.0
FLASH 12676137 12678659 2522 0.0
RAM 644912 645632 720 0.1
fabric-bridge-app debug unknown 4808 4808 0 0.0
FLASH 4578638 4581160 2522 0.1
RAM 190704 191408 704 0.4
fabric-sync debug unknown 5064 5064 0 0.0
FLASH 5718885 5721413 2528 0.0
RAM 486944 487648 704 0.1
lighting-app debug+rpc+ui unknown 6264 6264 0 0.0
FLASH 5648177 5650689 2512 0.0
RAM 207672 208392 720 0.3
lock-app debug unknown 5496 5496 0 0.0
FLASH 4821428 4823950 2522 0.1
RAM 194904 195608 704 0.4
ota-provider-app debug unknown 4848 4848 0 0.0
FLASH 4441386 4443908 2522 0.1
RAM 184120 184840 720 0.4
ota-requestor-app debug unknown 4800 4800 0 0.0
FLASH 4569152 4571674 2522 0.1
RAM 187992 188712 720 0.4
shell debug unknown 4272 4272 0 0.0
FLASH 3078572 3081804 3232 0.1
RAM 148072 148880 808 0.5
thermostat-no-ble arm64 unknown 9608 9632 24 0.2
FLASH 4232136 4234344 2208 0.1
RAM 231352 232064 712 0.3
tv-app debug unknown 5832 5832 0 0.0
FLASH 6076117 6078629 2512 0.0
RAM 611568 612288 720 0.1
tv-casting-app debug unknown 5416 5416 0 0.0
FLASH 12796765 12799421 2656 0.0
RAM 766104 766952 848 0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 919200 919548 348 0.0
RAM 167328 167328 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 911184 911236 52 0.0
RAM 145572 145572 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 856424 856772 348 0.0
RAM 141091 141091 0 0.0
nxp contact k32w0+release FLASH 591888 592200 312 0.1
RAM 72848 72848 0 0.0
mcxw71+release FLASH 624648 624976 328 0.1
RAM 63188 63188 0 0.0
light k32w0+release FLASH 617820 618132 312 0.1
RAM 72144 72144 0 0.0
k32w1+release FLASH 709120 709448 328 0.0
RAM 72036 72036 0 0.0
lock mcxw71+release FLASH 774176 774504 328 0.0
RAM 67612 67612 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1665252 1669212 3960 0.2
RAM 212328 212328 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1569756 1573716 3960 0.3
RAM 208504 208504 0 0.0
light cy8ckit_062s2_43012 FLASH 1447012 1450412 3400 0.2
RAM 197320 197320 0 0.0
lock cy8ckit_062s2_43012 FLASH 1476868 1480252 3384 0.2
RAM 225016 225016 0 0.0
qpg lighting-app qpg6105+debug FLASH 667212 667540 328 0.0
RAM 105200 105200 0 0.0
lock-app qpg6105+debug FLASH 625624 625952 328 0.1
RAM 99820 99820 0 0.0
stm32 light STM32WB5MM-DK FLASH 466052 466388 336 0.1
RAM 141504 141504 0 0.0
telink bridge-app tl7218x FLASH 693532 693764 232 0.0
RAM 101832 101832 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 774164 774396 232 0.0
RAM 50072 50072 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 771280 771512 232 0.0
RAM 40372 40372 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 781270 759968 -21302 -2.7
RAM 109252 97492 -11760 -10.8
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 702648 687006 -15642 -2.2
RAM 62572 51540 -11032 -17.6
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 740602 715456 -25146 -3.4
RAM 85752 73360 -12392 -14.5
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 712552 712784 232 0.0
RAM 36996 36996 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 607568 607800 232 0.0
RAM 119468 119468 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 816530 794972 -21558 -2.6
RAM 107520 96348 -11172 -10.4
tizen all-clusters-app arm unknown 5212 5228 16 0.3
FLASH 1812288 1813740 1452 0.1
RAM 94832 95228 396 0.4
chip-tool-ubsan arm unknown 20600 20612 12 0.1
FLASH 20843598 20850206 6608 0.0
RAM 9067720 9070988 3268 0.0

@mergify mergify bot merged commit 5d1a30f into project-chip:master May 20, 2025
71 checks passed
@github-project-automation github-project-automation bot moved this from Todo to Done in [Device Type] Cameras May 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants