У меня не установлено никакого xdebug. И по моему он по умолчанию не ставится (если честно, я не силен во всех хитростях пхп).
Без xdebug у вас получилась разница в скорости ~3 раза. В моих тестах ~6 раз.
Не исключено что пхп сильно требователен к железу, а т.к. у меня очень слабая виртуалка, то и появилась разница в ваших и моих тестах.
Когда я писал этот тест, мне не хотелось делать различий от js. Понятно что тест нужно написать как вы запулили, но это будет отличаться от жс. Возможно nodejs сам оптимизирует до такой конструкции, поэтому и получается быстрее.
Но даже в новом, оптимизированном, варианте на перле, всё равно скорость отстает от скорости на ноде.
Так что остается порадоваться за производительность математических вычислений в v8. Но при этом желать большей производительности на сокетах.
Впечатляет то что нода на данном тесте прозводительнее пела почти в 10 раз, и произвидительнее пхп в 6 раз.
Хотя в простом тесте на сетевые соединения (получить коннект, ответить, отвалиться), перл обгонял ноду примерно на 40%.
Результаты меня поразили. Поэтому я решил проверить на других языках, после чего вообще впал в ступор.
Функция: integrate(-4,4,-4,4,1024);
Perl result = 127.999997360281
Perl time = 5295.28713226318
PHP result = 127.99999736028
PHP time = 3503.4229755402
JS result = 127.99999736028109
JS time = 550
К сожалению, вы привели пример плохо работающего сервера webdav. У меня он повесил эксплорер, при попытке создать папку.
Если знаете другие сервисы предоставляющие вебдав доступ, подскажите?
Рассматривать отличия работы метода «Arr copy», и push, если мне не изменяет память в логике работы операторов, то в приближении будет происходить следующее:
1) при @arr = (@arr, $str); происходит создание массива содержащего в себе все элементы @arr и элемент $str. После чего копирование в массив @arr.
2) При push @arr, $str; будет происходить увеличение памяти выделенной под массив @arr (если это необходимо), после чего добавление нового элемента $str.
Без xdebug у вас получилась разница в скорости ~3 раза. В моих тестах ~6 раз.
Не исключено что пхп сильно требователен к железу, а т.к. у меня очень слабая виртуалка, то и появилась разница в ваших и моих тестах.
Не совсем так. Объявления переменных на каждой итерации конечно замедляет код, но не сильно, разница всего 200мс.
Но даже в новом, оптимизированном, варианте на перле, всё равно скорость отстает от скорости на ноде.
Так что остается порадоваться за производительность математических вычислений в v8. Но при этом желать большей производительности на сокетах.
Ну и у меня результат для вашего теста следующий:
Что тоже дольше чем для чистого JS.
Хотя в простом тесте на сетевые соединения (получить коннект, ответить, отвалиться), перл обгонял ноду примерно на 40%.
Функция: integrate(-4,4,-4,4,1024);
У меня тоже после первого запуска не показал ip.
Спасибо. :)
Но к сожалению, ссылку вы так и не указали.
Если знаете другие сервисы предоставляющие вебдав доступ, подскажите?
0b11111100
)1) при @arr = (@arr, $str); происходит создание массива содержащего в себе все элементы @arr и элемент $str. После чего копирование в массив @arr.
2) При push @arr, $str; будет происходить увеличение памяти выделенной под массив @arr (если это необходимо), после чего добавление нового элемента $str.