Closed myneur closed 4 years ago
Fonts (finally 11k saved: now 53k with one event)
✅-500: fontMinutes shared with fontSmall
✅-6000?: remove some i18n glyphs from fontSmall
✅global vars
✅3-4/9 of 333B icons used: bitmaps2fonts (when all icons used) (9 icons: 3000 B, font 1700B)
enum instead of dictionary
not saving calendar_colors
array to be checked by item array length instead of dictionary
merge sort instead of bubbles
https://forums.garmin.com/developer/connect-iq/f/discussion/6000/preserving-memory-in-monkey-c
prevent repetitive rendering except for metrics
minute changed => redraw: arc, metric, now, event time
data changed => redraw all
metric changed => redraw metric
calendar dynamic scheduling
✓ Turn data loading off when no BT
Dynamic data loading frequency:
✓ loading quickly after layout,
✓ then in lower frequency.
investigate: how quickly to load after error
? Stop loading after auth error and warn it's not loading.
precomputation:
events and markers
positions like notification
jump tables to choose activity <=3 | <= 1 <=5 | ==0 ==4
no redraw => 0-1 ms
just activity => 1-2 ms
calendar without events => 2-3 ms
full calendar => 4-5 ms
Link to subfeature: https://myneur.productboard.com/feature-board/planning/features/3266133
Memory
Fonts (finally 11k saved: now 53k with one event)
✅-500: fontMinutes shared with fontSmall
✅-6000?: remove some i18n glyphs from fontSmall
✅global vars
✅3-4/9 of 333B icons used: bitmaps2fonts (when all icons used) (9 icons: 3000 B, font 1700B)
enum instead of dictionary
not saving calendar_colors
array to be checked by item array length instead of dictionary
merge sort instead of bubbles
https://forums.garmin.com/developer/connect-iq/f/discussion/6000/preserving-memory-in-monkey-c
Battery
prevent repetitive rendering except for metrics
minute changed => redraw: arc, metric, now, event time
data changed => redraw all
metric changed => redraw metric
calendar dynamic scheduling
✓ Turn data loading off when no BT
Dynamic data loading frequency:
✓ loading quickly after layout,
✓ then in lower frequency.
investigate: how quickly to load after error
? Stop loading after auth error and warn it's not loading.
precomputation:
events and markers
positions like notification
jump tables to choose activity <=3 | <= 1 <=5 | ==0 ==4
Stats
no redraw => 0-1 ms
just activity => 1-2 ms
calendar without events => 2-3 ms
full calendar => 4-5 ms