静态变量或属性的Android性能
Posted
技术标签:
【中文标题】静态变量或属性的Android性能【英文标题】:Android performance of static variable or property 【发布时间】:2012-02-25 13:17:06 【问题描述】:您好,我想知道在 android 中使用静态值的性能方面什么更好。
1- 在类中创建一个公共静态变量
public static boolean _loadConfiguration = true;
或
2- 在类中创建一个获取/设置公共静态属性
private static boolean _loadConfiguration = true;
public static boolean LoadConfiguration()
return _loadConfiguration;
public static void LoadConfiguration(boolean loadConfiguration)
_loadConfiguration = loadConfiguration;
【问题讨论】:
【参考方案1】:阅读Android: Designing for Performance,这是一篇很棒的文章。
简而言之,他们用Caliper 对系统进行了基准测试,得出的结论是您必须拥有Avoid Internal Getters/Setters:
“没有 JIT,直接字段访问比调用普通 getter 快 3 倍。使用 JIT(直接字段访问与访问本地一样便宜),直接字段访问大约比调用普通 getter 快 7 倍。这在 Froyo 中是正确的,但在 JIT 内联 getter 方法时会在未来得到改进。
【讨论】:
Rotemmiz:所以你说最好使用选项1:boolean xvalue = MyClass._loadConfiguration;比选项 2: boolean xvalue = MyClass.LoadConfiguration(); 确实,这适用于内部 getter/setter。【参考方案2】:静态变量不需要获取/设置。您始终可以使用 className.staticVariable 获取它们。静态的获取/设置总是开销。
【讨论】:
谢谢 thinksteep,我知道,但我问使用选项 1 或选项 2 是否存在性能故障(我是 C# 程序员,现在从 Android 开始)以上是关于静态变量或属性的Android性能的主要内容,如果未能解决你的问题,请参考以下文章
《android开发艺术探索》读书笔记(十五)--Android性能优化