مقایسه PHP 7 و PHP 5 (بروزرسانی 2019)

09 بهمن 1397
php7-vs-php5

سلام به شما! متاسفانه با اینکه مدت زیادی از بروزرسانی PHP 7 می گذرد اما بسیاری از توسعه دهندگان در ایران نمی خواهند دل از PHP 5 بِکنند و به آن مهاجرت کنند. من در این مقاله سعی دارم شما را متقاعد کنم که به سراغ PHP 7 بروید! بنابراین برویم به سراغ مقایسه PHP 7 و PHP 5 .

در این مقاله از چندین تست بنچ‌مارک معتبر برای جمع آوری داده های مقایسه ای استفاده شده است که دو عدد از این تست ها در مقاله آورده شده اند تا خیال شما راحت شود. ابتدا به سراغ تست اول، که جدیدتر است، می رویم:

تست اول از Kinsta (در سال 2019)

اطلاعات منابع استفاده شده در این تست به شرح زیر است:

  • دستگاه استفاده شده: (8x Intel(R) Xeon(R) CPU @ 2.20GHz (Powered by Google Cloud Platform and running in an isolated container
  • سیستم عامل: (Ubuntu 18.04.1 LTS (Bionic Beaver
  • اطلاعات سرور: Debian 9, Nginx 1.15.7, MariaDB 10.3.11
  • نسخه های PHP مقایسه شده: 5.6, 7.0, 7.1, 7.2, 7.3
  • قابلیت کش کردن صفحات: این قابلیت در تمام حالت ها غیر فعال شده است.

مقایسه PHP 7 و PHP 5 در WordPress 5.0

اولین پلتفرمی که تست را روی آن انجام می دهیم WordPress است چرا که بسیاری از توسعه دهندگان وب از آن استفاده می کنند. در واقع بیشتر از 32% از کل وب سایت های دنیا روی WordPress سوار هستند. این عدد یعنی از هر 4 وب سایتی که بازدید می کنید احتمالا یکی از آن ها از وردپرس استفاده می کند.

سیستم مدیریت محتوای وردپرس و مقایسه PHP 7‌ و PHP 5

ما ابتدا با نسخه ی 5.0 WordPress شروع به کار کردیم چرا که جدید ترین نسخه ی وردپرس است و اکثر کاربران دوست دارند در این مورد بدانند. روش تست ما به این شکل بود که با 15 عدد کاربر به مدت یک دقیقه وب سایت را تست کردیم.

  • URL تست شده: /hello-world/
  • صفحه دارای یک عدد کامنت بوده است.

نتیجه به صورت زیر بود:

تعداد درخواست ها بر ثانیه در ورژن های مختلف PHP، وردپرس 5 - عدد بالاتر یعنی بهتر
تعداد درخواست ها بر ثانیه در ورژن های مختلف PHP، وردپرس 5 - عدد بالاتر یعنی بهتر

تعداد در خواست ها به صورت عددی به شرح زیر است:

  • WordPress 5.0 و PHP 5.6: تعداد 91.64 درخواست بر ثانیه
  • WordPress 5.0 و PHP 7.0 : تعداد 206.71 درخواست بر ثانیه
  • WordPress 5.0 و PHP 7.1 : تعداد 210.98 درخواست بر ثانیه
  • WordPress 5.0 و PHP 7.2 : تعداد 229.18 درخواست بر ثانیه
  • WordPress 5.0 و PHP 7.3 : تعداد 253.20 درخواست بر ثانیه! 🏆

جمع بندی: در این تست مشخص شد که PHP 7.3 حدود 3 برابر PHP 5.6 درخواست گرفته و پردازش می کند!

توجه کنید که این یک وب سایت ساده و در محیط تست بود. اگر شما با هزاران کاربر با یک سوم سرعت فعلی کار کنید، ضرر و زیان زیادی را به خود تحمیل می کنید. سه برابر سرعت شاید برای 15 کاربر چیز زیادی نباشد اما در وب سایت شما با صدها یا هزاران کاربر واقعی تفاوت بسیار بزرگی ایجاد می کند.

WordPress 5.0 + WooCommerce 3.5.2

حتما می دانید که WooCommerce یک پلتفرم open-source با قابلیت شخصی سازی است که روی وردپرس سوار می شود و با اختلاف زیاد یکی از محبوب ترین روش های تجارت الکترونیکی در وردپرس محسوب می شود. این پلتفرم در حال حاضر 14% از کل وب سایت های تجارت آنلاین دنیا را پشتیبانی می کند.

ووکامرس و مقایسه PHP 7 و PHP 5

این بار PHP را با WooCommerce نصب کرده و آن را با تم Storefront eCommerce theme تنظیم کردیم.

URL تست شده: /product/woo-logo/

صفحه شامل 3 عدد کالا در قسمت کالاهای مشابه، 1 نظر در مورد کالا، 1 کالا در قسمت کالاهایی که ممکن است بپسندید و صفحه بعدی (Next & Prev) است.

نتیجه ی تست به شرح زیر است:

ورد پرس + ووکامرس، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر
وردپرس + ووکامرس، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر

تعداد در خواست ها به صورت عددی به شرح زیر است:

  • WordPress 5.0 + WooCommerce 3.5.2 و PHP 5.6 : تعداد 24.74 درخواست بر ثانیه
  • WordPress 5.0 + WooCommerce 3.5.2 و PHP 7.0 : تعداد 56.94 درخواست بر ثانیه
  • WordPress 5.0 + WooCommerce 3.5.2 و PHP 7.1 : تعداد 57.00 درخواست بر ثانیه
  • WordPress 5.0 + WooCommerce 3.5.2 و PHP 7.2 : تعداد 63.10 درخواست بر ثانیه
  • WordPress 5.0 + WooCommerce 3.5.2 و PHP 7.3 : تعداد 68.87 درخواست بر ثانیه! 🏆

جمع بندی: در این تست مشخص شد که PHP 7.3 طبق انتظار ما از تمام نسخه های دیگر سریع تر بوده است.

مقایسه PHP 7 و PHP 5 در Drupal 8.6.4

Drupal یک سیستم مدیریت محتوای (CMS) مشهور است و به خاطر ماژولار بودن و قدرت توسعه دهندگانش معروف شده است. این سیستم مدیریت محتوا در سال 2000 راه اندازی شد و بر اساس گفته ی W3Techs حدود 1.9% از وب سایت های جهان را پشتیبانی می کند که می شود سهمی در حدود 5.5% از کل سیستم های مدیریت محتوای دنیا.

سیستم مدیریت محتوای دروپال و مقایسه PHP 7 و PHP 5

برای تست دروپال از تم Bartik theme استفاده کردیم.

  • URL تست شده: node/1/
  • صفحه دارای یک عنوان، یک پاراگراف، و یک ویجت جست و جو است. همچنین قابلیت کش صفحات غیر فعال است.

نتایج تست به شرح زیر است:

دروپال، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر
دروپال، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر

تعداد در خواست ها به صورت عددی به شرح زیر است:

  • Drupal 8.6.4 و PHP 5.6 : تعداد 14.19 درخواست بر ثانیه
  • Drupal 8.6.4 و PHP 7.0 : تعداد 30.30 درخواست بر ثانیه
  • Drupal 8.6.4 و PHP 7.1 : تعداد 30.42 درخواست بر ثانیه
  • Drupal 8.6.4 و PHP 7.2 : تعداد 32.59 درخواست بر ثانیه
  • Drupal 8.6.4 و PHP 7.3 : تعداد 35.90 درخواست بر ثانیه! 🏆

جمع بندی: در این تست مشخص شد که PHP 7.3 باز هم طبق انتظار ما از تمام نسخه های دیگر سریع تر بوده است.

مقایسه PHP 7 و PHP 5 در Joomla! 3.9.1

!Joomla از سیستم های مدیریت محتوای مشهور و محبوب دنیا است که در سال 2005 به دنیا عرضه شد. این سیستم مدیریت محتوا بر اساس مدل model–view–controller ساخته شده و بر اساس گفته ی W3Techs حدود 3% از کل وب سایت های دنیا را پشتیبانی می کند.

برای کار با جوملا از تم Beez3 template استفاده کرده ایم.

  • URL تست شده:index.php/3-welcome-to-your-blog/
  • در این تست جوملا در حالت Blog نصب شده و تمامی ماژول های آن (مثل جست و جو، ویجت ها و breadcrumb و ...) غیر فعال شده اند.

نتایج تست به شرح زیر است:

جوملا، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر
جوملا، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر

تعداد در خواست ها به صورت عددی به شرح زیر است:

  • Joomla! 3.9.1 و PHP 5.6 : تعداد 27.45 درخواست بر ثانیه
  • Joomla! 3.9.1 و PHP 7.0 : تعداد 38.48 درخواست بر ثانیه
  • Joomla! 3.9.1 و PHP 7.1 : تعداد 37.79 درخواست بر ثانیه
  • Joomla! 3.9.1 و PHP 7.2 : تعداد 38.68 درخواست بر ثانیه
  • Joomla! 3.9.1 و PHP 7.3 : تعداد 41.03 درخواست بر ثانیه! 🏆

جمع بندی: با اینکه افزایش تعداد درخواست ها با نسخه های PHP در یک سو نبود و در PHP 7.1 کاهش داشته است اما باز هم در این تست مشخص شد که PHP 7.3 طبق انتظار ما از تمام نسخه های دیگر سریع تر بوده است.

مقایسه PHP 7 و PHP 5 در Laravel 5.4.36 + 5.7.15

Laravel یک فریم ورک PHP مشهور و open-source می باشد که برای ساخت اپلیکیشن های وب مورد استفاده قرار می گیرد. این فریم ورک توسط Taylor Otwell و در سال 2011 ساخته و به دنیا عرضه شد.

برای کار با لاراول از HTML ساده و خالص استفاده کردیم (بدون تم).

  • URL تست شده: (homepage) /
  • پست ها شامل عنوان، نام نویسنده و محتوای اصلی هستند. پایگاه داده نیز تنها یک جدول به نام "posts" داشته است.
  • جدول "posts" شامل 6 ستون با نام های "post_title", "post_content", "post_author", "created_at" و "updated_at" بوده است.
  • URL تست شده به پایگاه داده متصل می شود و یک پست را از آن میگیرد.

نتایج تست به شرح زیر است:

لاراول 5.4.36، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر
لاراول 5.4.36، تعداد درخواست بر ثانیه - تعداد بیشتر یعنی بهتر

تعداد در خواست ها به صورت عددی به شرح زیر است:

  • Laravel 5.4.36 و PHP 5.6 : تعداد 340.26 درخواست بر ثانیه
  • Laravel 5.4.36 و PHP 7.0 : تعداد 610.81 درخواست بر ثانیه
  • Laravel 5.4.36 و PHP 7.1 : تعداد 616.93 درخواست بر ثانیه
  • Laravel 5.4.36 و PHP 7.2 : تعداد 692.86 درخواست بر ثانیه
  • Laravel 5.4.36 و PHP 7.3 : تعداد 717.06 درخواست بر ثانیه! 🏆

اما تست ها به صورت عددی برای Laravel 5.7.15 (نسخه ی جدیدتر لاراول) به شرح زیر است:

نکته: لاراول 5.7.15 فقط با PHP 7.1 و جدید تر کار می کند.

  • Laravel 5.7.15 و PHP 5.6 : با این نسخه از PHP کار نمی کند.
  • Laravel 5.7.15 و PHP 7.0 : با این نسخه از PHP کار نمی کند.
  • Laravel 5.7.15 و PHP 7.1 : تعداد 542.16 درخواست بر ثانیه
  • Laravel 5.7.15 و PHP 7.2 : تعداد 606.73 درخواست بر ثانیه
  • Laravel 5.7.15 و PHP 7.3 : تعداد 621.09 درخواست بر ثانیه! 🏆

جمع بندی: در این تست مشخص شد که PHP 7.3 طبق انتظار ما از تمام نسخه های دیگر سریع تر بوده است. نکته ی جالب اینجاست که Laravel 5.4.36  با PHP 7.3 سریع تر از Laravel 5.7.15 بوده است!

تست دوم از آقای Erlend Eide

برای طولانی نشدن بحث، تنها اعداد خام را بدون توضیحات اضافی خدمت شما ارائه میکنم. ابتدا چند نکته در توضیح جدول ها:

  • req/s: به معنی request per second (یعنی تعداد درخواست در ثانیه) است و نشان می دهد هر ورژن PHP در یک ثانیه چند درخواست را پردازش می کند.
  • بقیه ی جدول که به صورت درصدی تعریف شده اند، درصد عملکرد نسبت به ورژن دیگر است (مثلا PHP 7 حدود 239 درصد از PHP 5.6 سریع تر بوده است).
  • جدول اول تست PHP خالص بدون متعلقات بوده و جدول دوم تست PHP به همراه پایگاه داده است.
بنچ‌مارک PHP به همراه پایگاه داده (database)
بنچ‌مارک PHP به همراه پایگاه داده (database)
بنچ‌مارک PHP خالص
بنچ‌مارک PHP خالص

خلاصه ی مقاله

تست های بسیار زیادی در این زمینه انجام شده است که ما نمی توانیم تک تک آن ها را اینجا ذکر کنیم اما به نظر بنده همین دو تست کافی هستند. فکر نمی کنم بعد از مقایسه ی اعداد حاضر در جداول کسی باز هم اعتقاد به استفاده از ورژن های قدیمی PHP داشته باشد مگر در موارد خاص. توجه داشته باشید که این مقایسه صرفا از نظر سرعت و عملکرد بوده است و مانند هر نرم افزار و زبان برنامه نویسی دیگری، جنبه های دیگری از PHP مانند امنیت آن نیز در ورژن های جدیدتر بهبود یافته اند. به هر حال امیدوارم از این مقاله لذت برده باشید.

در پناه حق

نویسنده شوید
دیدگاه‌های شما (3 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

بنیامین
16 فروردین 1400
سلام سایت من php5 هست ، سوالی داشتم. آیا php7 نصب شود ممکنه ورودی گوگل من را کم کند؟ یعنی تاثیر منفی دارد یا مثبت؟ از این میترسم که نکنه تاثیر منفی روی ورودیم داشته باشه. ممنون میشم راهنمایی کنید.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

علی
16 خرداد 1398
خیلی ممنون از مطلب خوبتون وقتی من از php 7.3 استفاده میکنم دچار ارور میشم در سایت فک میکنم بخاطر افزونه هاس

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امیر زوارمی
16 خرداد 1398
سلام دوست عزیز، ممنونم از توجه شما اگه سایت وردپرسی دارید، احتمالا از افزونه های سایتتون باشه که با نسخه های جدید PHP سازگار نیستن. این موضوع رو از سایت سازنده می تونین بررسی کنین. چند مقاله در مورد افزونه های سایت های وردپرسی هم در آینده ی نزدیک منتشر میشه، مطالب سایت رو چک کنید. البته این ارور ها میتونه دلایل دیگه هم داشته باشه؛ مثلا مطمئن بشین که هاست شما از php 7.3 پشتیبانی می کنه نه اینکه دستورات php 7.3 رو بدون مقدمه استفاده کنید. یا مثلا ممکنه از دستوراتی استفاده می کنید که در نسخه ی 7.3 به طور کل منسوخ شده هستن. از همه ی جوانب در نظر بگیرید.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

mostafex
30 بهمن 1397
سلام چه ترجمه بود چه نوشته خودتون عالی بود

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امیر زوارمی
01 اسفند 1397
سلام دوست عزیز لطف دارید. خوشحالیم که براتون مفید بوده.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.