我正在将消息包库(https://github.com/msgpack/msgpack-java)用于 android 应用程序,并从接收到的 InputStream 中解压缩流式 API 中的数据。传输速度很快,整体效果很好,但是在客户端(即android应用程序),在解包流时,解析时间太长。
对于大小为 16.65kb 的数据,一行代码可以占用大约 600-800 毫秒。
ImmutableValue val = unpacker.unpackValue();
**JSONObject jsonObj=new JOSNObject(val.toString());**
我怎样才能让它更快?它在 iOS 手机中使用 MPMessagePack 库不到 50 毫秒,该库在内部用 C 语言进行解析。
这是我已经尝试过的事情。
- 尝试了 直接将数据解析为模型的包装器库https://github.com/msgpack/msgpack-java/blob/develop/msgpack-jackson/README.md 。它同样缓慢。
- 尝试了另一个 lib okSSE,但它使用了不同的编码,而 message-pack lib 使用了不同的编码。
- 试图遍历整个 ImmutableMapValue 并将键值放入 JSONObject。这也需要相同的时间。
- 试图编写我自己的解析,但这似乎也没有加快速度。
如果你们中的任何人在使用 message-pack 库时遇到过同样的问题,并找到了如何优化这一步的方法,请在下面的答案部分分享。