وحید الوندی
وحید الوندی
خواندن ۲ دقیقه·۷ ماه پیش

سرعت PHP با C# یکی است باورکنید...

احتمالا هنوز افرادی هستند که فکر میکنند که سایت هایی که با استفاده از C# نوشته میشود سریع تر است البته پایه استدلالی آنها این است که چون PHP یک زبان تفسیری است و C# یک زبان کامپلیری است دلیل آنها بوده!! در واقع باید به قابلیتی که از PHP 8 به بعد امکان JIT اضافه شده، حالا JIT (Just in Time) همان سیستم یا ماشین مجازی است که در Dot net و Java هم وجود دارد، یعنی هنگامی که برنامه ای که اجرا میشود یکبار در Ram قرار میگیرد و برای همیشه اجرا می ماند و در واقع لازم نیست که برای هر درخواست یکبار از نو کل برنامه در Ram به عبارتی Boot شود!


خب این موضوع در PHP هم وجود داره ولی به صورت پیش فرض غیرفعال کافی است در فایل php.ini خود کدهای زیر را برای فعال سازی وارد کنید.

بنچمارک از اجرای کدهای PHP بدون opcache  (مقدار کمتر بهتر)
بنچمارک از اجرای کدهای PHP بدون opcache (مقدار کمتر بهتر)

کدهای زیر قابلیت opcache را فعال میکند توجه کنید که حتما باید jit_buffer_size را هم مقدار دهید که بستگی به میزان Ram سرور شما هم دارد

zend_extension=opcache.so

[opcache]

opcache.enable=1

opcache.revalidate_freq=0

opcache.validate_timestamps=1

opcache.max_accelerated_files=10000

opcache.memory_consumption=256

opcache.max_wasted_percentage=10

opcache.interned_strings_buffer=128

opcache.fast_shutdown=1

opcache.jit_buffer_size=1024M

پس درواقع همه زبان های برنامه نویسی همگی برای اجرا در CPU به زبان ماشین تبدیل خواهند شد. در تصویر شماتیک زیر نشان میدهد که فایل های PHP با استفاده از opcache و jit به صورت مستقیم به bytecode تبدیل شده اند و مانند سایر زبان های برنامه نویسی از حالت مفسیری در وضعیت jit استفاده نمیکند و عینا مانند زبان های کامپایلری هستند

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


برنامه نویسیلاراول
یک برنامه نویس و تحلیل گر نرم افزارها - مدیر و موسس سپهر گستر و شرکت وبینه
شاید از این پست‌ها خوشتان بیاید