Обновить
5
0
Г.О.@gro

Пользователь

Отправить сообщение
Что мы сравниваем по скорости? Смысл существования различных языков не в том, что на них решаются одни и те же задачи, одними и теми же алгоритмами, только с разной скоростью. Тогда бы право на существования имел только один язык - самый быстрый.
Смысл же их существования в том, что задачи решаются по разному, разными алгоритмами. Поэтому, одни языки подходят для одного круга задач, а другие для другого.
Взять С-код и изменить в нем "int i = 0" на "$i = 0", а потом что-то сравнивать бессмысленно. Если так, ни PHP, ни Ruby не нужны. Есть C и он быстрее.
Нужны же они именно потому что там не нужно копировать массивы так как это делается в Ц.
Тест выполняет эти требования, но, как я написал выше, он бессмысленен. На мой взгляд.

За карму спасибо.
Это тест, показывающий скорость языка по поэлементному копированию массива в цикле for. Если задача тестов была в этом, то хорошо. Возможно, да, Ruby в данном случае равен PHP по скорости.
Однако, название статьи "Ruby медленнее PHP? Уже нет!" и её посыл в том, что Ruby сравнялся с PHP в их предметной области.
К сожалению, большинство сделает выводы именно по самому тексту статьи и не будет вникать в суть тестов.
Я же считаю, что эти тесты ничего не показывают, кроме скорости все того же for-перебора и подобного.
Если бы была просто задача - "получить все возможны комбинации заданного числа цифр", то можно было бы сравнивать языки, но только написав для каждого из них свой алгоритм, подходящий для особенностей данного языка. Просто же переносить Сишный с его особенностями и заточкой под Си, смысла нет никакого.
Ну и где там суть?
Ладно, суть мне не рассказывают, а только минусики ставят. Попробую высказаться сам.
В тесте сравнивается быстродействие Ruby и PHP на преобразованиях массивов. Очень странный выбор для области применения данных языков, но черт с ним.
В процессе решения данной задачи, возникает подзадача — копирование массива.
Лично я делаю это так: $array1 = $array2; Большинство трезвомыслящих людей делают это аналогично. Поэтому у нас PHP работает на соответствующей скорости.
Граждане тестеры решили сделать по другому — циклическим присвоением значений, написанном на интерпретируемом языке. В качестве цикла был выбран for (даже foreach в данном случае был бы

намного быстрее).
На основании временных замеров они делают вывод, что PHP по скорости примерно равен Ruby. Вообще, равен. Не на данном идиотском примере, а вообще. И большинство людей, прочитавших это

сообщение сделает тот же вывод.

Давайте пойдем дальше — напишем тоже самое на ассемблере. Потом создадим php-сценарий, в котором определим класс CPU, с полями AX, BX, CX... Создадим большой массив Memory и функции по

доступу к нему. Напишем функции MOV, ADD и т.д. И реализуем дословно ассемблерный алгоритм. А потом будем строить графики и кормить ими неокрепшие мозги веб-программистов.
А какая разница, что ниже по коду? К моменту копирования perm1 имеет размер N, perm не определен.
Результат в обоих случаях получается одинаковый, можете проверить.
Не могли бы пояснить эту суть?
Их не больше. $perm1 создается чуть выше с размерностью $n.
Прошу прощения, по вашему от этого изменится результат?
Это происходит, скорее всего, от того, что никто перед вами не извиняется.
Господи, что за код!
Да одна замена:
for($i=0; $i<$n; $i++) $perm[$i] = $perm1[$i];
на
$perm = $perm1
дает 15% прироста. С остальным поковыряться, вполне возможно и до 50 дойдет.

Это вне разговора о том, что обход бинарных деревьев не то, на чем нужно тестировать языки для веб-программирования.
Ну и что нам скажет дедушка Фрейд по поводу вращения обнаженных девушек в голове?
У руби версии до 3-й точки перечислены. А пых какой? 3-й? php-fi 2?
Какие тесты? Покажите коды.
PHP как модуль? Какие расширения? Какой сервер? Какая операционка?
Что это за стандартный набор тестов по которому можно сравнить C и JS?
Какое мясо :)
Так CMS это или фреймворк?
А гугл свои десятки миллиардов заработал сугубо благодаря продаже рекламы на главной странице google.com?
Сыро, бессвязно, ошибки...
Имхо, нужно не перечислять методы из документации, а остановиться на важнейшем аспекте — асинхронности, на том, чем асинхронное программирование будет отличаться от привычного.
if (Request.status == 200)
{
//Если обмен данными завершен
if (Request.readyState == 4)
{
//Передаем управление обработчику пользователя


Наоборот надо.

Заметьте, что названия методов записаны в том же стиле (Camel-style),
...
Open()



//Internet explorer
Request = new ActiveXObject("Microsoft.XMLHTTP");

if (!Request)
{
HRequest = new ActiveXObject("Msxml2.XMLHTTP");
}

Если первый не сработает, будет исключение. Нужно ловить через try.
Ссылки есть? :-D
Ссылка никогда не бывает лишней )
А может люди не использующие PDT, пойдут по ней и станут страстными адептами.
И вам спасибо скажут.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Зарегистрирован
Активность