Memory Warnings on iPad, but only when running through instruments - ipad

I'm working on an app that works fine on all devices (all the way back to 3.0 and the first iPhone in fact). If I profile useing'Activity Monitor' instrument (Memory Monitor) tool the app runs fine, with no crashes, and no excessive memory usage reported.
However, when I run it in Profile mode with the 'Allocations / leaks' tool selected, on iPad 1, I get lots of memory warnings in quick succession followed by a crash (about a second after all the memory warnings fire off, it crashes), but this ONLY happens when running with the allocations / leaks monitor enabled.
I need to find out why this is happening. Is there a compatibility issue with iPads and the latest version of instruments and that specific tool? Does it take up an excessive portion of memory?
Thanks in advance,
Stew

Related

iOS10 memory issue

I have an app that is available on AppStore, it is a biological recognition app, so there's lots of C/C++ code in this app, and it goes well on iOS7 to iOS9, but when I tested in on iOS10, it always crashed dued to memory issue after several trials, I tried the Allocation instrument, not much leaks.
When I tested it in xCode, I found something interesting(I already shut down every app that run background), the memory usage of other process increased dramatically on iOS 10.
iOS10_iPhone5s
But it didn't increase so much on iOS9:
iOS10_iPhone5
So I have several questions here:
what's in other processes, it should be the apps that run background, but why the memory usage increased even I shut down all the other apps?
why I can only reproduce this issue on iOS10? and it runs well on iOS7-iOS9.
Can anybody help me? thank you.
"Other Processes" includes literally every other program that is currently running on your Mac. That number has nothing to do with the simulator. It does not measure processes that run in the simulator.
If you run iOS Simulator Xcode shows memory stats from your Mac.
Please refer this as well
Running out of memory in 'Other Processes' in Usage Comparion Xcode iOS9
iOS Memory Management -- Other Processes RAM Increasing

XCode Instruments collects no data

I'm trying to debug a potential javascript memory leak on iOS. My approach (was) to monitor Mobile Safari on my iPad using Instruments, but there's a problem: no matter what process I attach Instruments to, I get no data at all. After setting up the items to watch and starting the monitor, it runs along happily, but shows no memory usage, no CPU usage, nothing. Is there something I need to do with my iPad or Instruments to enable collection of this data?
I also had this issue with xCode 6 where the instruments would show like it's recording data although there was no actual data presented or collected.
Restarting my Mac Mini, restarting xCode, cleaning the build and disconnecting and connecting my iPad did not solve this issue.
However, my other devices were profiling just fine.
The solution I found is to reboot the iPad. (You reboot your device holding the home button and the power button for a few seconds. Then to turn it on again you press the power button).
This solved this issue and I was told it can solve other xCode related issues like when your program keep running on Debug even when you run it on Release.
Hope this helps.

iOS App Memory Differs in Debug and Adhoc(Distribution)

My app seems to run pretty flawlessly in Debug. The memory footprint seems reasonable, but for whatever reason when I run an Adhoc version of the game the memory footprint increases dramatically.
Here are shots of what I am seeing in instruments:
Debug:
http://i.stack.imgur.com/JsjZ2.png
Adhoc:
http://i.stack.imgur.com/MYlcr.png
I noticed four 4MB allocations in the object list on the Adhoc build that are not there in debug. Is this something special that happens with Adhoc builds? I was disconnected from the debugger for both runs.
This memory increase is causing the application to crash very frequently on devices with only 256 MBs of Memory. Is there anything I could do to remedy this or is it an iOS thing that just happens? I don't think we have any differences in build settings that would bloat the application that much and we don't do any special allocations for Adhoc builds that I know of.
Any help would be greatly appreciated.
Thanks!

Tracing the root cause of low memory warnings

I see a lot of low memory warnings being issued when running my application in Instruments. The total memory allocation does not exceed 5.02 MB. What could be the reason? I checked the Leak Instrument as well. There I see leaks, but due to some framework classes. None are beacause of my project classes. How to trace the root cause?
Please see attached snapshots of Leaks & Allocation instruments:
Some versions of the OS on some iOS devices will send memory warnings to the foreground app when a background app (Mail, Messages, Music player, etc.) needs sufficiently more memory. This has nothing to do with the amount of memory your app is using. If your app is not using a lot of memory (well under 10MB), it can usually ignore these memory warnings, as the OS will usually kill a background app that is using more memory than your app instead of your app (no guarantee though, whether your app frees memory or not!).
If you want to avoid all these memory warnings when testing, put the device in Airplane mode and force quit all the background-aware apps in the multi-tasking bar before running your app.

iOS - i receive memory warnings but have no idea why

I am developing for the iOS and checking my app with IPhone and IPad.
I receive many memory warnings (didReceiveMemoryWarning is called) but have no idea why.
My app is using ~35MB in the peak points, and 4-5 MB when it the lowest point.
I tried to find leaks using 'instruments' but could not find any critical issues.
Is there a good way to find out why the system sends memory warnings?
Memory warning is to be expected in an iOS app. It doesn't have to be because of your app. Other apps are still in memory even if the apps are suspended. The OS will do memory management by sending memory warning and kill apps when necessary. As long as you're using reasonable amount of memory (with little to no memory leak) and handle didReceiveMemoryWarning properly, you'll be fine.
Also, when your app is in suspended mode, if your app is using little memory footprint, your app will more likely to survive killing process. As app with larger memory footprint will be terminated first.
I also found that "Product -> Analyze" (Shift+Command+B) can help you sort out some code issues before you start using Leaks. With the introduction of ARC this became less useful though.

Resources