Скорость выполнения кода: ASP.NET-MVC по сравнению с PHP

Если вы прочитали строки файла и можете получить список,

, как

ranges_in_file = [1.3,1.9,2.05,math.inf,1.64]

, вы можете понять, что вам нужно / не нужно :

wanted = [x for x in ranges_in_file if x not in [math.inf, "range"] ]
70
задан 7wp 30 August 2009 в 07:29
поделиться

5 ответов

Это - твердое сравнение для создания, потому что различия в соответствующих стеках означают, что Вы заканчиваете тем, что делали то же самое по-другому и если Вы делаете их то же в целях сравнения, это не очень реалистический тест.

PHP, который я люблю, находится в его наиболее канонической форме, загруженной каждым запросом, интерпретируемым и затем отброшенным. Это очень похоже на CGI в этом отношении (который не является никаким удивлением, полагая, что этому примерно 15 лет).

Теперь за эти годы различные оптимизации были сделаны улучшить производительность, прежде всего код операции, кэширующийся с APC, например (так так, чтобы APC был стандартным компонентом PHP 6, и не дополнительный модуль как он теперь).

Но все еще Сценарии PHP являются в основном переходными. Информацией о сессии является (обычно) файл, базирующийся, и взаимоисключающий (session_start () блокирует другие сценарии, получающие доступ к тому же сеансу пользователя до session_commit () или концы сценария), тогда как это не имеет место в ASP.NET. Кроме данных сессии, это довольно легко (и нормально) иметь объекты, которые живут в контексте приложения в ASP.NET (или Java в этом отношении, который ASP.NET намного более подобен).

Это - основное отличие. Например, доступ к базе данных в PHP (использующий mysql, mysqli, PDO, и т.д.) является переходным (постоянные соединения, несмотря на это), тогда как .Net/Java будет почти всегда использовать пулы постоянного соединения и сборку сверху этого для создания платформ ORM и т.п., кэшей, для которых вне какого-то конкретного запроса.

Поскольку байт-код интерпретировал платформу, ASP.NET теоретически быстрее, но пределы тому, что может сделать PHP, так высоки, что не важны для большинства людей. 4 из лучших 20 посещаемых сайтов в Интернете являются PHP, например. Скорость разработки, устойчивости, стоимости выполнения среды, и т.д.... имеет тенденцию быть намного более важной, когда Вы начинаете масштабироваться, чем какое-либо теоретическое различие в скорости.

Примите во внимание, что .NET имеет типы примитивов, безопасность типов и эти виды вещей, которые сделают код быстрее, чем PHP может выполнить его. Если Вы хотите сделать несколько несправедливый тест, отсортируйте массив одного миллиона случайных целых чисел на 64 бита в обеих платформах. ASP.NET уничтожит его, потому что они - типы примитивов, и простые массивы будут более эффективными, чем ассоциативные массивы PHP (и все массивы в PHP ассоциативны в конечном счете). Плюс PHP на ОС на 32 бита не будет иметь собственного целого числа на 64 бита, так пострадает чрезвычайно для этого.

Нужно также указать, что ASP.NET предварительно компилируется, тогда как PHP интерпретируется на лету (исключая кэширование кода операции), который может иметь значение, но гибкость PHP в этом отношении является хорошей вещью. Способность развернуть сценарий, не возвращая Ваш сервер является большой. Просто отбросьте его в, и это работает.Замечательно. Но это менее производительно в конечном счете.

В конечном счете, хотя я думаю, что Вы обсуждаете то, что является действительно несоответствующей деталью.

67
ответ дан Aurélien Gasser 24 November 2019 в 13:20
поделиться

В моем (non-hardbenchmarked) испытывают Asp. Сеть может, конечно, конкурировать (и в некоторых областях превосходят), PHP с точки зрения необработанной скорости. Но похожий с большим количеством других связанных с выбором языка вопросов следующее утверждение (в этом случае) допустимо (по-моему):

  • Существуют медленные, ошибочные сайты на языке x (быть этим PHP или Asp. Сеть)
  • Существуют большие, быстрые сайты на языке x (быть этим PHP или Asp. Сеть)

Что я пытаюсь сказать: (таланты) разработчик будет влиять на общую скорость больше, чем выбор между два (примерно эквивалентный в некоторой абстрактной степени) технологии.

Действительно, 'общая скорость' сравнение не имеет большой смысл, поскольку оба могут поймать друг до друга так или иначе, если Вы не находитесь в очень определенной нише специалиста (который Вы не сообщили нам о).

21
ответ дан ChristopheD 24 November 2019 в 13:20
поделиться

Я был бы склонен соглашаться с Вами (что ASP.NET MVC быстрее), но почему бы не сделать дружественное пари с Вашим другом, и совместно используйте результаты? Создайте действительно простую страницу DYNAMIC, полученную из базы данных MySQL, и загружайте страницу много раз.

Например, составьте таблицу с 1 000 000 строк, содержащих последовательный первичный ключ и затем случайный # во втором столбце. Каждый из Ваших сайтов может принять первичный ключ в ПОЛУЧЕНИИ, получить случайный # на основе переданного в ключе и отобразить случайный # в некотором типе динамично сгенерированного HTML.

Я хотел бы знать результаты... и если у Вас есть блог или подобный, остальная часть мира была бы также (этот вопрос задают Все время).

Было бы еще лучше, если Вы могли бы создать это простое небольшое приложение в регулярном ASP также. Heck, я даже заплатил бы Вам за эти результаты, если бы тест был хорошо разработан. Серьезно - просто выражают Ваш интерес здесь, и я пошлю Вам свое электронное письмо.

1
ответ дан Beep beep 24 November 2019 в 13:20
поделиться

Обычно ASP.NET будет работать лучше на данных аппаратных средствах, чем PHP. MVC ASP.NET может добиться большего успеха все еще (может быть действующим словом здесь). Большая часть платформы разработана с развитием предпринимательства в памяти. Тестируемый код, разделение проблем и т.д. Много чрезмерного увеличения размера в ASP.NET прибывает из объектного стека в странице (вложенные средства управления). Предварительная компиляция делает это лучше производительным, но это может быть ключевой вопрос. MVC имеет тенденцию допускать меньше вложения, с помощью основанного на веб-формах механизма представления (другие доступны).

То, где самое большое замедление в веб-приложениях происходит, имеет тенденцию быть удаленными сервисами, особенно персистентность базы данных. PHP программируется без преимущества организации пула подключений или состояния сеанса в оперативной памяти. Это может быть преодолено с memcached и другим, больше производительных уровней служб (также доступный .NET).

Это действительно сводится к специфическим особенностям сайта/приложения. этот сайт, оказывается, выполняет MVC на довольно скромных аппаратных средствах вполне хорошо. Подобный сайт под PHP, вероятно, подпал бы под свой собственный вес. Другие вещи рассмотреть. IIS по сравнению с Apache по сравнению с LightHTTPD и т.д. Честно php по сравнению с asp.net намного больше, чем необработанные различия в производительности. PHP не предоставляет себя хорошо большим, сложным приложениям почти так как asp.net mvc, случается так что просто... Это само больше имеет отношение к VS+SCC, чем что-либо еще.

3
ответ дан Tracker1 24 November 2019 в 13:20
поделиться

Без какой-либо оптимизации приложение, скомпилированное с помощью .net, конечно, будет работать «быстрее», чем php. Но вы правы в том, что это глупый и неуместный аргумент, потому что он не имеет никакого отношения к реальному миру, кроме права хвастовства.

5
ответ дан 24 November 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: