2014-10-20 72 views
0

我正在構建一個跟蹤共同基金表現的Android應用程序。該應用程序允許您創建一個投資組合來添加您的資金。緩存與重新計算

這是一個共同基金的應用程序(而不是股票應用程序),它每天獲取更新的基金「價格」(每股資產淨值)並重新計算投資組合(當前價值,當前收益率+/- ])。這種「刷新」操作非常昂貴,因爲它消耗了數據和大量的CPU週期。

投資組合XML只包含用戶輸入的「靜態」數據:

  • 基金在投資組合
  • 投資於基金(多少股份被收購,當)

所有計算「動態「數據不會在任何地方持續存在。理由是這些數據在不同的情況下發生變化(提取基金價格更新,新增投資等)。因此,當用戶啓動應用程序時,應用程序將從XML文件中讀取靜態數據,讀取最新的FUND PRICES(從數據庫或Web服務),然後重新計算所有內容。這需要相當長的時間。

問:

在移動開發中的勇敢的新的世界,人們期待活潑的應用程序的響應,它是一個新的「最好」的做法來緩存動態數據,而不是每次重新計算它,它是需要的?

我是否應該緩存動態數據以使某些操作平滑和快速,還是應該每次重新計算?

謝謝!

回答

0

您應該在必要時緩存數據。您可以考慮使用SoftReferences,因爲只要有內存可用並在您即將耗盡內存之前收集垃圾,它們都會保留。 您可能還會認爲,今天的智能手機確實比一些個人電腦擁有更多的資源。

1

我寧願不緩存,直到我知道這是必要的,因爲重新計算不太容易出錯。所以首先我會在耗時的執行階段進行this technique的性能調整。我認爲執行性能調優要比通過緩存複雜化程序要容易得多,尤其是當我沒有積極性時,它會非常有幫助。

但是,當你做了性能調整,你可以看到重新計算仍然是主要的計時器,那麼是的,做緩存。