PelionIoT / simple-mbed-cloud-client

Simple interface for Mbed Cloud Client - deprecated
Apache License 2.0
7 stars 21 forks source link

Disable C++ STL #80

Closed janjongboom closed 5 years ago

janjongboom commented 5 years ago

Based on the tip from https://github.com/ARMmbed/pelion-ready-example/pull/21. This saves 15K flash and 0.5K static RAM (and also some dynamic RAM, but that could have been a fluke).

Before:

Base (with memory tracing enabled)
===================================
Total Static RAM memory (data + bss): 78176 bytes
Total Flash memory (text + data): 426913 bytes

Heap size: 43701 / 117384 bytes (max: 50738 bytes)

After:

Disable STL
===========
Total Static RAM memory (data + bss): 77672 bytes
Total Flash memory (text + data): 411903 bytes

Heap size: 43257 / 117384 bytes (max: 50286 bytes)

Tested on K64F but would be good to verify in test farm.

@screamerbg

janjongboom commented 5 years ago

@screamerbg 15K of flash, not 10K. I'd make it something like:

Enable this if you're already using STL strings/vectors in your application. If you don't use STL functionality, keep this disabled, as it will increase flash usage by 15K.

screamerbg commented 5 years ago
+---------------------+-------------------------------------------------+---------+---------+
| target              | test suite                                      | result  |    time |
+---------------------+-------------------------------------------------+---------+---------+
| DISCO_F413ZH        | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   92.83 |
| DISCO_F413ZH        | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |   171.5 |
| DISCO_F746NG        | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  189.53 |
| DISCO_F746NG        | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   112.7 |
| DISCO_F769NI        | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  122.57 |
| DISCO_F769NI        | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   71.41 |
| DISCO_L475VG_IOT01A | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  167.52 |
| DISCO_L475VG_IOT01A | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   81.42 |
| EFM32GG11_STK3701   | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  143.38 |
| EFM32GG11_STK3701   | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   74.09 |
| GR_LYCHEE           | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  267.61 |
| GR_LYCHEE           | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   87.13 |
| K64F                | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |   185.3 |
| K64F                | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   87.38 |
| K66F                | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  159.49 |
| K66F                | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   80.52 |
| MTB_MXCHIP_EMW3166  | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  229.64 |
| MTB_MXCHIP_EMW3166  | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |  101.06 |
| MTB_USI_WM_BN_BM_22 | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  279.29 |
| MTB_USI_WM_BN_BM_22 | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |  109.33 |
| NUCLEO_F207ZG       | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   72.03 |
| NUCLEO_F207ZG       | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  176.29 |
| NUCLEO_F429ZI       | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  159.13 |
| NUCLEO_F429ZI       | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   73.01 |
| NUCLEO_F746ZG       | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  143.88 |
| NUCLEO_F746ZG       | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |    64.4 |
| NUCLEO_F767ZI       | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  140.15 |
| NUCLEO_F767ZI       | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   62.92 |
| NUMAKER_IOT_M487    | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   59.71 |
| NUMAKER_IOT_M487    | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  200.31 |
| NUMAKER_PFM_M487    | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  135.28 |
| NUMAKER_PFM_M487    | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   63.23 |
| NUMAKER_PFM_NUC472  | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  217.88 |
| NUMAKER_PFM_NUC472  | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |  142.51 |
| SDT64B              | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  174.22 |
| SDT64B              | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   88.22 |
| UBLOX_C030_U201     | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      | 1087.57 |
| UBLOX_C030_U201     | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |  142.58 |
| UBLOX_EVK_ODIN_W2   | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |  165.26 |
| UBLOX_EVK_ODIN_W2   | simple-mbed-cloud-client-tests-dev_mgmt-update  | TIMEOUT |  804.09 |
+---------------------+-------------------------------------------------+---------+---------+

The last result is due to random crash

screamerbg commented 5 years ago
+---------------+-------------------------------------------------+---------+---------+
| target        | test suite                                      | result  |    time |
+---------------+-------------------------------------------------+---------+---------+
| DISCO_F469NI  | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  823.97 |
| DISCO_F469NI  | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |    88.1 |
| NUCLEO_F412ZG | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  231.49 |
| NUCLEO_F412ZG | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   94.17 |
| NUCLEO_L476RG | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  329.85 |
| NUCLEO_L476RG | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |  188.97 |
| NUCLEO_L4R5ZI | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  258.62 |
| NUCLEO_L4R5ZI | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |  120.51 |
| RZ_A1H        | simple-mbed-cloud-client-tests-dev_mgmt-update  | OK      |  215.95 |
| RZ_A1H        | simple-mbed-cloud-client-tests-dev_mgmt-connect | OK      |   74.18 |
+---------------+-------------------------------------------------+---------+---------+