Complete

This is by design.

The settings are being serialized to send to the simulator or phone.

opening settings editor consumes app memory

sdk 4.0.7
eclipse CIQ plug in: 4.1.0.beta1
eclipse ver: 2021-09 (4.21.0) Build id: 20210910-1417
windows 10
watch face
minSdkVersion 2.4.0

CASE 1

wf starts, peak memory 88.0

[ecilpse][app settings editor] - open only window and choose project (no push any buttons), peak memory 90.0

CASE 2

wf starts, peak memory 88.0

[simulator][property data]  - open only window (no push any buttons), peak memory 90.0

In both cases there is no calls for app.onSettingsChanged, settings data exist in memory so there shouldn't additional memory consumption.

Now, when you have e.g. 90.5 kB used from 92 there is an error "unable to serialise data" or "out of memory exception" if i choose OK in setting editor.

Parents
  • So it's good news that only *table* is loaded Slight smile

    There several "type" of strings:

    - system - for settings, properties, app name etc - nothing to do

    - text for users, usually language dependent

    - "data"  you can put any data into string and convert to number, double etc

    Solution depends on situation, but you can do always one thing. When app starts, you have a lot of memory so you can put all non system string in one and parse it and insert into storage at form match your requirements (e.g. months/weekday into array of string). After then you can access string as you want without loading rez/strings any more (or rather to time when you don't change strings).

    No I've cleared my code and save a few kB so it's ok, The problem is with new SDK e.g new memory bomb e.g. connectionInfo 332b adding to getDeviceSettings...

    And also 2 thing CONST and ENUM, it is incredible that it consumes memory they are common variables so why somebody add? For autnum of enum? To save memory we need #define statement which puts defined values  into code...

    But subject of this thread is settings. Why there is the peak? If I have several WF and somebody change settings in non active WF system cane do it so why there is the peak if app runs? Why settings can't run like strings?

Comment
  • So it's good news that only *table* is loaded Slight smile

    There several "type" of strings:

    - system - for settings, properties, app name etc - nothing to do

    - text for users, usually language dependent

    - "data"  you can put any data into string and convert to number, double etc

    Solution depends on situation, but you can do always one thing. When app starts, you have a lot of memory so you can put all non system string in one and parse it and insert into storage at form match your requirements (e.g. months/weekday into array of string). After then you can access string as you want without loading rez/strings any more (or rather to time when you don't change strings).

    No I've cleared my code and save a few kB so it's ok, The problem is with new SDK e.g new memory bomb e.g. connectionInfo 332b adding to getDeviceSettings...

    And also 2 thing CONST and ENUM, it is incredible that it consumes memory they are common variables so why somebody add? For autnum of enum? To save memory we need #define statement which puts defined values  into code...

    But subject of this thread is settings. Why there is the peak? If I have several WF and somebody change settings in non active WF system cane do it so why there is the peak if app runs? Why settings can't run like strings?

Children
No Data