چرا افسانهای که میگوید PHP از ASP.NET سریعتر است اینقدر شایع است؟ در این مقاله به بیان حقایقی میپردازیم که این افسانه را زیر سوال میبرد.
خیلی وقتها در بسیاری از نوشتهها و اظهارنظرها میبینیم ادعا میشود که PHP بسیار سریعتر از ASP.net است و اینکه ASP.net از لحاظ سرعت کند است. آزار دهندهترین بخش این ادعاها، آن است که هر یک از آنها را که نگاه میکنی بصورت کاملا غیر واقع بینانه به موضوع نگاه میکنند و فقط بدون دلیل این موضوع را ادعا میکنند. زیرا به این موضوع بصورتی کاملا متعصبانه و بدور از واقعیتها نگاه میشود. به همین دلیل بصورت گسترده ای این افسانه در میان اهالی وب پذیرفته شده است.
حال بجای اینکه این موضوع را بارها و بارها در جاهای مختلف بیان کنیم، این مقاله را نوشته و در هر کجا که لازم باشد به آن ارجاع خواهیم داد. باید توجه کنید این حقیقت که زبان PHP یک زبان اصیل و قدرتمند است هیچ شکی در آن نیست اما اینکه بخواهیم بصورت مغرضانه و به این دلیل که ما از این زبان استفاده میکنیم، آنرا از هر لحاظ برتر از سایر زبانها بدانیم (کمی که نه) بسیار اغراق آمیز است.
این مقاله برای این نیست که ما هریک از این زبانها را زیر سوال ببریم. بلکه برای آن است که این موضوع را با دلایل منطقی و حقیقی بررسی کنیم که آیا اینکه میگویند PHP از ASP.net سریعتر است واقعیت دارد یا نه؟
Compiled در مقابل Interpreted Languages:
قبل از هرچیز ذکر این نکته الزامی است که این دو زبان تفاوتهای اساسی در base دارند. ASP.net یک زبان بهینه سازی و کامپایل شده است، به این معنی که کدهای نوشته شده در این زبان قبل از اینکه قابل اجرا شوند، به مجموعه ای از دستورالعملهای خاص ماشین تبدیل میشوند. از سوی دیگر PHP یک زبان تفسیر شده است، به این معنی که کدهای نوشته شده به همان شکل ذخیره شده و در زمان اجرا این کدها تفسیر میشوند. این موضوع بطور گستردهای پذیرفته شده و ثابت شده است که برنامههای کامپایل شده به مراتب سریعتر از برنامههای تفسیر شده اجرا میشوند، به این دلیل که برنامههای تفسیر شده نیاز دارند تا در زمان اجرا به دستورالعملهای ماشین تبدیل شوند.
در اینجا به یک نقل قول از دانشنامه آزاد ویکی پدیا اشاره میکنم که میزان سریعتر بودن برنامههای کامپایل شده را نشان میدهد:
"A program translated by a compiler tends to be much faster than an interpreter executing the same program: even a 10:1 ratio is not uncommon. The mixed solution's efficiency is typically somewhere in between."
به این معنا که یک برنامه بصورت کامپایل شده بسیار سریعتر از همان برنامه بصورت تفسیر شده، اجرا میشود.
اعداد و ارقام:
حال که تئوری خود را مبنی بر دلیل سریعتر بودن ASP.net بیان کردیم بیایید با هم نگاهی به برخی آمارها بیاندازیم تا این تئوری را در عمل هم نشان داده باشیم.
آمارهای زیر توسط شرکت WrenSoft جهت مقایسه زمان اجرای یک کد مشابه در زبانهای مختلف تهیه شده است. اگر میخواهید توصیف عمیقتری از آمارها داشته باشید لطفا لینک را دنبال کنید.
نمودار اول: زمان صرف شده برای تولید ونمایش نتایج برای جستجوی وب سایتهای کوچک
نمودار دوم: زمان صرف شده برای تولید و نمایش نتایج برای جستجوی وب سایتهای متوسط
PHP، 1.0097 ثانیه طول میکشد در حالی که ASP.net، 0.0810 ثانیه زمان نیاز دارد. میبینیم که PHP دوازده بار بیشتر از ASP.net زمان میبرد.
درحال حاضر این آزمون با یک کد مشابه در زبانهای برنامه نویسی مختلف پیاده سازی و اجرا شد و نتیجه را مشاهده نمودید. حال این موضوع پیش میاید که این اجرای کدها بر روی سیستم عامل ویندوزی بوده است و این میتواند به نفع ASP.net باشد، پس همین آزمون را بر روی سیستم عامل لینوکسی مشاهده میکنیم.
آمارهای زیر از سایت معتبر shootout.alioth.debian.org گرفته شده است. این آمارها نحوه اجرای همان کد را بر روی سیستم عامل لینوکسی برای هردو زبان نشان میدهد:
همانطور که مشاهده میکنید در سیستم لینوکسی نیز همچنان ASP.net سریعتر از PHP عمل میکند.
نتیجه گیری:
همین حالا جملهی "asp.net vs php speed" را در google جستجو کنید. خواهید دید که در اکثر پستها گفته شده که PHP از ASP.net سریعتر است اما دلیلی بر این ادعا نخواهید یافت و فقط در حد حرف است. مشکل این است که اکثر مردم وقتی چیزی را زیاد میبینند یا زیاد میشنوند بدون آنکه دلیل بخواهند آنرا میپذیریند و حتی بعضی اوقات از آن نیز دفاع میکنند که واقعا جای تاسف دارد.
توسعه وب بوسیله PHP کار خوبی است، بسیاری از اپلیکیشنها و وبسایتهای شگفت انگیز توسط این زبان نوشته شده اند. اگر احساس میکنید PHP یک زبان برتر است از آن استفاده کنید اما این دلیل نمیشود که اطلاعات غلط را به دیگران القاء کنید و بدون دلیل و مدرک این زبان را از هر لحاظ برتر بدانید حال آنکه در این مقاله دیدیم که براساس چیزی که ارائه شد، ASP.net سرعت بیشتری نسبت به PHP دارد.
شرکت داده پردازی فراتک با طراحی بیش از 500 وب سایت، در سال های فعالیت خود و با به کارگیری این تکنولوژی آماده ارائه خدمات در زمینه طراحی وب سایت با ویژگی های منحصر به فرد است. از نمونه کارهای ما دیدن فرمایید: www.faratechdp.com
ویرایش: واحد تحقیق و توسعه شرکت داده پردازی فراتک ( طراحی سایت مشهد)
مرتبط: نمونه طراحی سایت - طراحی سایت مشهد