CodeNet / Веб программирование / ASP / ASP.NET / Производительность
PHP против ASP - делайте ставки, господа!
"ASP - это функциональная, удобная технология, но я выбираю PHP.." - примерно так начинается небольшая статья-размышление на тему "кто самее", найденная мной на сайте SimplyWebDesign.com (статья: Why PHP is Better than ASP). Я подумал, что возможно кому-то из наших посетителей тоже захочется пофилософствовать на эту тему, и потому предлагаю вам перевод этой статьи. Свое мнение, я выскажу в конце. Не стоит относиться ко всему нижеизложенному очень серьезно, кипятиться по пустякам, обзывать меня зеленым недоношенным ламером - я всего лишь переводчик (aka Promt ;)) ..
ASP? PHP?
Active Server Pages (ASP) - это технология Microsoft, позволяющая создавать динамические web страницы. ASP поддерживает несколько языков программирования, наиболее распространенным является VBScript (опять же разработка Microsoft). Соответственно, ASP - это технология для Windows систем. (Подробнее об ASP: Что за зверь, этот ASP? )
PHP - аналог ASP, который может работать как в среде UNIX так и в Windows. PHP - это система разработки скриптов, включающая в себя CGI - интерфейс, интерпретатор языка и набор функций для доступа к базам данных и различным объектам WWW. (Подробнее о PHP: PHP - система разработки скриптов )
Так кто же из этих двоих лучше? По мнению автора статьи, PHP выигрывает у ASP как в плане технических (функциональных) возможностей, так и по критерию популярности/общедоступности.
Скорость.
ASP никогда не станет резвее PHP! ASP технология основана на модели COM (COM - Component Object Model), т.е. работать вы будете с объектами и компонентами.
Например, для вывода информации по запросу клиента задействуется объект Response, при обращении к базе данных, задействуется еще один объект, для работы с файлами вызывается третий объект и т.д. Таким образом, подобное нагромождение замедляет работу ASP приложения. При использовании модулей PHP, мы работаем в едином пространстве памяти PHP, и это несколько быстрее, чем использование разрозненных объектов, задействованных в различных процессах.
Испытание Бэ Дэ
Проверка скорости работы с MS SQL 7.0.PHP: используя интерфейс ODBC ( Open Database Connectivity) доступ к базе данных - 9.54 сек.
ASP: Используя COM интерфейс для работы с ODBC - 17.28 сек (т.е. на 80% дольше).
OLEDB - микрософтская COM разработка для взаимодействия с базами данных, она "быстрее" ODBC, но если мы задействуем интерфейс PHP MYSQL, то выигрыш (на 200%) опять за PHP.
Это только говорит о том, что открытость кода PHP, а значит свободный доступ всех желающих к разработке и тестированию движка PHP - все это позволило создать более совершенную технологию, нежели ту, которая разрабатывалась в недрах Microsoft.
А как вы используете память?
Если вы работаете под IIS4, и ASP вставка header.asp инклудится в 20 web страниц, то 20 копий этих самых header.asp будут содержаться в памяти. Подобного беспредела уже нет в IIS5, который имеет улучшенную модель управления памятью, но такие радости жизни IIS5 доступны лишь для пользователей Windows 2000.В отличии от этого, PHP грузит и инклудит только те файлы, которые непосредственно требуются.
Деньги давай!
Что? Вам необходимы возможности шифрования? Покупайте ASPEncrypt!
Хотите работать с E-Mail? Купите ServerObject's Qmail!
Хотите загрузку файлов? Предлагаем купить Software Artisans SA-FileUp!
Вот так обстоят дела с ASP.. А PHP? Халява, сэр! (Green Kakadu: стоит отметить, что как для ASP, так и для PHP существует множество платных и бесплатных разработок, в случае ASP - это разработки не только Microsofta, но и сторонних фирм. Советую заглянуть на HotScripts.com)
И что?
А то, что PHP может работать как на Windows сервере, так и на UNIX'ном, а вот ASP только на Windows. Причем, как вы догадались, желательно чтоб это был IIS5, который позволяет нормально работать с памятью. А цены? Из-за того, что Microsoft'кий софт денег стоит, то и Windows хостинг стоит несколько дороже, чем UNIX'ный! Ваше мнение?
Вот. Готово. Теперь мое мнение.. Я думаю, что статья несколько однобока - если бы все было так плохо, то ASP послали бы подальше, и использовали бы PHP, но тем не менее технология ASP популярна и развивается, потому не стоит говорить о ней как о динозавре. Ну а к тому же не стоит забывать о новом сюрпризе от Microsoft - ASP.NET К сожалению, я не знаю ни одного (PHP), ни другого (ASP)- потому судить о чем-либо не имею права. Но весьма интересно ваше мнение на этот счет.. Так что пишите комментарии! За кривости перевода прошу прощения - как мог! Если заметите технические несуразности перевода - смело говорите, я вполне мог ляпнуть что-то не то..
Оставить комментарий
Комментарии
Q: ASP.NET работает быстрее PHP
A: При использовании правельных алгоритмов кеширования доступ к PHP страницам моментальный (проц 100 мгц, объём сайта 20 тыс. страниц, нагрузка на сервер - 10 посетителей в секунду, объём базы данных - 50мб, средний процент использовании БД при загрузке страниц - 40%).
A: Работа с БД через MySQL с PHP (через UNIX) в два-три раза быстрее работы Microsoft с любым БД-Сервером.
Q: ASP.NET надёжней PHP
A: Unix всё-таки надёжней Windows. Расход ресурсов более выгодный.
Q: ASP.NET обеспечивает более простую разработку кода командой и более устойчевый к изменением ПО сервера, нежели PHP
A: Работа команды зависит исключительно от её руководства и эффективного планирования работы.
В PHP, как правило, идёт следующие разделение работ при разработке кода:
1. Работа с БД (SQL-кеш, защита базы от хитрых SQL запросов, обеспечение мультисерверной поддержки - одна БД находится на нескольких серверах и т.д.)
2. Защита (фильтрация роботов, клоакинг, методы авторизации, кодирование куков, слежение действий пользователя через IFrame, автоисправление кода и т.д.)
3. Написание сервисных функций-утилит (прикладные функции для работы с текстами, HTML-кодом, файлами, изображениями, математические, шифровальные, для работы с шаблонами, для поисковых машин и т.д.).
4. Разработка структуры БД
5. Изготовление административных частей
6. Наработка исполняемых модулей
7. Установка визуального редактора
8. Составление шаблонов
9. Оптимизация под поисковые машины (карта сайта, мета-теги, проверка страниц на соответствие нужным запросам и т.д.)
10. Поддержка различных технологий: e-mail сервер, ленты RSS.
11. Тестирование (на скорость, на возможность взлома, на удобство эксплуатации и т.д.)
Как правило за каждую часть ответственен свой специалист, за исключением пунктов 3, 5, 6 и 8.
A2: В нормальных PHP-движках всегда обновляется поддержка новейших технологиях. Поддержка более старых технологий остаётся. При установки на хостинг, который не имеет поддержки должной технологии, в коде меняется одна строчка, которая определяет версию PHP, либо СУБД и т.д.
Поэтому теперь для создания ASP-страниц используются полноценные языки, такие как С#, VB.NET, Jscript .NET и J#, которые предоставляют следующие возможности:
Получить доступ к интерфейсу приложений Win32 и всем сервисам платформы .NET
Программирование с объявлением типов
Событийно-управляемое программирование
Полноценное ООП
НАВЕРНОЕ В литературе мало пишут о сравнеии технологий CORBA И .NET - ОСМЕЛЮСЬ заверить что это две крутые технологии - вне зависимости от реализации языков програмировани - на первом месте БИЗНЕС процессы...
Но сравнивать asp.net c php это всё равно что секс с презевративом и без ... извените за срвнение... .NET это ответ CORBA... И причём здесь php на котором распределённные приложения не написать... конечно относительно ... ВОТ я бы сравнил /NET с CORBA и в частности с java2 - Вот ЭТО ДОСТОЙНЫЕ ПРОТИВНИКИ!!!!
Что касается ASP.NET, то эта технология далеко опережает PHP. Да PHP прост и в этом его удобство - и верно как кто-то сказал - для одиночек. Командой работать чрезвычайно трудно.
Насчет скорости работы - автор не прав. Мы тестировали платформы под проект и отдать предпочтение не удалось никакой.
MySQL быстра до определенного момента: потом безнадежно отстает, когда объем данных превышает 2GB.
Я участвовал в двух десятках споров по поводу ASP.NET vs PHP и заметил одну особенность: те кто за ASP они, как правило, знают и PHP. А вот оппоненты почти на 100% не знают ASP.NET никак!
Получается кто за ASP.NET те за ASP.NET, а кто за PHP те не за PHP, а против ASP.NET.
Вот такие пироги.
Starajus ocenivat obe tehnologii kriticheski. Poka ne vigu NIKAKIH preimushestv ASP.NET nad PHP dlja razrabotki mid-level web projects.
Prosto mnogie bolshie kompanii sdelali stavku na Microsoft.
Испытываю к PHP *филические чувства :):):)
IIS у вас был на пне первом, а апач на 3-м ?:)
статья полный бред ... никакой конкретики ... пара цифр без описания как и что тестировалось ...
Чё копья-то ломать
А PHP - для одиночек... Максимум - для 4-5 человек. Пусть он работает быстрее... Но PHP мягче относится к программеру, имеет доволно смутный роадмап (план развития) и может оказаться немного несовместим... Перепишите сайт, когда хостер обновит софт...
ASP.NET имеет вполне конкретный роадмап, наработки используются легче. Поэтому для предприятия, занимающегося разработкой сайтов/движков ASP.NET сильно выгоднее.
Для удаленного администрирования эт очень гуд...
А вот ASP.NET - штучка очень даже ничего!
В общем, кому-то ASP покажется удобнее и привычнее... а меня как-то пока устраивает РНР.
Да, по-хорошему этот спор легко может вылиться в бесконечный спор Windows vs *nix.
ЗЫ. На разработчика крупных проектов я как-то пока не тяну =))))
ЗЗЫ. Спасибо за достаточно полное освещение проблемы.
Я за PHP
Но я выбираю ASP - он шире и глубже PHP, но PHP более прост.
ASP <= PHP < ASP.NET
----------------------->
http://www.codenet.ru/webmast/asp/phpvsasp1.php
1. Есть группа, собраная по-одному года за 4. Сначала всё писал один человек, потом он начал приглашать людей, создавать группу и (главное) заставлять всех использовать свои наработки. Наработки росли, сейча ОЧЕНЬ серьёзно группа работает, никаких проблем с большим количеством людей и корпоративностью. Они пишут на PHP.
2. Есть группа людей, просто скопом нанятая на работу. Конечно, нет наработок, нет явного лидера. Они нааамного быстрее сработались, использую спец корпоративную разработку для ASP.
Так как случай 2 встречается в 99% случаев, то и не удивительно, что ASP до сих пор с успехом используется, но....сайтами высокой сложности, написаные первой группой - любо-дорого пользоваться, ASP как всегда тормозит и раздражает. =) Вот так-то.
Про маленькие проэкты и одиночных программистов я вообще
молчу, PHP рулит по дефолту.
На счёт синтаксиса: в этом есть приемущество у ASP - выбор языка, тем не менее, как человек, знающий и имеющий немало проектов разной направленности и на разных языках, готов утверждать, что синтаксические идеи, реализованые в трансляторе PHP - самое лучшее, из того, что я на сегодня видел. Чего не скажешь о Бейсике =/. Ну Java ещё куда ни шло. В PHP, ИМХО, собрано всё самое лучшее из многих языков высокого уровня. Да, механизм ООП в php4 оставляет только желать лучшего, но php5 обещает это изменить =).
Я за PHP, если нет жесткой необходимости в ASP.
1) скорость
Программисты должны знать, что СОМ объекты - это DLL
А DLL загружается в адресное пространство текущего процесса, причём один раз, так что разница не велика
2)Испытание Бэ Дэ
Это что, время одного запроса к БД?
Тогда интерфейс доступа к БД не должен играть никакой роли
ЗЫ: А всё-таки ASP выучить очень легко, в отличие от PHP с его сотнями функций...
На самом деле вообще сравнивать две эти технологии глупо. Они и предназначены для разных целей. ПХП подходит для небольших проектов, где работает один, редко два разработчика. Он легок, прост, бесплатен и вообще, полный атас для нас, товарищи. АСП, между тем, предназначен для корпоративных проектов и там, где работают не одиночные программеры. По большей части это удел больших компаний и больших проектов, и поэтому деньги у них должны быть.
Для справки: в буржуйской америке, где любят деньги в больших масштабах, предпочтение отдают именно АСП, а не преславутому ПХП. Спросите почему? А там больше серьезных и крупных проектов... :)
Однако, вы не совсем правы насчет
"Хотите работать с Email? Купите ..."
Я бы сказал "Хотите работать с Емаил - напишите свой activeX dll"
Нет гемора с IDE.
(хотелось бы услышать комментарий от человека, котый разработал не мало проектов на PHP и примерно столько же на ASP. Мне кажется без разницы на чём писать, это зависит от обстоятельств: от уровня подготовленности всей команды, и от программного обеспечения сервера и рабочих станций)
Хотя в целом, некоторые аргументы (особенно то, что связано с COM), видимо, бесспорны.
PS. Кроме того, **пой чувствую, что PHP лучше...