检查应用程序运行时的内存使用情况

运行我的应用程序时,我有时会得到内存警告。 它并不总是发生在代码中的相同位置,但我怀疑它与我的应用程序外部分配的内存有关; 也就是说,如果在后台iPhone上运行的应用程序很多,我会提前得到内存警告,如果没有应用程序在后台运行,我将不会收到警告。

  1. 有没有一种方法可以用来检查我的应用程序在某个点上使用了多less内存?
  2. 有没有一种方法可以用来检查机器(iPhone / iPad)在某个时候使用多less内存? 甚至可能检查有多less内存仍然可用?
  3. 一般来说,也许有人知道在哪里可以find有关不同的基于iOS的机器的内存限制的数据?

谢谢,奥哈德

使用Instruments你可以检查你的应用程序使用多less内存。 在Xcode4中,使用'Profile'build,selectLeaks ,然后点击工具栏中的Librarybutton,添加Memory Monitor工具。

它将显示每个正在运行的应用程序以及每个正在使用的内存的概览。

如果你不想使用仪器,实际上有一个Giulio Petek写的实用程序类来获取当前的内存使用情况。

试试这里: http : //forrst.com/posts/Get_current_Memory_usage-hzw

您可以使用vm_statistics_data_t对象检查内存使用情况。 请在这里find细节和实施:

  1. http://gamesfromwithin.com/whered-that-memory-go
  2. http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html

您不必担心检查有多less内存可用。 操作系统pipe理内存,并在内存不足时向最高内存使用者发出警告。 你需要做的是确保你正确地处理didReceiveMemoryWarning消息,并摆脱任何可以稍后重新加载的数据。 另外,如果您的应用程序遇到性能问题,则应该使用“工具”来检查常见情况下的应用程序使用情况,并确保您正在有效地使用内存,并且只能加载当时必须在内存中的大型对象。