#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.
Вот то, что я уже пробовал.
- Попробовал библиотеку—оболочку https://github.com/msgpack/msgpack-java/blob/develop/msgpack-jackson/README.md это непосредственно преобразует данные в модели. Он одинаково медленный.
- Попробовал другую библиотеку okSSE, но она использует другую кодировку, в то время как библиотека пакетов сообщений использовала другую.
- Попытался обойти все значение ImmutableMapValue и поместить ключевые значения в JSONObject. Это также занимает столько же времени.
- Пытался написать свой собственный синтаксический анализ, но это, похоже, тоже не ускоряется.
Если кто-либо из вас столкнулся с такой же проблемой с библиотекой пакетов сообщений и узнал, как оптимизировать этот шаг, пожалуйста, поделитесь в разделе ответов ниже.