2010-04-13 52 views
0

我们经常缓存图片和数据以改善我们的iPhone应用程序的性能。但是,您使用什么策略来管理缓存数据,如删除或更新它?什么时候应该删除iPhone应用中的缓存数据?

我将图像保存到TMP文件夹,但不知道什么时候应该触发“检出日期缓存数据并删除它”:当iPhone应用程序启动,退出或空闲时间?

回答

1

感谢您的回复。保存程序的状态

在1分钟内检查空闲时间的想法相当好,但是我必须在应用程序时间内每隔15秒建立一次机制来检查空闲状态,我认为这并不容易,很好为表现。

最后,我决定在检索新项目(数据+图像)后执行“检查并删除缓存”。我将检查不再需要显示的项目(数据+图像)并将其删除。我认为保存缓存的功能将会删除缓存也是有意义的。 当然,我会在另一个线程中这样做,以避免冻结界面。

这是好吗?请给我你的意见。

2

您应该在iPhone调用“didReceiveMemoryWarning”函数时删除缓存。

+0

+1你可能也想自己清理缓存,但是这样做是为了响应内存警告是至关重要的。 – 2010-04-13 03:09:11

+0

谢谢,但如何将数据存储到磁盘?当我们检查缓存数据以查找并删除过期数据时? – KONG 2010-04-13 03:25:26

+0

@athanhcong,您可以使用NSTimer定期查找并删除过期的缓存数据...您将不得不选择一段时间,以获得最佳性能......这将高度依赖于您的应用程序。我的建议是你分析它。 – 2010-04-13 05:41:23

2

当应用程序启动或退出时,用户通常期待响应。选择最少量的实时数据,例如24小时,以及最少量的闲置时间,例如一分钟。如果用户闲置一分钟并且距上次缓存清除超过24小时,请清理缓存。如果你正在跟踪有多少数据被缓存,那么你也可以考虑这一点。如果超过24小时和/或缓存中有超过一兆字节。

如果您确定应用程序正在正常退出,而不是退出来接听电话或启动其他应用程序,那么这也可能是个好时机。

如果您的应用程序做了某些事情,无论如何用户必须等待,但这不会受到清除缓存的影响,那也可能是一个好时机。例如,从服务器获取一些数据。

0

我个人似乎不喜欢当我打开应用程序或闲置时间超过1分钟后清除缓存。如果缓存的年龄大概是24小时,那么清理这个想法是很好的。

我个人的建议是构建堆栈的缓存文件。然后检查缓存文件创建/修改时间或上次缓存文件访问。所以干净的背景(不要让让你的应用感觉慢,因为你正在做这样的任务,当开始或停止一个应用程序)可能在一个线程(是否支持iPhone SDK的?不知道:)),并检查“缓存如果是,请重新缓存或删除文件

相关问题