Александр Морозов: Ну вот и слава Боженьке, а то я уж перепугался, увидев код. V8 очень здорово оптимизирует код, на ютубе есть немало роликов по этому поводу. PHP этого, насколько мне известно (могу и ошибаться) не делает, по крайней мере в старых версиях. Поэтому такая существенная разница.
По поводу вынесения вычислений замечания справедливые, самый простой способ узнать истину - написать 2 варианта кода и сравнить время на выполнение в микросекундах.
Я рад что понимание было достигнуто. Я за 20 лет в отрасли уже не автомате выдаю код, более-менее оптимизированный, даже если он всего 1 раз будет выполняться, т.к. смысла переучиваться не вижу. :) Существенное влияние на этот подход оказало системное программирование на паскале в обстоятельствах жесткого ограничения по ресурсам (64 кб оперативки на всё, про всё, вычислительная мощность 486 процессора на 25 мгц).
JS отрабатывает быстрее PHP по одной простой причине - там производится много оптимизаций, по сути, я думаю, JS мутирует код в примерно такой, который я опубликовал здесь в ответе.
Saboteur: дак это доли секунды для такого скрипта... Вообще странно конечно, должно достаточно быстро отработать. А пыха какой версии? Попробуй 7.1 и запуск из консоли...
Посмотри собственные скрипты сайта, как они шлют аякс запросы, возможно что-то ты упускаешь. Может там вообще он что-то через сокеты тащит, посмотри что у него в локалсторадже лежит. Можно попробовать забацать расширение для браузера для этого сайта, которое будет инжектить скрипт в его тело.
Для начала недурно бы структуру данных показать, что приходит от API по первому и второму запросу. Если до API есть доступ, однозначно получать по второму запросу пачкой данные, т.к. десятки запросов это ой как не есть хорошо.
Вот этот бенч
выдает в среднем (+-15%) такой результат: 0.3626 на PHP 7.1 и 0.9261 на PHP 5.6 при 10 итерациях, процессор Core i3-3210 3.2 Ghz