Memory management for complex Data Fields

Hi, I have a complex data field (running web requests from BG) that is currently just on the memory limit for some of the devices (e.g. Fenix 5). It makes it very difficult for me to continue work with it since only a few more lines of code will cause it to go out of memory. My data field uses layouts and has some bitmap resources (arrow icons), hence I cannot use a simple DF. 

Ideally, I'd like to replace the bitmaps with a custom font that I have created (that includes the icons I need). Also, I'd like to start using relative layouts to automatically handle font size scaling for me, based on the width and height of the data field area. Right now I need lots of logic to fit the data nicely on every device and data field layout.  

However, I understand both custom fonts and layouts are memory heavy so perhaps a very wrong approach for saving memory :-) It would just make my life a lot easier and I could remove lots of logic and complexity from the code, and it would allow me to add new devices much quicker. 

Moving away from layouts to dc.writes could be a way to save memory but would also make the rendering a lot more complex to code. It seems Im stuck between a rock and a hard place on this one. Therefore seeking device from you experienced Garmin app developers. What would you have done in my place? Is there anything I haven't though of? 

TIA 
/Fredrik