Home › All Topics › Bugs › Version 1.5 Crashing
- This topic has 4 replies, 2 voices, and was last updated 11 years, 9 months ago by XOMTOR.
-
AuthorPosts
-
May 6, 2013 at 11:25 pm #4084
First off let me state that I think this is an amazing little piece of software and I’m writing this in hopes that it will eventually become even better. So with that said, let’s get down to it, the crashing that is.
Fortunately, it’s easy to understand why the app is crashing and it’s entirely a RAM issue; the app is very naughty when it comes to RAM management. For example, I can launch the app with 130MB free, no other apps running ( and only 22 background processes) and immediately after launching, my iPod 4g will be down around 60MB; basically 70MB consumed just launching. Now zoom in once or twice and RAM is now around 35MB free. Here comes the kicker: open the “settings” menu and it’s not out of the ordinary for available RAM to drop to 15MB.
Now RAM consumption in itself wouldn’t be a bad thing but the app is also very reluctant to give any of it back. In the example of opening the settings menu, this should be a perfect opportunity to give some back. It does in the odd instance but more often than not, the app just continues to gobble up RAM like I’ve never seen before. Of course at around 8-10MB free, the app will crash and need to be relaunched; it’s the textbook example of a memory Hog.
So this app probably runs “okay” on the iPhone 4s, 5 and newest iPad but anything older and it’s not the smoothest experience to put it mildly. Fortunately, it’s pretty easy to replicate. I actually noticed this with the Lite version but found the app so nice in regards to everything else, I decided to plunk down my $2.99 anyway. Here’s hoping that the devs can look into this and get the memory management under control.
May 8, 2013 at 4:36 am #4617Thanks for the feedback, XOMTOR! We will look into the memory issues further, but are a bit surprised by it.
PocketEarth does consume a large amount of memory, but it should be within reasonable limits. This is mostly due to it keeping a large amount of map tiles and map data in memory which improves performance and battery life by not having to reload from disk as often. If iOS tells PocketEarth that the system is low on memory, it can generally free up 40-60MB quickly. We carefully profile the app for memory leaks before every update we release, and have a handful of 3rd gen iPods and 1st gen iPads that we use for stress testing it.
We have noticed an iOS “memory fragmentation” issue where the device if it hasn’t been rebooted in a long time (over 1-2 months), it is unable to provide PocketEarth with its memory requests causing it to crash. Please open the app multi-tasking bar and close all apps, then power off the device, and turn it on again. If you still see frequent crashing, please let us know what location you are looking at on the map, and what iOS version you are running so we can investigate further!
Also, how are you getting this info about memory usage? We use very precise tools that Apple provides us with, and our numbers don’t seem to match what you are saying. For example, PocketEarth should always launch to 37MB standing memory usage, plus the map data cache which varies based on map location and zoom level, but generally means 50MB total RAM usage at launch. Generally, what we seen is that PocketEarth will get up to around 90MB of RAM usage, get a memory warning, and immediately drop back down to ~50MB. The Settings screen uses exactly 1.6MB when opened the first time (which is retained even after closing it, but probably should be released).
May 9, 2013 at 12:11 am #4625Thanks for replying Geo. My device is an iPod Touch 4g – 32GB model running iOS – 5.1.1 (jailbroken). The app I’m using to display RAM stats is SBSettings which correctly displays “free” and “inactive” memory.
I’ve included a video I recorded to demonstrate the behavior. The iPod was restarted prior to the recording so it was a fresh restart. In regards to the “jailbreak”, the only tweaks I have on are SBSettings which was installed to monitor RAM. I don’t use any other tweaks such as Winterboard and in fact, no custom themes, no interface tweaks; my icons are all stock and even my wallpaper is the stock bubbles one. The only reason for my jailbreak is to gain access to two legit apps: ProTube and StyleTap (PalmOS emulator). Anyway, just to rule out the possibility that the jailbreak could somehow be interfering, I rebooted the device in “safe mode” which essentially runs the device as if it were stock; the app crashed just the same (although obviously I wasn’t able to track the RAM usage that time).
Anyway, here’s the video (location is Vancouver, Canada):
http://www.youtube.com/watch?v=lGDM6qqp6_Y
Here’s the crash log shown in the video. As you can see, there’s next to nothing running:
Incident Identifier: 0E308793-4D1D-4617-84C3-D6C20F66B2E4
CrashReporter Key: 6f09cde708f656233c5afa13b4517927ff0699ba
Hardware Model: iPod4,1
OS Version: iPhone OS 5.1.1 (9B206)
Kernel Version: Darwin Kernel Version 11.0.0: Sun Apr 8 21:51:26 PDT 2012; root:xnu-1878.11.10~1/RELEASE_ARM_S5L8930X
Date: 2013-05-08 18:24:59 -0300
Time since snapshot: 89 msFree pages: 695
Active pages: 940
Inactive pages: 1416
Throttled pages: 48317
Purgeable pages: 0
Wired pages: 12270
Largest process: SpringBoardProcesses
Name UUID Count resident pages
PocketEarth < 08b108a0650f3c12869a2056aa50a168> 10163 (jettisoned) (active)
notifyd < f6a9aa19d33c3962aad3a77571017958> 170
BTServer < 31e82dfa7ccd364fb8fcc650f6194790> 225
CommCenterClassi < 041d4491826e3c6b911943eddf6aaac9> 287
SpringBoard < c74dc89dec1c3392b3f7ac891869644a> 11330 (active)
aggregated < a12fa71e6997362c83e0c23d8b4eb5b7> 304
apsd < e7a29f2034083510b5439c0fb5de7ef1> 217
configd < ee72b01d85c33a24b3548fa40fbe519c> 286
dataaccessd < 473ff40f3bfd3f71b5e3b4335b2011ee> 1132
fairplayd.N81 < 32fbd294ec02341e8c89570445ba4b67> 144
fseventsd < 914b28fa8f8a362fabcc47294380c81c> 143
iapd < 0a747292a113307abb17216274976be5> 346
imagent < 9c3a4f75d1303349a53fc6555ea25cd7> 319
locationd < cf31b0cddd2d3791a2bfcd6033c99045> 419
mDNSResponder < 86ccd4633a6c3c7caf44f51ce4aca96d> 7351
mediaremoted < 327f00bfc10b3820b4a74b9666b0c758> 203
mediaserverd < f03b746f09293fd39a6079c135e7ed00> 509
lockdownd < b06de06b9f6939d3afc607b968841ab9> 201
powerd <133b7397f5603cf8bef209d4172d6c39> 130
wifid < 3001cd0a61fe357d95f170247e5458f5> 247
sbsettingsd < e9a2c6b3c8a722b2bae7541bb247b81d> 219
UserEventAgent < dc32e6824fd33bf189b266102751314f> 332
launchd < 5fec01c378a030a8bd23062689abb07f> 122**End*
It’s all very odd since I don’t think I’ve experienced an app crash in months; even Facebook doesn’t crash for me and it’s notorious for that. I’ve also had NavFree Canada and Topo Maps installed for quite some time and neither of those exhibit any erroneous behavior either.
May 10, 2013 at 2:28 am #4627Wow, thanks for the video and the detailed information, we will definitely look into this soon!
I do notice that SpringBoard is using 11330 resident pages of memory (44.3 MB of RAM), even more than PocketEarth at time of crash! This seems oddly high for a process which is only responsible for drawing the app icons on the home screen. But its probably (hopefully) not related to the jailbreak, and of course nothing we can do about it :/
For the time being, I’d recommend turning off the Proximity Caching option in the Advanced Settings of our app. This should save some memory and at least reduce the frequency of the crashes. We will look into the memory issues, and hopefully have at least some improvements to it in the next couple of weeks.
May 10, 2013 at 10:32 am #4633Hey Again Geo. I’ve been doing quite a bit of Google’ing the past few
days and it appears that having Springboard listed as the largest App at
the time of the crash isn’t out of the ordinary. I found a really great
developer blog at:http://www.raywenderlich.com/23704/demystifying-ios-application-crash-logs
One particular quote of interest:
“Usually, the largest process and the frontmost app are the same, and
are also the process that has caused the low memory crash. But you may
see some instances where the largest process and the frontmost app are
not the same. For example, if the largest process is SpringBoard,
ignore it, because SpringBoard is the process that shows the apps on
the home screen, the popups that appear when you double tap the home
button, etc. and is always active.When low memory situations happen, iOS sends a low memory warning to
the active application and terminates background processes. If the
frontmost app still continues to grow in memory, iOS jettisons it.”Here’s another crash log of mine and this time Pocket Earth was the largest process:
Incident Identifier: 13E593E3-8C42-4AB4-A596-1601929B3E09
CrashReporter Key: 6f09cde708f656233c5afa13b4517927ff0699ba
Hardware Model: iPod4,1
OS Version: iPhone OS 5.1.1 (9B206)
Kernel Version: Darwin Kernel Version 11.0.0: Sun Apr 8 21:51:26 PDT 2012; root:xnu-1878.11.10~1/RELEASE_ARM_S5L8930X
Date: 2013-05-09 14:20:24 -0300
Time since snapshot: 73 msFree pages: 439
Active pages: 1665
Inactive pages: 923
Throttled pages: 48480
Purgeable pages: 0
Wired pages: 11992
Largest process: PocketEarthProcesses
Name UUID Count resident pages
PocketEarth < 08b108a0650f3c12869a2056aa50a168> 13958 (jettisoned) (active)
SpringBoard < c74dc89dec1c3392b3f7ac891869644a> 8186 (active)
notifyd < f6a9aa19d33c3962aad3a77571017958> 168
BTServer < 31e82dfa7ccd364fb8fcc650f6194790> 208
CommCenterClassi < 041d4491826e3c6b911943eddf6aaac9> 293
aggregated < a12fa71e6997362c83e0c23d8b4eb5b7> 313
apsd < e7a29f2034083510b5439c0fb5de7ef1> 240
configd < ee72b01d85c33a24b3548fa40fbe519c> 281
dataaccessd < 473ff40f3bfd3f71b5e3b4335b2011ee> 1022
fairplayd.N81 < 32fbd294ec02341e8c89570445ba4b67> 143
fseventsd < 914b28fa8f8a362fabcc47294380c81c> 184
iapd < 0a747292a113307abb17216274976be5> 336
imagent < 9c3a4f75d1303349a53fc6555ea25cd7> 314
locationd < cf31b0cddd2d3791a2bfcd6033c99045> 518
mDNSResponder < 86ccd4633a6c3c7caf44f51ce4aca96d> 7354
mediaremoted < 327f00bfc10b3820b4a74b9666b0c758> 204
mediaserverd < f03b746f09293fd39a6079c135e7ed00> 567
lockdownd < b06de06b9f6939d3afc607b968841ab9> 214
powerd < 133b7397f5603cf8bef209d4172d6c39> 126
wifid < 3001cd0a61fe357d95f170247e5458f5> 285
UserEventAgent < dc32e6824fd33bf189b266102751314f> 328
launchd < 5fec01c378a030a8bd23062689abb07f> 128**End**
Here’s another example of an App that crashed but listed SpringBoard as the largest process:http://stackoverflow.com/questions/11851271/ios-app-being-killed-jettisoned-by-mediaserverd-memory-issue-leak-while-str
In regards to the Jailbreak, I don’t think it’s related as I booted
into safe mode which essentially disables everything and Pocket Earth
was still “jettisoned”. I also tried turning off “Proximity Caching” as
you suggested and there was no change. The more I play around with it,
I’m inclined to believe it has something to do with going into and out
of the menus or using the UI buttons alone the bottom. If I just browse
around and zoom in and out on the map, it takes much longer to crash; but opening up the menu, it seems to grab a chunk of RAM and rarely does it give it back upon exiting. -
AuthorPosts
- You must be logged in to reply to this topic.