Производительность интерфейса Javascript по сравнению с серверной частью C.

#javascript #c #performance

#javascript #c #Производительность

Вопрос:

Я извлекаю файл JSON, генерируемый на сервере, каждые 5 минут или около того (размер около 10 КБ прямо сейчас, будет увеличиваться по мере запуска в производство). Как только файл извлечен, у меня есть различные API визуализации Javascript, к которым мне нужно подключить данные.

Мой серверный интерфейс написан на C, и я использую Jquery / Javascript для визуализации.

Вот два подхода, которые у меня есть: 1. a. Получать все данные JSON (> 8 КБ) с сервера каждые 5 минут. b. Анализировать данные с помощью Javascript и извлекать необходимую информацию в соответствии с требованиями Javascript API. (Разные API визуализации требуют разных подмножеств информации) c. Отобразить визуализацию

ИЛИ 2. a. Обработайте данные в самой серверной части и извлеките информацию в соответствии с API Javascript и сохраните ее в серверной части b. Позвольте каждому API javascript выполнять независимые вызовы Ajax и получать свои собственные данные и отображать их

Мой вопрос в том, какой из двух вышеупомянутых подходов даст более быстрый результат. Будет ли серверная часть на C в этом случае быстрее, чем интерфейс на Javascript

Ответ №1:

Единственный ответ, который может быть дан, — это сравнить оба подхода. Задействовано слишком много переменных, чтобы дать окончательный ответ.

Используемый браузер будет влиять на то, сколько времени это займет на стороне клиента, поэтому в зависимости от того, что вам нужно поддерживать, вы должны иметь это в виду.

Насколько сложная структура данных, которую необходимо проанализировать, может повлиять на производительность на стороне клиента.

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

Ответ №2:

Мне неясно, что вы пытаетесь сделать. В любом случае, я думаю, что бизнес-логика должна содержаться на сервере, а логика представления (jQuery / javascript или любая другая библиотека, которую вы используете) должна выполняться строго на клиенте.

Ответ №3:

Ваш второй подход был бы быстрее и, вероятно, лучше. Поскольку вы сказали «Пусть каждый javascript api… получить свои собственные данные «, похоже, что подход 1 будет указывать на отправку клиенту больше, чем ему нужно.

Ответ №4:

Зависит от того, сколько запросов будут выполнять ваши плагины. Если вам не нужно производить никаких вычислений, и все делается при первом вызове, и ваша задача — только определить, куда должна направляться каждая часть данных, то вариант 1 является самым быстрым. Запросы стоят дорого.

С другой стороны, если вы собираетесь вычислять значения в javascript, это зависит от того, насколько тяжелыми будут эти вычисления. В этом случае вы получите лучший ответ, выполнив тест:

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

Рассмотрите возможность группировки всех результатов в один результат JSON и передачи их плагинам.

И учтите также, что если вы делаете это на сервере, возможно, вы сможете использовать кэш, чтобы выиграть некоторое время обработки (и я говорю «возможно», потому что это зависит от того, какой алгоритм / источник данных вы используете)

Надеюсь, это поможет, удачи! 🙂

Ответ №5:

Первое, что вы должны знать, это то, что ваша конкретная настройка окажет большее влияние на производительность этой системы, поэтому единственный способ узнать наверняка — сравнить оба подхода. При этом скомпилированный язык, такой как C, почти всегда будет быстрее интерпретируемого языка, такого как JavaScript.