Are you ready? Benchmarks frameworks: PHP 7 vs. Node.js 4.4.7
Вхідні дані
В цій темі будуть використані
NodeJS-frameworks:
1. Express 4.13.4
2. Restify 4.0.3
PHP-frameworks (пояснення вибору в кінці тестів):
1. Codeigniter 3.1.0
2. KohanaFramework 3.3.6
Вони працюватимуть відповідно на Node.js 4.4.7 та PHP 7 (+ Apache 2.4.18), виводитимуть стандартний «Hello World!».
Тести будуть проводитись на Ubuntu 16.04:
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: AuthenticAMD CPU family: 16 Model: 4 Model name: AMD Phenom(tm) II X4 945 Processor Stepping: 3 CPU MHz: 1800.000 CPU max MHz: 3000,0000 CPU min MHz: 800,0000 BogoMIPS: 6015.61 Virtualization: AMD-V L1d cache: 64K L1i cache: 64K L2 cache: 512K L3 cache: 6144K NUMA node0 CPU(s): 0-3
Тести
1000 запитів без конкуренції
по часу виконання (менше — краще)

по кількості запитів за секунду (більше — краще)

1000 запитів з конкуренцією 10 шт за раз
по часу виконання (менше — краще)

по кількості запитів за секунду (більше — краще)

Прокачаємо NodeJS-фреймворки — використаємо усі 4 ядра процесора (в режимі cluster)
1000 запитів з конкуренцією 10 шт за раз
по часу виконання (менше — краще)

по кількості запитів за секунду (більше — краще)

Підсумок
Як бачимо, PHP-фремворки без конкурентних запитів, тобто в однопоточному режимі, показують майже в двічі меншу швидкість,
ніж NodeJS-фреймворки.
Коли додали конкуренції, PHP-фреймворки легко обійшли NodeJS-фреймворки за рахунок багатопоточності та спільного використання opcache php-процесами.
Ну і вже коли використали 4 ядра для кластерного режиму Node.js, то NodeJS-фреймворки підтягнулись, і навіть трохи обігнали PHP-фремворки.
Покищо ще не навчився фіксувати спожиту пам’ять за час проведення тестів, теоретично — NodeJS-фреймворки мали б кращі показники,
але до проведення цих тестів, я думав що NodeJS-фреймворки в рази обженуть PHP-фреймворки...
Оновлення від 01.08.2016 13:56
Оскільки в коментарях часто питають про неперспективність вибраних PHP-фреймворків, то мушу прокоментувати свій вибір.Справа в тому, що мені, як колишньому розробнику PHP, який перейшов на JavaScript/TypeScript, більш цікаво було порівняти одні з найшвидших фреймворків на платформах PHP та Node.js, в контексті виходу сьомої версії PHP. Усі вибрані фреймворки можна назвати мінімалістичними, досить добре відомими серед розробників.
Slim, Silex, Yii, Symfony, Laravel — всі вони повільніші за Codeigniter, по крайній мірі так було десь
Якщо хтось хоче показати що, можливо зараз вже Slim чи Silex обганяють CI, — welcome у коментарі, або ж навіть створюйте нову тему із «интригами, скандалами, расследованиями».
75 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів