Что лучше использовать для печати больших данных json в java 'getOutputStream' или 'getWriter' - PullRequest
0 голосов
/ 12 июня 2018

Сценарий, как будто мне нужно напечатать очень большой набор данных JSON.Эти данные JSON используются мобильными приложениями.В приложении-службе Java, как показано ниже, для печати json.

response.getWriter().println(mainjson);

getWriter занимает слишком много времени для печати всех данных.

Я также слышал о getOutputStream.Что быстрее в случае больших данных JSON?Любая помощь будет оценена: -)

1 Ответ

0 голосов
/ 14 июня 2018

Это зависит от того, как вы извлекаете данные и есть ли у вашего сериализатора JSON доступный потоковый API.

В данный момент вы, вероятно, работаете в три отдельных этапа

  1. Получение всех ваших данных
  2. Сериализация их в строку JSON
  3. Запись JSONответ.

Если вы тратите значительное количество времени на поиск и сериализацию, то вы можете ускорить процесс с помощью потоков.Однако для этого требуется ваш сбор данных и json сериализатор для поддержки потоков.

При использовании потоков вместо того, чтобы делать все последовательно, вы в основном настраиваете конвейер, который позволит вам начать писать ответ немного раньше.Это не обязательно будет быстрее, хотя это зависит от того, где происходит ваше конкретное узкое место.Если это почти все проблемы с IO для клиента, то вы не увидите существенной разницы.

Также

Что-то еще, чтобы проверить, проверитьВы сжимаете свой ответ пользователю.Gzip может оказать существенное влияние на размер текстовых данных и может значительно снизить полезную нагрузку, чтобы не создавать проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...