【问题标题】:Android performance of static variable or property静态变量或属性的Android性能
【发布时间】: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;
}

【问题讨论】:

    标签: android variables static public


    【解决方案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 开始)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 2021-05-27
    • 2021-06-08
    • 2023-03-31
    相关资源
    最近更新 更多