"脏"和"居民"与虚拟记忆有什么关系?

m0r*_*mer 34 iphone xcode objective-c instruments ios

我退出了我大学的CS课程......所以,对计算机科学有充分了解的人可以告诉我:Dirty and Resident与虚拟内存有什么关系?并且,对于奖励积分,无论如何,虚拟内存到底是什么?我正在使用Instruments中的Allocations/VM Tracker工具来分析iOS应用程序.

*提示 - 尝试解释,好像你正在和一个8岁的孩子或一个完整的低能儿说话.多谢你们.

blu*_*lds 44

"脏内存"是以某种方式改变的内存 - 这是垃圾收集器必须查看的内存,然后决定如何处理它.根据您构建数据结构的方式,可能会导致垃圾收集器将大量内存标记为脏,每个垃圾收集周期都需要比所需更长的时间.保持这个数字低意味着你的程序运行得更快,并且不太可能遇到明显的垃圾收集暂停.对于大多数人来说,这不是一个真正的问题.

"常驻内存"是当前加载到RAM中的内存 - 实际使用的内存.虽然您的应用程序可能要求在内存中跟踪许多不同的项目,但可能只需要在任何时间点访问一小部分.保持这个数字较低意味着您的应用程序具有较低的加载时间,可以很好地与其他应用程序配合使用,并降低了内存耗尽和应用程序运行时崩溃的风险.这可能是你应该注意的数字,大多数时候.

"虚拟内存"是应用程序在任何时间点跟踪的数据总量.此数字与正在使用的数字不同(正在使用的内容标记为"Resident memory") - 系统将保留跟踪但您的应用程序未在实际内存之外使用的数据.例如,它可能会将其保存到磁盘.

  • 虽然这对于Mac OS X是正确的,但在iOS上没有虚拟内存或交换到磁盘. (5认同)
  • 间接鼓励开发人员工作,好像两者不存在一样.然而,他们在那里,他们只是没有完全展示出来,并且目前不能直接供开发人员/应用程序使用(也就是说,不是没有越狱你的iphone). (2认同)