-1

我们在第一代 iPad 上使用配置文件工具在 Xcode 中测试我们的应用程序,该工具在 iPad 上使用了大量内存,发现我们的应用程序的内存释放速度很慢(释放 20 MB 需要超过 1 分钟) . 但是,在我们的代码中,我们正确地释放了内存。然后,我们监控了一些专业的 3rd 方应用程序(Chrome 和 Flipboard),并注意到这些应用程序也具有相同的释放率。

iOS 或 iPad 1 的内存释放速度是否缓慢,或者分析器是否会干扰 iOS 的内存释放?

我们使用的是最新的 iOS 版本。是的,在实际使用中,我们的应用程序的性能会受到缓慢的内存释放的影响

我们通过加载应用程序并等待内存稳定然后加载媒体或视图并等待其稳定来测量释放率,然后我们返回原始视图并查看释放前一个视图所需的负载/媒体。其速度为(每 1 分钟不到 20 MB)。该应用程序永远不会回到它的原始内存使用量,即打开应用程序并等待它稳定后的使用量,在启动视图中。

4

2 回答 2

1

我们通过加载应用程序并等待内存稳定然后加载媒体或视图并等待其稳定来测量释放率,然后我们返回原始视图并查看释放前一个视图所需的负载/媒体。

这不是一个有用的基准。好的,所以你分配了一些内存。然后你告诉操作系统你不再需要它了。到目前为止还好。除非它需要其他地方的内存,否则它通常不会费心去做很多事情。保留缓存更有意义,这样如果您再次需要它,它可以更快地使用。您没有测量任何有用的东西 - 您正在测量系统需要多长时间才能在其他地方使用内存,而不是需要多长时间才能释放它。常识应该告诉你,一分钟释放 20MB 是不正确的。

我建议您提出一个基准来衡量您真正感兴趣的内容。您的应用程序将如何受到缓慢释放的影响?您确定您不会无意中将其用作您真正感兴趣的因素的不良替代品吗?

于 2012-08-01T16:27:41.190 回答
0

如果您确实在需要时释放内存(即您努力减少分配内存的时间),那么您不必担心“缓慢释放”(无论这个无意义的词是什么意思)。

不要高估分析者的能力。

于 2012-08-01T15:45:09.313 回答