我正在建立一个跟踪共同基金业绩的Android应用。该应用程序允许您创建一个投资组合来添加您的资金。
这是一个共同基金应用程序(而不是股票应用程序),它获取更新的基金"价格" (每股资产净值)每天一次并重新计算投资组合(当前价值,当前收益率[+/-])。这个"刷新"操作很昂贵,因为它消耗数据和大量的CPU周期。
投资组合XML仅包含用户输入的"静态"数据:
所有计算的"动态"数据不会在任何地方保留。理由是这些数据在不同情况下发生变化(获得更新基金价格,增加新投资等)。
因此,当用户启动应用程序时,应用程序从XML文件中读取静态数据,读取最新的FUND PRICES(从DB或Web Service),然后重新计算所有内容。这需要相当长的时间。
问题:
在移动开发这个勇敢的新世界中,人们期待应用程序的快速响应,是否是一个新的"最好的"练习缓存动态数据而不是每次需要时重新计算它?
我应该缓存动态数据以使某些操作平稳而快速,还是应该每次都重新计算?
谢谢!
答案 0 :(得分:1)
在我知道有必要之前,我不喜欢缓存,因为重新计算不太容易出错。所以首先我会在耗时的执行阶段通过this technique进行性能调优。我认为进行性能调优要比通过缓存来复杂化程序容易得多,特别是当我甚至没有积极的时候它会有很大的帮助。
但是在你进行性能调整之后,你可以看到重新计算仍然是主要的时间接受者,那么是的,做缓存。
答案 1 :(得分:0)
您绝对应该在必要时缓存数据。您可以考虑使用SoftReferences,因为只要有可用内存并且在即将耗尽内存之前收集垃圾,它们就会被保留。 您也可以考虑今天的智能手机比一些个人电脑拥有更多的资源。