【问题标题】:Performance at working with strings android使用字符串 android 的性能
【发布时间】:2012-09-03 22:29:12
【问题描述】:

谁能告诉我在性能方面什么更好?

string.xml保存2 个字符串 更好吗,例如'abc''abc:'

或者我应该只保存第一个连接':'在Java编码需要时???

【问题讨论】:

    标签: android xml string performance


    【解决方案1】:

    很难回答,具体取决于您的字符串将代表什么以及您需要附加什么。本地化也是一个问题,例如...

    Dog // English
    Chien // French
    Hund // German
    

    使用字符串资源允许您根据设备的语言环境创建不同的资源文件,Android 将自动使用正确的本地化字符串资源文件。如果您需要做的只是附加一个字符,例如 :,那么您将为每种语言的每个字符串加倍。

    如果您选择仅保存基本字符串并使用代码附加字符,那么代码将是通用的,您只需将字符附加到任何本地化的单词 - 可能会更有效。

    【讨论】:

    • 对,我就是这么想的。如果要附加两个字符串,这两个字符串都可以用于不同的区域/语言,是的,存储两者是有意义的。但在这种情况下,我只需要附加单个通用字符,所以我只存储字符串。谢谢!!!
    【解决方案2】:

    从存储角度和性能角度来看,您应该只保存“abc”;

    • 从磁盘获取额外数据所需的时间比一些快速的内存操作要长得多。
    • 一般来说,将相同的数据存储两次是不好的做法

    【讨论】:

    • 答案也很好。是的,它有点像其他一切。谢谢!
    【解决方案3】:

    如果你必须连接多个字符串,你应该使用 StringBuilder - http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuilder.html

    比使用 '+' 或 '.concat()' 快得多

    【讨论】:

    • 这是一个神话。编译器将使用 + 的字符串连接转换为与使用 StringBuilder 最终得到的相同的字节码。您唯一需要使用 StringBuilder 的时间是您在多个语句上构建字符串时。至于“快得多”——你有基准支持吗?
    • 他是对的,我仔细检查了 - 在你说之后我意识到我最初是为 Visual Basic 6 阅读的(在这种情况下它更快) - kaioa.com/node/59
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多