I have an application that makes multiple calls to a data server, parses the data returned, and stored it in a SQLite database. When running on an older iPad (3rd Gen), I am receiving memory warnings that ultimately terminate the app.
I initially tried using the Xamarin Profiler, but the profiler immediately stops after starting the app with multiple exception messages in the profiler output (NullReferenceException, OutOfMemoryException, StackOverflowException) so that has been a non-starter thus far.
I tried profiling using HeapShot with the iOS simulator, taking a memory snapshot every 10 seconds. During the data transfer process, I am seeing a big jump in total memory size (jumping from ~8MB when the app is idle to over 140MB, as shown in the attached screenshots). When I expand the source, the size of the items underneath it don't add up to the 142MB (Attached Photo 1).
When inversing references in HeapShot, it looks like a large amount of memory is listed under (Attached Photo 2).
Is there anything useful that can be gathered from looking at these logs? Is there a better approach that I should be using to figure out what is causing the memory warnings when debugging the app on a physical device?