Android 缓存与重新计算

Android 缓存与重新计算,android,performance,caching,mobile,Android,Performance,Caching,Mobile,我正在开发一款追踪共同基金业绩的Android应用程序。该应用程序允许您创建一个投资组合来添加您的资金 这是一个共同基金应用程序(而不是股票应用程序),它每天获取一次更新的基金“价格”(每股资产净值),并重新计算投资组合(现值、当前收益率[+/-])。这种“刷新”操作非常昂贵,因为它会消耗数据和大量CPU周期 公文包XML仅包含用户输入的“静态”数据: 投资组合中的基金 基金投资(购买了多少股份以及何时购买) 所有计算的“动态”数据不会在任何地方持久化。理由是这些数据在不同的情况下会发生变化

我正在开发一款追踪共同基金业绩的Android应用程序。该应用程序允许您创建一个投资组合来添加您的资金

这是一个共同基金应用程序(而不是股票应用程序),它每天获取一次更新的基金“价格”(每股资产净值),并重新计算投资组合(现值、当前收益率[+/-])。这种“刷新”操作非常昂贵,因为它会消耗数据和大量CPU周期

公文包XML仅包含用户输入的“静态”数据:

  • 投资组合中的基金
  • 基金投资(购买了多少股份以及何时购买)
所有计算的“动态”数据不会在任何地方持久化。理由是这些数据在不同的情况下会发生变化(获取更新的基金价格、增加新投资等)

因此,当用户启动应用程序时,应用程序从XML文件读取静态数据,读取最新的基金价格(从DB或Web服务),然后继续重新计算所有内容。这需要大量的时间

问题:

在人们期待快速响应应用程序的移动开发的新世界中,缓存动态数据而不是每次需要时重新计算动态数据是否是一种新的“最佳”实践

我应该缓存动态数据以使某些操作平稳快速,还是应该每次都重新计算


谢谢

在必要时,您一定要缓存数据。您可以考虑使用软骨素,因为它们可以保留,只要内存可用,在内存耗尽之前就可以回收垃圾。
你也可以考虑到今天的智能手机比一些个人电脑拥有更多的资源。

< P>我不喜欢缓存,直到我知道它是必要的,因为再计算不容易出错。因此,首先,我将根据耗时的执行阶段进行性能调优。我认为进行性能调优要比通过缓存使程序复杂化容易得多,尤其是当我甚至不确定这会有多大帮助的时候

但是在进行性能调优之后,您可以看到重新计算仍然是主要的时间消耗,然后是的,进行缓存