my advice is to measure
How can I measure? Does VMTracker do the job?
I'd like to add that our crash reports have VM Region Summary. In all of the reports I've looked through there is the same total Virtual Size at around 5.2-5.3 GB. Is it too small or too large? I'm not familiar with the VM size limits, but these sizes are surprisingly constant throughout the reports.
Part of the issue is that JavaScriptCore is reserving more address space than it should on lower memory devices
As for JS, in the same reports it is being said that JS VM Gigacage takes 1GB. On the other hand we have 2GB in the _TEXT section - that is unexpectedly large value.
For example:
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Activity Tracing 256K 1
AttributeGraph Data 1024K 1
Audio 64K 1
CG raster data 112K 2
CoreAnimation 48K 3
Foundation 400K 3
JS VM Gigacage (reserved) 1.0G 1 reserved VM address space (unallocated)
Kernel Alloc Once 32K 1
MALLOC 805.0M 200
MALLOC guard page 4016K 4
Mach message 16K 1
SQLite page cache 2688K 21
STACK GUARD 1152K 72
Stack 47.7M 74
Stack Guard 16K 1
VM_ALLOCATE 516.8M 4042
VM_ALLOCATE (reserved) 512K 8 reserved VM address space (unallocated)
WebKit Malloc 256.1M 8
__AUTH 12.0M 968
__AUTH_CONST 126.2M 1418
__CTF 824 1
__DATA 75.6M 1374
__DATA_CONST 46.9M 1430
__DATA_DIRTY 12.3M 1237
__FONT_DATA 2352 1
__LINKEDIT 191.1M 10
__OBJC_RO 84.6M 1
__OBJC_RW 3180K 1
__TEXT 2.0G 1452
__TPRO_CONST 128K 2
mapped file 135.2M 1841
page table in kernel 1476K 1
shared memory 80K 4
=========== ======= =======
TOTAL 5.3G 14185
TOTAL, minus reserved VM space 4.3G 14185
Topic:
App & System Services
SubTopic:
Processes & Concurrency
Tags: