یک مقایسه جالب برای سرعت و عملکرد ASP.NetCore نسبت به Laravel
این روزها پلتفرمهای متعددی در صنعت برنامه نویسی پا به عرصه گذاشتند. برخی فریم ورک های وابسته و برخی مستقل هستند. برخی ساختار جدید و انقلابی و برخی نقش تسهیل کننده دارند.
اما در این بین، 2 پلتفرم یا به عبارتی بهتر فریم ورک ASP.NetCore و Laravel بیشتر مورد استقبال قرار گرفتند و شاید یکی از مهمترین دلایل این استقبال بی نظیر ساده سازی فرایندها نسبت به زبانهای اصلی چون PHP و ASP.Net میباشد. ساختارها در این دو فریم ورک جدید بسیار ساده سازی شده و در عین حال سرعت و کیفیت اجرای پروژه بیش از پیش ارتقا یافته است.
توجه نمایید در این مقاله نمیخواهیم به جزییات و ویژگیهای این دو فریم ورک محبوب بپردازیم چراکه در مقالههای پیشین به آن پرداخته شده است:
Net Core. آغاز تحولی شگرف در برنامه نویسی
لاراول فریم ورک PHP با قابلیت های فراوان
اما در این مقاله خیلی کوتاه یک مقایسه بین دات نت کور و لاراول در سرعت اجرای پردازهها و اپلیکیشن انجام میدهیم. نتیجه شاید برای شما هم قابل تامل باشد! پس در ادامه با ما همراه باشید…
سرعت کدامیک بیشتر است؟
در این آزمایش ما به شما نشان میدهیم کدامیک از فریم ورکهای لاراول و دات نت کور سرعت بیشتری دارد. یک API ساده طراحی کردیم و در هر یک از دو مورد به مرحله تست و اجرا قرار دادیم.
در این API ساده چند خط از دیتابیس MySQL خوانده شده و سپس با فرمت json نمایش داده میشود.
شرایط آزمایش:
نسخه مورد استفاده برای این آزمایش به شرح زیر میباشد:
ASP.NetCore 2.1
Laravel 5.6 و PHP 7.2
همچنین در این آزمایش ملاک سرعت مدت زمانیست که اجرای درخواست به طول میانجامد.این آزمایش تحت وب سرور Apache، درخواستها را به صورت همزمان ارسال میکند و نتایج را ثبت میکند.
زیاد شما را منتظر نمیگذاریم نتایج اولیه به صورت یک نمودار ساده تصویری به شرح زیر میباشد. برنده با اختلاف بسیار زیاد، ASP.NetCore است!
حالا بیایید نحوه و نتیجه اجرای درخواستهای همزمان API در هر یک از دو فریم ورک را با جزییات بیشتری مورد بررسی قرار دهیم:
ASP.NetCore
ab -n 100 -c 10 http://localhost:8080/api/books
خروجی فرمان:
Concurrency Level: 10 Time taken for tests: 0.117 seconds Complete requests: 100 Failed requests: 0 Total transferred: 29200 bytes HTML transferred: 15300 bytes Requests per second: 854.91 [#/sec] (mean) Time per request: 11.697 [ms] (mean) Time per request: 1.170 [ms] (mean, across all concurrent requests) Transfer rate: 243.78 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 7 11 2.2 11 21 Waiting: 7 11 2.2 10 21 Total: 7 11 2.1 11 21
Laravel
ab -n 100 -c 10 http://127.0.0.1/api/books
خروجی فرمان:
Document Path: /api/books Document Length: 155 bytes Concurrency Level: 10 Time taken for tests: 0.780 seconds Complete requests: 100 Failed requests: 0 Total transferred: 40600 bytes HTML transferred: 15500 bytes Requests per second: 128.21 [#/sec] (mean) Time per request: 77.995 [ms] (mean) Time per request: 7.799 [ms] (mean, across all concurrent requests) Transfer rate: 50.83 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 36 71 13.7 66 112 Waiting: 36 71 13.7 66 112 Total: 36 71 13.7 66 112
نتیجه گیری
ما که شگفت زده شدیم! اصلا قابل تصور نبود آن هم با این مقدار اختلاف سرعت!
اما سرعت فقط یکی از معیارهای مهم در توسعه یک پلتفرم و انتخاب زبان یا فریم ورک برنامه نویسی است. اگر شما در استفاده از یکی از این موارد مردد هستید ما سرعت آنها را به شما نشان دادیم حال میتوانید دیگر موارد تاثیر گذار در اپلیکیشن خود را مورد بررسی و مقایسه قرار دهید. عواملی چون: انعطاف پذیری، مصرف منابع، قابلیتهای فنی و …
اگر انتخاب شما لاراول بود، هاست لینوکس را با قابلیت پشتیبانی از لاراول برای شما تدارک دیدهایم:
هاست لینوکس با قابلیت پشتیبانی از لاراول
اگر انتخاب شما دات نت کور بود، هاست مخصوص این فریم با سرعت بسیار بالا و قابلیت های فراوان توسط هایساپورت ارایه شده است:
هاست دات نت کور با قابلیت پشتیبانی از دات نت کور 5 و سایر موارد
البته شما هم میتوانید در بخش دیدگاهها تجربیات خود را در استفاده از این دو فریم ورک و زبان برنامه نویسی به اشتراک بگذارید. قطعا ارزشمند خواهد بود 🙂
یک عیب که در این آزمایش وجود داره استفاده از لاراول نسخه 5.6 هست که الان دیگه تقریباً ساپورتی نداره و منسوخ شده. باید از لاراول نسخه 6 تا آخرین نسخه اش یعنی لاراول 7 استفاه می شد. مطمئناً در نتایج کار تاثیر گذاری بیشتری داشت.
از مشارکت شما متشکریم.
البته که همینطور است. هر دو پلتفرم نسخههای جدید ارایه کردند. آخرین نسخه Laravel در حال حاضر 7.x و همینطور ASP.Netcore برابر 3.1.4 هست که سرویسهای HiSupport در هر دو مورد مجهز به نسخههای جدید هستند.