مقایسه asp.net و php از نظر سرعت - مقایسه php و asp.net

rezashirazi

Member
مقایسه asp.net و php از نظر سرعت یکی از سوالات مطرح طراحان سایت است و اکثرا بر سر این موضوع باهم بحث میکنند. در حالیکه منابع علمی و مقالات مختلف سرعت asp.net و php را مقایشه کرده اند و نیازی به بحث کردن نیست. در مقاله ای که قبلا در این مورد در سایت طراحی سایت 24 منتشر کردم ویژگی های مختلف زبان php و فریم وردک asp.net را مقایسه کردم :
مقایسه asp.net و php
همانطور که در این مقاله هم به طور خلاصه توضیح داده شده است، به دلیل اینکه مرحله compile در وب سرور های php در زمان مشاهده صفحه صورت می گیرد این موضوع باعث کندی اجرای برنامه های نوشته شده با زبان php است. از طرف دیگر به دلیل اینکه کدهای خروجی asp.net به صورت Byte code هستند در زمان اجرای دستورات یک صفحه مرحله compile حذف میشود و همین موضوع باعث میشود با سرعت بسیار بیشتری اجرا شوند. در مقاله فوق چند سایت مرجع که طبق آزمایشات علمی سرعت زبان php و تکنولوژی asp.net را مقایسه کرده اند معرفی شده است و بر اساس آزمایشات انجام شده در لود اطلاعات بسیار بالا سرعت asp.net تا 10 برابر بیشتر از php است. تمام آزمایش ها در شرایط یکسان و آزمایشگاهی و توسط موسسات معتبر بین المللی انجام شده است و جای هیچگونه شکی را باقی نمیگذارد.
دیروز از طریق یکی از دوستان خوبم با سایتی آشنا شدم که به نوع خود بسیار جالب است. پروژه کدبازی در اینترنت تعریف شده و در حال توسعه است که در این پروژه کدهای php به بایت کد asp.net تبدیل شده و توسط IIS قابل اجرا هستند، هدف از این پروژه افزایش سرعت کدهای نوشته شده به زبان php است و در آزمایشات انجام شده توسط این شرکت حتی پیشنهاد شده است که اگر شما از سرور لینوکس استفاده میکنید می توانید با استفاده از فریمورک مونو که قابلیت اجرای برنامه های .net بر روی لینوکس را می دهد کدهای php خود را به دات نت تبدیل کرده و سپس آنها را اجرا نمایید و حتی در این صورت نیز سرعت بسیار بالاتری خواهید داشت!
اسم پروژه فوق phalanger هست و با استفاده از این تکنولوژی می توان تمام برنامه های php را تحت محیط دات نت و از طریق وب سرور IIS اجرا کرد. در ادامه دو نمونه از نتایج آزمایشات را آورده ام :
wordpress-requests-benchmark.png
wordpress-response-benchmark.png
همانطور که مشاهده میکنید سرعت کدهای php که با استفاده از IIS و پس از تبدیل شدن به byte code دات نت اجرا شده اند بسیار سریعتر از وب سرورهای معمول php مانند آپاچی و ... هستند. سرعت اجرای کدهای تبدیل شده تا 4 برابر کدهای معمولی php در سرورهای لینوکس است.​
در حال حاضر از بین سایت های پربازدید در دنیا یاهو بخش هایی از سایت خود را که با php نوشته شده بود به node.js تبدیل کرده است و تنها سایت پربازدیدی که در سیستم ابری از این زبان استفاده میکند سایت وردپرس است که به دلیل ماهیت وبلاگ گونه ای که دارد بازدید بالایی دارد. شرکت هایی مانند گوگل و... هم از زبان c++ برای تکنولوژی سمت سرور خود استفاده میکنند.​
برای دریافت و مطالعه مقالات و آزمایشات انجام شده در این زمینه می توانید به سایت زیر مراجعه نمایید:​
 

sourcesoft

New Member
سلام
آنالیز شما در چگونگی اجرای این دو زبان کاملا درست هستند ولی سرعت یک زبان در زمان کامپایل و یا اجرا تنها عامل انتخاب اون زبان نیستند.
دلیل اصلی انتخاب PHP در مقابل ASP کامپایل و اجرای اون روی تمام سیستم عامل ها و تمام سرور ها هست. البته کاملا قبول دارم حرفتون رو در مورد سرعت، ولی فقط در رابطه با یک سایت ساده.

برای توسعه وب سایت های بزرگتر با ترافیک و پیچیدگی بیشتر معمولا حتی یک سرور از پایه با استفاده یکی از نسخه های لینوکس مخصوص همون سایت ویرایش میشه، می توانید خود کامپایلر PHP رو دوباره کامپایل کنید، می تونید سرور لینوکس رو کامپایل کنید، می تونید یک نسخه از apache رو کامپایل کنید... در نهایت نتیجه نهایی پروژه سرعت بسیار بیشتری نسبت به یک سایت .Net رو داره و جدا از این حرف ها استفاده از الگو ها و الگوریتم ها و فریم ورک های مختلف زمان برنامه نویسی سایت بیشترین تاثیر رو روی زمان اجرا و سرعت اون داره نه خود اون زبان.

البته فاکتور های دیگری هم تو انتخاب یک زبان برای یک سایت خاص با هدف خاص وجود دارند مثل:
پشتیبانی شرکت سازنده زبان(که ASP خیلی جلوتر از PHP هست تو این زمینه)،
استفاده از تکنولوژی خاص که PHP جلوتر هست، سایت ها بزرگتر همیشه مجبورند از java و C++ در سایت ها استفاده کنند، هنگام استفاده از این زبان ها هیچ راهی برای استفاده از .NET نمی مونه
انتخاب سرور خاص مثل ویندوز که .NET ترجیح داده میشه
استفاده از فریم ورک خاص MVC
انتخاب روش خاص در پشتیبانی سایت
استفاده از دیتابیس خاص(منظورم MySQL یا MSQL نیست) مثل Oracle
سایت هایی که هر روز نیاز به تغییرات و ویژگی های زیادی هستند هیچ موقع از روش ویندوز و کامپایل استفاده نمی کنند، مثل فیس بوک یا گوگل.
هزینه هزینه هزینه، فکر میکنم مهمترین عامل برای انتخاب PHP باشه. هم زمان ساخت هم زمان بهره برداری

هدفم از نوشتن این پست اینه که هیچ وقت یک گروه برنامه نویسی برای توسعه یک سایت نمیان تو انتخاب زبان توجهی به فاکتور سرعت داشته باشند، بلکه نسبت به دید کلی مشتریان انتخاب می کنند. مثل بیشتر سایت های بانکی در ایران که به دلیل رایگان بودن ویندوز و .NET از این زبان استفاده می کنند که البته کار درستی هم انجام می دن.

بیشترین چیزی که همیشه نظر من رو در مورد .NET جلب می کرد IDE قدرت مند Visual Studio بود و قدرتی که به شما روی ویندوز با استاده از C# می داد. بدون شک ویندوز دنیای کامپیوتر های شخصی و رو میزی فرا گرفته.
 

rezashirazi

Member
سلام
آنالیز شما در چگونگی اجرای این دو زبان کاملا درست هستند ولی سرعت یک زبان در زمان کامپایل و یا اجرا تنها عامل انتخاب اون زبان نیستند.
دلیل اصلی انتخاب PHP در مقابل ASP کامپایل و اجرای اون روی تمام سیستم عامل ها و تمام سرور ها هست. البته کاملا قبول دارم حرفتون رو در مورد سرعت، ولی فقط در رابطه با یک سایت ساده.

برای توسعه وب سایت های بزرگتر با ترافیک و پیچیدگی بیشتر معمولا حتی یک سرور از پایه با استفاده یکی از نسخه های لینوکس مخصوص همون سایت ویرایش میشه، می توانید خود کامپایلر PHP رو دوباره کامپایل کنید، می تونید سرور لینوکس رو کامپایل کنید، می تونید یک نسخه از apache رو کامپایل کنید... در نهایت نتیجه نهایی پروژه سرعت بسیار بیشتری نسبت به یک سایت .Net رو داره و جدا از این حرف ها استفاده از الگو ها و الگوریتم ها و فریم ورک های مختلف زمان برنامه نویسی سایت بیشترین تاثیر رو روی زمان اجرا و سرعت اون داره نه خود اون زبان.

البته فاکتور های دیگری هم تو انتخاب یک زبان برای یک سایت خاص با هدف خاص وجود دارند مثل:
پشتیبانی شرکت سازنده زبان(که ASP خیلی جلوتر از PHP هست تو این زمینه)،
استفاده از تکنولوژی خاص که PHP جلوتر هست، سایت ها بزرگتر همیشه مجبورند از java و C++ در سایت ها استفاده کنند، هنگام استفاده از این زبان ها هیچ راهی برای استفاده از .NET نمی مونه
انتخاب سرور خاص مثل ویندوز که .NET ترجیح داده میشه
استفاده از فریم ورک خاص MVC
انتخاب روش خاص در پشتیبانی سایت
استفاده از دیتابیس خاص(منظورم MySQL یا MSQL نیست) مثل Oracle
سایت هایی که هر روز نیاز به تغییرات و ویژگی های زیادی هستند هیچ موقع از روش ویندوز و کامپایل استفاده نمی کنند، مثل فیس بوک یا گوگل.
هزینه هزینه هزینه، فکر میکنم مهمترین عامل برای انتخاب PHP باشه. هم زمان ساخت هم زمان بهره برداری

هدفم از نوشتن این پست اینه که هیچ وقت یک گروه برنامه نویسی برای توسعه یک سایت نمیان تو انتخاب زبان توجهی به فاکتور سرعت داشته باشند، بلکه نسبت به دید کلی مشتریان انتخاب می کنند. مثل بیشتر سایت های بانکی در ایران که به دلیل رایگان بودن ویندوز و .NET از این زبان استفاده می کنند که البته کار درستی هم انجام می دن.

بیشترین چیزی که همیشه نظر من رو در مورد .NET جلب می کرد IDE قدرت مند Visual Studio بود و قدرتی که به شما روی ویندوز با استاده از C# می داد. بدون شک ویندوز دنیای کامپیوتر های شخصی و رو میزی فرا گرفته.

بخش هایی از حرف شما را قبول دارم. به هر حال هر زبان طراحی سایتی خصوصیات خودش را داره. من در مقاله فقط این دو زبان را از نظر سرعت بررسی کردم و کاری به سایر پارامترها نداشتم.
 

sourcesoft

New Member
بخش هایی از حرف شما را قبول دارم. به هر حال هر زبان طراحی سایتی خصوصیات خودش را داره. من در مقاله فقط این دو زبان را از نظر سرعت بررسی کردم و کاری به سایر پارامترها نداشتم.
منم کاملا حرفهای شما رو قبول دارم :) منظور اصلیم این بود که اگر فاکتور سرور و انعطاف پذیری php رو هم اضافه کنیم به این آنالیز در یک پروژه حرفه ای، سرعت کلی خروجی نهایی بیشتر از asp میشه.
 

rezashirazi

Member
منم کاملا حرفهای شما رو قبول دارم :) منظور اصلیم این بود که اگر فاکتور سرور و انعطاف پذیری php رو هم اضافه کنیم به این آنالیز در یک پروژه حرفه ای، سرعت کلی خروجی نهایی بیشتر از asp میشه.

نه دوست عزیز اینطور نیست. اولا من انعطاف پذیری خاصی از php سراغ ندارم، اتفاقا دات نت انعطاف پذیر تر هست. ثانیا همانطور که دیدید این حرفی نیست که من بزنم و کلی مقاله علمی در این زمینه در دنیا وجود داره که خروجیشون در محیط آزمایشگاهی انجام شده و شرایط مساوی در نظر گرفته شده بنابراین دیگه حرفی برای گفتن باقی نمیمونه.

البته این موضوع را هم اضافه کنم که در نهایت یک برنامه نویس خوب میتونه با php هم برنامه سریع بنویسه و یک برنامه نویس بد با دات نت میتونه برنامه کند بنویسه.
 

جدیدترین ارسال ها

بالا