开发者

Variable access performance

I'm developing an app that has a DataManager class, which holds an ArrayList<Object[]>. As this ArrayList needs to be used within other classes, I am wondering what would be the most efficient and fastest way of accessing this list, considering this application will be running on the Android platform.

A) create a 开发者_高级运维public static ArrayList<Object[]> data in the DataManager class and reference it within other classes through DataManager.data

B) create a public ArrayList<Object[]> getData method within the DataManager class and have methods within other classes create local variable ArrayList<Object[]> data = mDataManager.getData() for temporary use.

C) ..?

It seems to me B has more overhead due to object creation. Also I read static is faster than non-static?


Option B does not increase memory use, since you will only have one ArrayList object (all the objects that use it just hold a simple reference, not a copy). The objects that use the ArrayList could also store this reference as an instance variable, instead of requesting it from the manager class each time it is needed.

I read somewhere that access to instance variables is slightly faster than accessing class (static) variables, but I don't have the link to the source.

The difference in performance is not likely to be meaningful. However, Option B gives you better encapsulation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜