Я пытаюсь выбрать лучшую технологию для своего API, поэтому я создал самый простой скрипт:
PHP:
<?php
$r = [];
for($i=0;$i<=1000000;$i++) {
$r[] = $i;
}
echo json_encode($r);
Узел:
var http = require("http");
http.createServer(function(request, response) {
var i, ret = [];
response.writeHeader(200, {"Content-Type": "text/html"});
for(i=0;i<=1000000;i++) {
ret.push(i);
}
response.end(JSON.stringify(ret));
}).listen(8080);
Apache имеет довольно стандартную конфигурацию по умолчанию и не содержит причудливых оптимизаций
Время отклика составляет около 1,5 с-2,3 с для PHP + Apache и NodeJS, что действительно странно. Так что, я делаю что-то не так с узлом или просто, что эта специфическая функциональность не имеет преимущества перед PHP + Apache?
API должен, в конечном счете, принимать вызовы, вставлять его в базу данных с одной стороны, а с другой — извлекать эти результаты. API должен принимать около 1 миллиона вызовов в день, и он должен быть масштабируемым, поэтому я пытаюсь выяснить, какой подход лучше, и результаты теста производительности меня немного смутили.
Обратите внимание, что результаты теста производительности зависят от типа программ / приложений, которые вы используете для тестирования.
Обычно существует два типа показателей эффективности. Одним из них является производительность на стороне сервера (она измеряется путем вычисления загрузки процессора и памяти соответствующей технологии на сервере (Linux Box)), а другим — производительность на стороне клиента (измеряется временем отклика с использованием таких инструментов, как Apache Bench).
Тесты использования ЦП и памяти на стороне сервера: Debian.org тестирует различные языки программирования / фреймворк в Linux Box (Ubuntu). Он использует набор различных типов программ для измерения производительности. Это может быть идеальным источником информации. Однако он измеряет только использование ресурсов ЦП и памяти на стороне сервера. Результат сравнения между Node и другими языками (например, PHP) можно найти по следующей ссылке:
https://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html
https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=node&lang2 = PHP
Согласно их результатам, Node работает значительно лучше по сравнению с PHP с точки зрения использования процессора.
Ориентиры времени отклика на стороне клиента: Hostingadvice сравнил производительность Node и PHP на стороне клиента. Они измеряли производительность с точки зрения времени отклика на стороне клиента. Вы можете найти результат по следующей ссылке:
http://www.hostingadvice.com/blog/comparing-node-js-vs-php-performance/
Согласно их результатам, Node работает значительно лучше, чем PHP, с точки зрения времени отклика на стороне клиента.
Других решений пока нет …