在与一个应用程序进行了数小时的会话后,我确认了内存分配(按堆和匿名VM的定义)在游戏中最高达到500s MB,在地图上达到最高300s MB屏幕。
现在,当在“分配”中使用VM跟踪器时,我确实看到虚拟内存增加到约1.5-1.6 GB,这时操作系统似乎可以对其进行适当地管理。从“分配”运行时,这似乎不会导致崩溃。此外,在手机上以发布模式正常运行游戏时,这不会导致崩溃。但是,如果内存使用量超过1.75 GB(无论是发布还是调试模式),无论运行在发行版还是调试模式下,运行游戏都将在8回合后将其崩溃(我知道这是iPhone X的上限)我通常在使用)。
总的来说,我的问题是:虚拟内存是否曾经是我需要担心的问题,还是应该一直专注于Heap + Anonymous VM,因为我相信我在多个地方(包括WWDC)都推荐这样做?我希望VM可以由OS进行适当的管理,并且在不从Xcode运行时似乎可以对VM进行适当的管理。
(编辑:我应该补充一点,我启用了malloc堆栈日志记录-我想知道这是否导致模拟器将内存与优化发行版不同。)