PHP سریعتر از ASP! افسانه یا واقعیت؟

PHP سریعتر از ASP! افسانه یا واقعیت؟

چرا افسانه ای که می گوید PHP از ASP سریعتر است اینقدر شایع است؟ در این مقاله به بیان حقایقی می پردازیم که این افسانه را زیر سوال می برد؟

خیلی وقتها در بسیاری از نوشته ها و اظهارنظر ها می بینیم ادعا می شود که 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 جهت مقایسه زمان اجرای یک کد مشابه در زبانهای مختلف تهیه شده است. اگر می خواهید توصیف عمیق تری از آمارها داشته باشید لطفا لینک را دنبال کنید.

نمودار اول: زمان صرف شده برای تولید ونمایش نتایج برای جستجوی وب سایت های کوچک

PHPvsASP1

همانطور که میبینید زمان متوسط برای سایت PHP، ۰٫۱۵۰۰ ثانیه و برای سایت ASP.net، ۰٫۰۱۵۰ ثانیه است. یک تفاوت بزرگ: PHP ده برابر ASP.net طول می کشد!

نمودار دوم: زمان صرف شده برای تولید و نمایش نتایج برای جستجوی وب سایت های متوسط

PHPvsASP2

PHP، ۱٫۰۰۹۷ ثانیه طول می کشد در حالی که ASP.net، ۰٫۰۸۱۰ ثانیه زمان نیاز دارد. می بینیم که PHP دوازده بار بیشتر از ASP.net زمان می برد.

درحال حاضر این آزمون با یک کد مشابه در زبانهای برنامه نویسی مختلف پیاده سازی و اجرا شد و نتیجه را مشاهده نمودید. حال این موضوع پیش میاید که این اجرای کدها بر روی سیستم عامل ویندوزی بوده است و این می تواند به نفع ASP.net باشد، پس همین آزمون را بر روی سیستم عامل لینوکسی مشاهده می کنیم.

آمارهای زیر از سایت معتبر shootout.alioth.debian.org گرفته شده است. این آمارها نحوه اجرای همان کد را بر روی سیستم عامل لینوکسی برای هردو زبان نشان می دهد:

PHPvsASP3
PHPvsASP4

همانطور که مشاهده می کنید در سیستم لینوکسی نیز همچنان ASP.net سریعتر از PHP عمل می کند.

نتیجه گیری:

همین حالا جمله ی “asp.net vs php speed” را در google جستجو کنید. خواهید دید که در اکثر پست ها گفته شده که PHP از ASP.net سریعتر است اما دلیلی بر این ادعا نخواهید یافت و فقط در حد حرف است. مشکل این است که اکثر مردم وقتی چیزی را زیاد می بینند یا زیاد می شنوند بدون آنکه دلیل بخواهند آنرا می پذیریند و حتی بعضی اوقات از آن نیز دفاع می کنند که واقعا جای تاسف دارد.

توسعه وب بوسیله PHP کار خوبی است، بسیاری از اپلیکیشن ها و وبسایتهای شگفت انگیز توسط این زبان نوشته شده اند. اگر احساس می کنید PHP یک زبان برتر
است از آن استفاده کنید اما این دلیل نمی شود که اطلاعات غلط را به دیگران القاء کنید و بدون دلیل و مدرک این زبان را از هر لحاظ برتر بدانید حال آنکه در این مقاله دیدیم که براساس چیزی که ارائه شد، ASP.net سرعت بیشتری نسبت به PHP دارد.

اگر با من در این امر موافق نیستید می توانید با نظرهای مستدل خود ما را راهنمایی کنید.

با ما باشید