#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.