Оптимизация Socket.io: посылает ли socket.io строку JSON? Как мы можем оптимизировать это? - PullRequest
0 голосов
/ 30 апреля 2018

Согласно этому вопросу: ( Socket.io: Как ограничить размер передаваемых данных от клиента на сервер веб-сокетов ), вы можете приблизительно рассчитать размер пакетов, превратив данные в JSON. строка и найти ее длину.

Не означает ли это, что, например, число 12345678 занимает столько же байтов, сколько и строка "12345678", даже если один является строкой, а другой - числом?

Кроме того, означает ли это, что числа округления уменьшат размер? Таким образом, вместо 3.49362627, вы можете отправить 3,5.

Уменьшит ли длина тегов свойств и размер? Вместо: {width: 4} вы можете {w: 4}.

Спасибо, помогите понять размер пакетов, отправляемых socket.io. Любые другие общие советы по оптимизации приветствуются.

1 Ответ

0 голосов
/ 30 апреля 2018

Сериализация / десериализация Socket.io выполняется JSON.stringify() / JSON.parse(). Все становится строками в процессе. Так что, действительно, вам лучше отформатировать свои числа в меньшие строки, если вы хотите минимизировать размер пакета (например, с toFixed). Обратите внимание, что в формате JSON двойные кавычки " добавляются вокруг строк, что увеличивает его на 2 байта.

Другое следствие: функции объекта теряются в процессе сериализации.

Советы по оптимизации:

  1. Обычно более эффективно пересчитывать данные (например, разархивировать), а не перемещать данные (сеть, диск, ...). Таким образом, ваш подход действителен.

  2. Всегда измеряйте производительность перед оптимизацией. Вы часто будете удивлены, что «оптимизация» только ухудшит вашу производительность.

Обратите внимание, что JSON.stringify вызывает функцию toJSON вашего объекта.

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