2012-07-16 52 views
0

我需要用正則表達式在我的應用程序中搜索文本文件(大約40MB),正如您可以想象的那樣,通常需要1分鐘左右才能完成。我必須反覆做這件事。Android。如何保持RAM緩存?

我想知道是否可以在第一次搜索後將這些文件保存在RAM中。我可以做到嗎?我的意思是,找到一種方法來明確地說一段時間內在RAM中保存某些內容。

回答

1

將結果保留在將保存搜索結果的自定義對象中。這將保留在RAM中(只要你保留一個引用)。另外請記住,在Android設備的RAM中分配40 MiB並不是一個好主意,因爲RAM在很多低端設備中相當有限。這可以使你的應用程序成爲一個非常好吃的Android目標,當它看起來釋放內存。

+0

謝謝!我自己使用該應用程序,因此我正在考慮購買更快的MicroSD卡,因爲我發現搜索部分在讀取和寫入真正的瓶頸時幾乎不費時。 – 2012-07-17 08:01:15

+1

您可以優化搜索,例如僅存儲真正需要的數據。例如,對於文件,只能存儲路徑和行。當被問及更多細節時,你打開文件等等。儘量避免操作,除非用戶明確要求操作。這肯定會讓事情變得更快,並且減少內存消耗。 – m0skit0 2012-07-17 09:34:42

1

請考慮將您的搜索結果放入WeakHashMap,其中的鍵只存在於您需要值存在的時間段內,如Activity的範圍。注意內存問題。在某些設備上,您的應用程序的進程可能只有堆大小as low as 16M