При подключении к web-socket на сайте получаю информацию в виде JSON (по несколько десятков в секунду) вида: {"value":"1505","id":"23","type":"1497488"}
Разбираю её с помощью json.parse и по условиям определяю нужна ли она мне или нет. Есть ли более быстрый алгоритм, который либо будет асинхронно разбирать все полученные json данные или обрабатывать их?
Алексей Тен, нет. Есть такой вариант, что нужно сменить интернет, чтобы получать данные быстрее. К примеру если скорость 100мб/с, заменить на 200, как это отразится на скорости получения данных?
Nikolay37, ну, если вы не можете влиять на сервер то обрабатываете все события, приходящие из сокета. Это асинхронная модель, но она все-равно однопоточная. При этом вряд ли у вас там проблема, скорее всего дальше
Nikolay37, дебаг и еще раз дебаг. Скорость может влиять только на то сколько сообщений в секунду вы получаете, а не обрабатываете. Попробуйте замерить сколько у вас сообщений в секунду приходит и сколько выходит из обработчика. Если это цифра равная и у вас не кипит процессор то никак не можете ускорить, ведь вы не можете влиять на то как часто вам присылают эти сообщения, вы просто слушаете сокет
Иван Шумов, замечаю то, что запросы отправляются с разной скоростью, т.е. 1 запрос уйдет за 1 секунду, другой за 2, из-за waiting TTBF, возможно ли это как-то исправить или лучше будет посылать сразу несколько запросов?
Nikolay37, Вы говорите о TTBF и об отправке запросов сейчас, а изначально вы говорили что получаете события по ws. Вы точно понимаете что происходит и как заниматься отладкой?
Иван Шумов, Да, опять же говорю - я подключаюсь к WS, получаю информацию, если она подходит - отправляю запрос. Так понимаю в WS ничего меня не держит, т.е. там все максимально быстро, отсюда вывод что возможно при отправке запросов очень много времени теряю
Nikolay37, если вам и этого будет мало то поставьте Message Broker (Rabbit MQ или Kafka), отправляйте сообщения из вебсокета в очередь, а из очереди в воркеров. Воркеров можете поставить любое количество. Это будет МАКСИМАЛЬНО быстро, но деталей задачи я не знаю.