【问题标题】:Appcelerator and JSON performance on AndroidAndroid 上的 Appcelerator 和 JSON 性能
【发布时间】:2016-07-31 21:11:27
【问题描述】:

这感觉像是已经解决的问题,但我找不到它,所以我想我会问。

我有一个使用静态字典数据的应用程序,它以 JSON 文件的形式包含在应用程序中。在 iOS 上加载所需的 JSON 文件就像一个魅力 - iPhone 4s 将在 4 秒内读取和解析任何这些 JSON 文件,并且在以后的型号上变得更好。

为 Android 编译的相同代码和相同数据在 Galaxy S6 上加载需要 14 秒,延迟来自对 JSON.parse() 的调用。

一旦将数据加载到内存中,在 iOS 和 Android 上都可以正常使用它。

这一切都是使用 SDK 5.2.2 完成的。

有什么方法可以加快 Android 上的 JSON 解析过程吗?或者也许是加载大块数据的替代方法? (数据基本上是一个 trie 结构,初始化需要时间,不能即时完成。我使用另一个应用程序来初始化 trie 结构并使用 JSON.stringify() 导出它们。)

谢谢!

【问题讨论】:

    标签: android json performance appcelerator appcelerator-titanium


    【解决方案1】:

    如果在 iPhone 4s 上需要 4 秒,它一定是一个巨大的文件。一些加快速度的想法:

    • 使用 SQLite 数据库。
    • 将文件拆分为多个部分。
    • 在文件内容前添加module.exports =,将其重命名为.jsrequire(),将其作为CommonJS 模块。

    【讨论】:

    • 谢谢!不幸的是,问题不在于 iPhone 4s 的时间,而在于 Android 的时间。我不能为此使用 SQLite 数据库 - 实时搜索部分匹配项太慢了。 ...我的 JSON 文件的大小在 10 到 18 MB 之间,我意识到这很多,但它们包含预编译的字典模型,一旦加载到内存中就可以完美运行。 ...问题是在Android上加载它们很慢。事实上 JSON.stringify() 和 JSON.parse() 在 Android 上都相当慢。
    • 那么将它们变成 CommonJS 模块是一种选择吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2013-04-12
    相关资源
    最近更新 更多