Как сократить время синтаксического анализа библиотеки пакетов сообщений при распаковке огромных данных

#android #httpresponse #msgpack #lightweight-stream-api

#Android #httpresponse #msgpack #lightweight-stream-api

Вопрос:

Я использую библиотеку пакетов сообщений (https://github.com/msgpack/msgpack-java ) для приложения Android и распаковка данных из потоковых API формируют полученный входной поток. Передача происходит быстро и в целом работает хорошо, но на стороне клиента (т.Е. В приложении Android) при распаковке потока синтаксический анализ занимает слишком много времени.

Существует одна единственная строка кода, которая занимает около 600-800 мс для данных размером 16,65 КБ.

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

Как я могу сделать это быстрее? Его менее 50 мс в телефоне iOS с использованием библиотеки MPMessagePack, которая выполняет внутренний синтаксический анализ на языке C.

Вот то, что я уже пробовал.

  1. Попробовал библиотекуоболочку https://github.com/msgpack/msgpack-java/blob/develop/msgpack-jackson/README.md это непосредственно преобразует данные в модели. Он одинаково медленный.
  2. Попробовал другую библиотеку okSSE, но она использует другую кодировку, в то время как библиотека пакетов сообщений использовала другую.
  3. Попытался обойти все значение ImmutableMapValue и поместить ключевые значения в JSONObject. Это также занимает столько же времени.
  4. Пытался написать свой собственный синтаксический анализ, но это, похоже, тоже не ускоряется.

Если кто-либо из вас столкнулся с такой же проблемой с библиотекой пакетов сообщений и узнал, как оптимизировать этот шаг, пожалуйста, поделитесь в разделе ответов ниже.