connectedhomeip
Optimize RAM utilization for WriteHandler
#34992
Merged

Optimize RAM utilization for WriteHandler #34992

andy31415
andy31415255 days ago

This is pulled from #34754 as a stand-alone improvement:

  • WriteHandlers have a multiplicity factor as an object pool resides in InteractionModelEngine
  • Replacing various booleans with a bit-based flag system as well as re-ordering members should result in some RAM savings (likely minor, but non-zero)
andy31415 Pull RAM usage reduction from write impl
59eb04e4
andy31415 remove some extra added includes
9b1b9a97
andy31415 Apply review comment from previous PR
6a289f98
semanticdiff-com
semanticdiff-com255 days ago

Review changes with SemanticDiff.

github-actions github-actions added app
pullapprove pullapprove requested a review from andyg-apple andyg-apple 255 days ago
pullapprove pullapprove requested a review from anush-apple anush-apple 255 days ago
pullapprove pullapprove requested a review from arkq arkq 255 days ago
pullapprove pullapprove requested a review from axelnxp axelnxp 255 days ago
pullapprove pullapprove requested a review from bauerschwan bauerschwan 255 days ago
pullapprove pullapprove requested a review from bzbarsky-apple bzbarsky-apple 255 days ago
pullapprove pullapprove requested a review from carol-apple carol-apple 255 days ago
pullapprove pullapprove requested a review from chapongatien chapongatien 255 days ago
pullapprove pullapprove requested a review from chrisdecenzo chrisdecenzo 255 days ago
pullapprove pullapprove requested a review from chshu chshu 255 days ago
pullapprove pullapprove requested a review from chulspro chulspro 255 days ago
pullapprove pullapprove requested a review from cliffamzn cliffamzn 255 days ago
pullapprove pullapprove requested a review from Damian-Nordic Damian-Nordic 255 days ago
pullapprove pullapprove requested a review from dhrishi dhrishi 255 days ago
pullapprove pullapprove requested a review from doru91 doru91 255 days ago
pullapprove pullapprove requested a review from fessehaeve fessehaeve 255 days ago
pullapprove pullapprove requested a review from harimau-qirex harimau-qirex 255 days ago
pullapprove pullapprove requested a review from harsha-rajendran harsha-rajendran 255 days ago
pullapprove pullapprove requested a review from hawk248 hawk248 255 days ago
pullapprove pullapprove requested a review from hicklin hicklin 255 days ago
pullapprove pullapprove requested a review from jepenven-silabs jepenven-silabs 255 days ago
pullapprove pullapprove requested a review from jmartinez-silabs jmartinez-silabs 255 days ago
pullapprove pullapprove requested a review from jmeg-sfy jmeg-sfy 255 days ago
pullapprove pullapprove requested a review from joonhaengHeo joonhaengHeo 255 days ago
pullapprove pullapprove requested a review from jtung-apple jtung-apple 255 days ago
pullapprove pullapprove requested a review from kiel-apple kiel-apple 255 days ago
pullapprove pullapprove requested a review from kkasperczyk-no kkasperczyk-no 255 days ago
pullapprove pullapprove requested a review from kpschoedel kpschoedel 255 days ago
pullapprove pullapprove requested a review from ksperling-apple ksperling-apple 255 days ago
pullapprove pullapprove requested a review from lazarkov lazarkov 255 days ago
pullapprove pullapprove requested a review from lpbeliveau-silabs lpbeliveau-silabs 255 days ago
pullapprove pullapprove requested a review from LuDuda LuDuda 255 days ago
pullapprove pullapprove requested a review from mhazley mhazley 255 days ago
pullapprove pullapprove requested a review from mkardous-silabs mkardous-silabs 255 days ago
pullapprove pullapprove requested a review from mspang mspang 255 days ago
pullapprove pullapprove requested a review from nivi-apple nivi-apple 255 days ago
pullapprove pullapprove requested a review from p0fi p0fi 255 days ago
pullapprove pullapprove requested a review from pidarped pidarped 255 days ago
pullapprove pullapprove requested a review from plauric plauric 255 days ago
pullapprove pullapprove requested a review from rcasallas-silabs rcasallas-silabs 255 days ago
pullapprove pullapprove requested a review from ReneJosefsen ReneJosefsen 255 days ago
pullapprove pullapprove requested a review from robszewczyk robszewczyk 255 days ago
pullapprove pullapprove requested a review from saurabhst saurabhst 255 days ago
pullapprove pullapprove requested a review from selissia selissia 255 days ago
pullapprove pullapprove requested a review from sharadb-amazon sharadb-amazon 255 days ago
pullapprove pullapprove requested a review from tcarmelveilleux tcarmelveilleux 255 days ago
pullapprove pullapprove requested a review from tecimovic tecimovic 255 days ago
pullapprove pullapprove requested a review from tehampson tehampson 255 days ago
pullapprove pullapprove requested a review from tima-q tima-q 255 days ago
pullapprove pullapprove requested a review from tobiasgraf tobiasgraf 255 days ago
pullapprove pullapprove requested a review from turon turon 255 days ago
pullapprove pullapprove requested a review from vivien-apple vivien-apple 255 days ago
pullapprove pullapprove requested a review from wiba-nordic wiba-nordic 255 days ago
pullapprove pullapprove requested a review from woody-apple woody-apple 255 days ago
pullapprove pullapprove requested a review from younghak-hwang younghak-hwang 255 days ago
pullapprove pullapprove requested a review from yufengwangca yufengwangca 255 days ago
pullapprove pullapprove requested a review from yunhanw-google yunhanw-google 255 days ago
pullapprove pullapprove added review - pending
github-actions
github-actions255 days ago (edited 255 days ago)

PR #34992: Size comparison from 51dbf0a to 6a289f9

Full report (84 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 51dbf0a 6a289f9 change % change
bl602 lighting-app bl602 FLASH 1278128 1278282 154 0.0
RAM 95928 95880 -48 -0.1
bl602+mfd FLASH 1292238 1292392 154 0.0
RAM 96072 96024 -48 -0.0
bl602+rpc FLASH 1317092 1317246 154 0.0
RAM 104352 104304 -48 -0.0
bl702 lighting-app bl702 FLASH 943988 944130 142 0.0
RAM 15209 15209 0 0.0
bl702+mfd FLASH 946388 946530 142 0.0
RAM 15353 15353 0 0.0
bl702+rpc FLASH 1039044 1039186 142 0.0
RAM 24221 24221 0 0.0
bl706-eth FLASH 646706 646848 142 0.0
RAM 25305 25305 0 0.0
bl706-wifi FLASH 894312 894448 136 0.0
RAM 14525 14525 0 0.0
bl702l lighting-app bl702l FLASH 960392 960534 142 0.0
RAM 16868 16868 0 0.0
bl702l+mfd FLASH 963270 963412 142 0.0
RAM 17012 17012 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 803140 803316 176 0.0
RAM 117628 117604 -24 -0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 818984 819160 176 0.0
RAM 125220 125196 -24 -0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 811324 811484 160 0.0
RAM 119500 119476 -24 -0.0
pump-app LP_EM_CC1354P10_6 FLASH 763496 763632 136 0.0
RAM 113648 113640 -8 -0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 747996 748172 176 0.0
RAM 113840 113816 -24 -0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 613106 613362 256 0.0
RAM 205404 205356 -48 -0.0
lock CC3235SF_LAUNCHXL FLASH 655074 655314 240 0.0
RAM 205620 205572 -48 -0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 672289 672425 136 0.0
RAM 78348 78300 -48 -0.1
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 692149 692285 136 0.0
RAM 80980 80932 -48 -0.1
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 692149 692285 136 0.0
RAM 80980 80932 -48 -0.1
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 649077 649221 144 0.0
RAM 73416 73368 -48 -0.1
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 610721 610889 168 0.0
RAM 71340 71292 -48 -0.1
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 630349 630517 168 0.0
RAM 73892 73844 -48 -0.1
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 630349 630517 168 0.0
RAM 73892 73844 -48 -0.1
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 628185 628345 160 0.0
RAM 74356 74308 -48 -0.1
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 647893 648053 160 0.0
RAM 76908 76860 -48 -0.1
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 647893 648053 160 0.0
RAM 76908 76860 -48 -0.1
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 601717 601877 160 0.0
RAM 68388 68340 -48 -0.1
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 621577 621737 160 0.0
RAM 71020 70972 -48 -0.1
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 621577 621737 160 0.0
RAM 71020 70972 -48 -0.1
efr32 lighting-app BRD4187C FLASH 930312 930432 120 0.0
RAM 135144 135096 -48 -0.0
lock-app BRD4338a FLASH 737468 737724 256 0.0
RAM 207864 207816 -48 -0.0
window-app BRD4187C FLASH 1015444 1015716 272 0.0
RAM 127084 127036 -48 -0.0
esp32 all-clusters-app c3devkit DRAM 94176 94128 -48 -0.1
FLASH 1533510 1533652 142 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115104 115056 -48 -0.0
FLASH 1543238 1543398 160 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4624 4624 0 0.0
FLASH 2754677 2755335 658 0.0
RAM 128408 128408 0 0.0
all-clusters-app debug unknown 5408 5408 0 0.0
FLASH 6036734 6037392 658 0.0
RAM 509704 509704 0 0.0
all-clusters-minimal-app debug unknown 5304 5304 0 0.0
FLASH 5375786 5376444 658 0.0
RAM 240072 240072 0 0.0
bridge-app debug unknown 5288 5288 0 0.0
FLASH 4728474 4729132 658 0.0
RAM 216952 216952 0 0.0
chip-tool debug unknown 5832 5832 0 0.0
FLASH 12488074 12488732 658 0.0
RAM 557202 557202 0 0.0
chip-tool-ipv6only arm64 unknown 20312 20312 0 0.0
FLASH 11163580 11164316 736 0.0
RAM 607272 607272 0 0.0
fabric-admin debug unknown 5672 5672 0 0.0
FLASH 11199311 11199969 658 0.0
RAM 554706 554706 0 0.0
fabric-bridge-app debug unknown 4520 4520 0 0.0
FLASH 4539238 4539896 658 0.0
RAM 203456 203456 0 0.0
lighting-app debug+rpc+ui unknown 5936 5936 0 0.0
FLASH 5663041 5663697 656 0.0
RAM 228008 228008 0 0.0
lock-app debug unknown 5224 5224 0 0.0
FLASH 4783222 4783880 658 0.0
RAM 203736 203736 0 0.0
ota-provider-app debug unknown 4600 4600 0 0.0
FLASH 4423294 4423952 658 0.0
RAM 197720 197720 0 0.0
ota-requestor-app debug unknown 4536 4536 0 0.0
FLASH 4561912 4562570 658 0.0
RAM 202256 202256 0 0.0
shell debug unknown 4176 4176 0 0.0
FLASH 3076221 3076877 656 0.0
RAM 159200 159200 0 0.0
thermostat-no-ble arm64 unknown 9352 9352 0 0.0
FLASH 4363556 4364292 736 0.0
RAM 242416 242416 0 0.0
tv-app debug unknown 5496 5496 0 0.0
FLASH 6006501 6007125 624 0.0
RAM 582968 582968 0 0.0
tv-casting-app debug unknown 5168 5168 0 0.0
FLASH 10691981 10692605 624 0.0
RAM 644280 644280 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 909012 909156 144 0.0
RAM 142255 142207 -48 -0.0
nrf7002dk_nrf5340_cpuapp FLASH 880932 881060 128 0.0
RAM 140394 140346 -48 -0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 840848 840992 144 0.0
RAM 141074 141026 -48 -0.0
nxp contact k32w0+release FLASH 577372 577548 176 0.0
RAM 70468 70444 -24 -0.0
k32w1+release FLASH 592680 592848 168 0.0
RAM 74456 74432 -24 -0.0
light k32w0+release FLASH 612816 612976 160 0.0
RAM 69940 69916 -24 -0.0
k32w1+release FLASH 677640 677800 160 0.0
RAM 83232 83208 -24 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1639108 1639340 232 0.0
RAM 210952 210904 -48 -0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1543892 1544108 216 0.0
RAM 207672 207624 -48 -0.0
light cy8ckit_062s2_43012 FLASH 1463796 1464028 232 0.0
RAM 200776 200728 -48 -0.0
lock cy8ckit_062s2_43012 FLASH 1462460 1462676 216 0.0
RAM 225112 225064 -48 -0.0
qpg lighting-app qpg6105+debug FLASH 655908 656076 168 0.0
RAM 105152 105128 -24 -0.0
lock-app qpg6105+debug FLASH 613248 613416 168 0.0
RAM 99636 99612 -24 -0.0
stm32 light STM32WB5MM-DK FLASH 478304 478440 136 0.0
RAM 144764 144716 -48 -0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620118 620278 160 0.0
RAM 50940 50932 -8 -0.0
all-clusters-app tlsr9118bdk40d FLASH 680630 680778 148 0.0
RAM 149592 149544 -48 -0.0
all-clusters-minimal-app tlsr9528a FLASH 773898 774046 148 0.0
RAM 110752 110704 -48 -0.0
bridge-app tlsr9258a FLASH 678806 678954 148 0.0
RAM 91636 91588 -48 -0.1
contact-sensor-app tlsr9528a_retention FLASH 621714 621874 160 0.0
RAM 50980 50972 -8 -0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 707596 707756 160 0.0
RAM 74320 74312 -8 -0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 620640 620788 148 0.0
RAM 145580 145532 -48 -0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 806726 806874 148 0.0
RAM 99504 99456 -48 -0.0
lock-app-dfu tlsr9528a FLASH 654586 654746 160 0.0
RAM 67016 67008 -8 -0.0
ota-requestor-app tlsr9258a FLASH 696822 696970 148 0.0
RAM 91320 91272 -48 -0.1
pump-app-usb tlsr9518adk80d FLASH 631102 631262 160 0.0
RAM 55760 55752 -8 -0.0
pump-controller-app tlsr9518adk80d FLASH 608612 608772 160 0.0
RAM 53004 52996 -8 -0.0
shell tlsr9518adk80d FLASH 466810 466810 0 0.0
RAM 68660 68660 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 628502 628662 160 0.0
RAM 52700 52692 -8 -0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 652482 652642 160 0.0
RAM 56640 56632 -8 -0.0
thermostat tlsr9518adk80d FLASH 633666 633826 160 0.0
RAM 53400 53392 -8 -0.0
window-covering tlsr9118bdk40d FLASH 522646 522806 160 0.0
RAM 98540 98532 -8 -0.0
tizen all-clusters-app arm unknown 4808 4808 0 0.0
FLASH 1700832 1701344 512 0.0
RAM 89348 89300 -48 -0.1
chip-tool-ubsan arm unknown 10236 10236 0 0.0
FLASH 17307046 17308630 1584 0.0
RAM 7560508 7561324 816 0.0
yunhanw-google
yunhanw-google approved these changes on 2024-08-15
yunhanw-google254 days ago

Thank you!

woody-apple
woody-apple approved these changes on 2024-08-16
pullapprove pullapprove removed review - pending
pullapprove pullapprove added review - approved
mergify mergify merged 081598e6 into master 253 days ago

Login to write a write a comment.

Login via GitHub