gpt4 book ai didi

android - 为什么 Android XmlPullParser 在我的旧设备上真的很慢?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:56 27 4
gpt4 key购买 nike

我使用关于 XmlPullParser 的官方 Android 指南实现了一个简单的 XML 解析器来解析一个非常简单和简短的 XML 文件(120 行,10.5Kb)。在我运行 Android 4.1.1 的 HTC One X 上,解析它只需要几分之一秒。但是在我运行 Android 2.1 的 HTC Hero 上,它花了 3 多分钟......

我知道两者之间的硬件非常不同,但是这么小的文件需要 3 分钟?这是 Not Acceptable ...特别是自从 API 1 以来 XmlPullParser 就可用了,这么慢是没有意义的。

为了找出问题所在,我一步一步地检查了解析代码。我注意到 nextTag() 是需要很长时间处理的那个,其他一切似乎都相当快。不知道这是否是唯一的问题...

有什么办法可以解决这个问题吗?

最佳答案

经过更彻底的调试和研究后,我意识到问题并不像我所怀疑的那样出在 XmlPullParser 上,它只是没有任何意义...

真正的问题在于我正在解析日期并使用 SimpleDateFormat,指定与当前使用的区域不同的区域设置。 ICS 以下的 Android 版本(如果我没记错的话)有严重的错误,需要很长时间才能为 SimpleDateFormat 加载所需的区域设置信息。这些版本在系统启动时加载并缓存默认系统区域设置(用户设置)和 Locale.US,如果这些区域设置中的任何一个与 SimpleDateFormat 一起使用,则操作会很快.否则,它会非常慢。

我还为每个日期解析创建了一个新的 SimpleDateFormat 实例,这是不必要且愚蠢的。使用单个对象作为实例变量,大大减少了解析文件所需的时间。

关于android - 为什么 Android XmlPullParser 在我的旧设备上真的很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14014154/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com