hello,
i'm helping on a c++ game where the game crash randomly after awhile.
Incident Identifier: 9A342532-A340-4866-9709-FCB0C8E8F695
CrashReporter Key: key
Hardware Model: iPhone6,1
OS Version: iPhone OS 8.1.2 (12B440)
Kernel Version: Darwin Kernel Version 14.0.0: Mon Nov 3 22:23:57 PST 2014; root:xnu-2783.3.22~1/RELEASE_ARM64_S5L8960X
Date: 2016-08-10 17:33:46 -0400
Time since snapshot: 347 ms
Free pages: 8149
Active pages: 92924
Inactive pages: 40026
Speculative pages: 6601
Throttled pages: 0
Purgeable pages: 0
Wired pages: 65621
File-backed pages: 27128
Anonymous pages: 112423
Compressions: 698575
Decompressions: 261500
Compressor Size: 48900
Uncompressed Pages in Compressor: 96707
Page Size: 16384
Largest process: GameName
Processes
Name | <UUID> | CPU Time| rpages| purgeable| recent_max| lifetime_max| fds | [reason] | (state)
GameName <app_uuid> 645.725 166401 0 - 107755 100 [per-process-limit] (audio) (frontmost) (resume)
a page is 4k(or is it 16k?), which means 166401 * 4096 = 650meg
the OS is killing us when we get to 650megs
however, when I use instrument (allocations, activity monitor, VM tracker), the instruments show that we never use more than 400megs.
what could explain this? fragmentation?
some more infos:
we are using a 32bit build at the moment (64bit still has bugs)
crash happens only on devices with 1gig of ram (works ok with 2+gig devices)
also, i'm having a hard time understanding all the various memory counters in instrument
there is resident / VM size in activity monitor
there is Persistent/total bytes in Allocations
there is dirty/resident size in VM Tracker
finally, is there an instrument tool that allows us to track the rpages values mentionned above?
can anyone help?