2011-06-08 41 views
1

我創建了一個擁有~12個靜態成員和2個數組並存儲了1500個整數的類,以便每當編碼時需要它們時,我都會調用該類並獲得我想要的成員。
我想知道這是不是一件壞事..做那些靜態成員一直留在記憶中?具有〜1500個整數的2個靜態數組是否是一件壞事?
我在問這些問題,因爲我的應用使用了22MB的RAM!這很多,並認爲這可能是一個原因,所以這個靜態類可以成爲所有這些內存的原因嗎?有沒有更好的方法來處理這個問題?謝謝。擁有靜態成員的課程

+0

尤其是對於Android,您應該避免使用靜態字段。它本質上是全球性的。 – 2011-06-08 14:50:47

+0

那些具有1500個整數的2個數組代表什麼? (它們可能不是你的應用需要22MB的原因,但它們對尺寸有貢獻) – Kaj 2011-06-08 14:52:14

回答

2

如果我存儲了那麼多信息,我會把它放在一個SQLite數據庫中。

1

一個類的靜態成員在整個程序的執行過程中都在內存中,而且它們一直保留在內存中,這就是您隨時訪問它們的方式。我無法真正回答你關於數組的問題,因爲你沒有發佈關於你的項目的很多信息,根據你需要做什麼,這可能是也可能不是一個好主意。

2

22Mb的RAM太多,您的應用肯定會崩潰在低操作系統版本的設備上。我看不到在內存中存儲1500個整數的原因,您可以嘗試將它們存儲在XML中,並在需要時加載它們。檢查此鏈接瞭解如何值存儲在XML文件:Providing Resources

0

奧馬爾

First of all. Why do you have to use array with 1500 integers in it when clearly you have better techniques to store data. Like Egor mentioned, you can use XML as well, but then, you have to choose the right technology in that as well since DOM will load everything in memory and you'll end up in the same situation. 

,最好的辦法是所有這些信息存儲在一個數據庫和檢索相應的數據,只要你想。此外,只有在需要時才使用靜態成員(如使用常量),這是一個很好的做法。

0

2 1500個整數的數組,不會佔用高達22 MB的空間。您的應用中存在錯誤。這樣的數組只需要小於50KB,所以2個數組應該在100KB左右。那麼,其他靜態成員是什麼?