2011-10-22 103 views
3

能否請你給我建議(Android/JAVA新手)什麼是處理相對大量數據的最有效方式?Android中處理大量數據的最快方式是什麼?

我需要爲每個1000 ... 5000元素計算一些東西,比如大數據類型(x1,y1,z1 - double,flag1 ... flagn - boolean,desc1 ... descn - string )經常(每秒一次),這就是爲什麼我想要做的儘可能快。

什麼方法是最好的?要聲明一個多維數組,或爲每個元素(x1 [i],y1 [i] ...),特殊類,某種JavaBean生成一個數組?哪一個在速度等方面最有效?在Java中處理這類事情最常用的方法是哪種?

非常感謝提前!

回答

3

尼克,你問了一個非常普遍的問題。我會盡我所能來回答它,但請注意,如果您想要更具體的任何內容,您需要深入瞭解您的問題。

一些背壓計算顯示,對於5000個雙打數組和5000個雙打數組,您將使用8個字節* 5000 = 40,000個字節或大約40 kB的內存。這並不是太糟糕,因爲大多數android設備的內存大小都是千兆甚至千兆字節。一個好的'ol ArrayList應該可以很好地存儲這些數據。 通過在構造函數中指定ArrayLists長度,可以使事情變得更快一些。這樣,Arraylist在每次向其添加更多數據時都不必動態擴展。

儘管謹慎。由於我們在內存限制設備上,可能發生的情況是,如果您連續快速生成大量這些ArrayList,則可能會開始觸發垃圾收集器。這可能會導致您的應用程序變慢(整個設備實際上)。如果你真的要生成大量的數據,那麼不要將它存儲在內存中。將其存儲在磁盤上,您將擁有足夠的空間,並且不會始終觸發垃圾收集器。

+0

非常感謝,我會考慮一個ArrayList呢! – Nick

1

我認爲您在每個元素上編寫計算所需的效率比用來存儲它的數據結構更重要。爲每個元素或對象數組使用數組(實際上每個元素都是包含所有元素的類的實例)之間的區別實際上應該可以忽略不計。使用您感覺最舒適的數據結構,並專注於編寫高效的算法。

+0

非常感謝,當然我會盡力優化計算! – Nick

相關問題