解压海量数据时如何减少消息包库的解析时间

How to reduce the parsing time of Message pack library when unpacking the huge data

提问人:Kshitij Khatri 提问时间:10/22/2020 更新时间:10/22/2020 访问量:327

问:

我正在将消息包库 (https://github.com/msgpack/msgpack-java) 用于 android 应用程序,并从收到的 InputStream 中解压缩流 API 中的数据。传输速度很快,总体上效果很好,但是在客户端(即安卓应用程序),在解压缩流时,解析时间太长。

对于大小为 16.65kb 的数据,只需一行代码即可占用大约 600-800 毫秒。

    ImmutableValue val = unpacker.unpackValue();
  **JSONObject jsonObj=new JOSNObject(val.toString());**

我怎样才能让它更快?在使用 MPMessagePack 库的 iOS 手机中,它不到 50 毫秒,该库在内部使用 C 语言进行解析。

这是我已经尝试过的事情。

  1. 尝试了直接将数据解析为模型的包装器库 https://github.com/msgpack/msgpack-java/blob/develop/msgpack-jackson/README.md。它同样慢。
  2. 尝试了另一个库 okSSE,但它使用不同的编码,而消息包库使用不同的编码。
  3. 尝试遍历整个 ImmutableMapValue 并将键值放入 JSONObject 中。这也需要同样的时间。
  4. 尝试编写我自己的解析,但这似乎也没有加快速度。

如果你们中的任何人在使用消息包库时遇到过同样的问题,并了解如何优化此步骤,请在下面的答案部分分享。

Android httpresponse msgpack 轻量级流 API

评论


答: 暂无答案