Производительность Javascript Front-End против C Back-End - PullRequest
3 голосов
/ 15 апреля 2011

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

Мой бэкэнд находится в C, и я использую Jquery / Javascript для визуализации.

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

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

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

Ответы [ 5 ]

2 голосов
/ 15 апреля 2011

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

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

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

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

0 голосов
/ 15 апреля 2011

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

0 голосов
/ 15 апреля 2011

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

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

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

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

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

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

0 голосов
/ 15 апреля 2011

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

0 голосов
/ 15 апреля 2011

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

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