Developers
Developers
خواندن ۳ دقیقه·۴ سال پیش

نحوه اجرا PHP 8 با JIT در Docker

PHP 8
PHP 8

داکر تصویر

تصویر داکر فرم بسیار مناسبی برای تهیه نسخه مناسب PHP است که برای اجرا در هر دستگاه آماده است.

برای نصب Docker روی دستگاه خود ، اسناد رسمی را بررسی کنید.

تصویر Docker را با کامپایل PHP 8 تهیه کردم و در Docker Hub موجود است: https://cloud.docker.com/u/akondas/repository/docker/akondas/php

برچسب تصویر داکر: akondas / php: 8.0-cli-alpine.

در شبکه ، می توانید تصاویر مشابهی را پیدا کنید که می توانند برای همین مناسب باشند. با این حال ، من می خواستم به دو هدف اضافی نیز دست یابم:

یاد بگیرید که تصاویر خود را بسازید و آنها را به صورت عمومی به اشتراک بگذارید

تصویری شبیه به تصاویر رسمی PHP 7.x تهیه کنید

نکته دوم برای ایجاد یک مقایسه جامع از نسخه php از نظر عملکرد برای من به ویژه ضروری خواهد بود.

اجرا PHP 8

من فرض می کنم شما Docker را نصب کرده اید یا قبلاً آن را قبلاً نیز داشته اید. برای اجرای هر پرونده .php در PHP 8 از دستگاه شما نیاز داریم:

  • تصویر کانتینر را بارگیری و اجرا کنید
docker run -it akondas / php: 8.0-cli-alpine
  • نصب فهرست کار (به طوری که کانتینر بتواند پرونده ها را از پوشه واقعی که در آن قرار دارد بخواند)
-v &quot$ PWD&quot: / usr / src / app
  • دایرکتوری کار را روی یکی از مونتاژ شده در بالا تنظیم کنید
-w / usr / src / app

بنابراین فرمان کامل مانند این است:

docker run -it -v &quot$PWD&quot:/usr/src/app -w /usr/src/app \ akondas/php:8.0-cli-alpine php script.php

پشتیبانی JIT را فعال کنید

برای فعال کردن JIT باید این چهار پارامتر اضافی را ارائه دهید:

-dzend_extension=opcache.so -dopcache.enable_cli=1 -dopcache.jit_buffer_size=500000000 -dopcache.jit=1235

مورد اول opcache را اجرا می کند ، دیگران JIT را پیکربندی می کنند. می توانید مقادیر آنها را از این طریق تغییر دهید و جلوه های مختلف را بررسی کنید. جزئیات بیشتری درباره تنظیمات جدید در RFC خواهید یافت.

تست کارایی

بیایید یک اسکریپت آزمایشی ساده برای آزمایش عملکرد JIT جدید تهیه کنیم. من پیشنهاد می کنم یک عملکرد فیبوناچی خوب و ساده بنویسید ?:

function fibonacci($n){ return(($n < 2) ? 1 : fibonacci($n - 2) + fibonacci($n - 1)); } $n = 32; $start = microtime(true); $fibonacci = fibonacci($n); $stop = microtime(true); echo sprintf(&quotFibonacci(%s): %s\nTime: %s&quot, $n, $fibonacci, $stop-$start);

و اکنون زمان نمایش است. ابتدا بیایید نتیجه خاموش را بررسی کنیم.

docker run -it -v &quot$PWD&quot:/usr/src/app -w /usr/src/app \ akondas/php:8.0-cli-alpine php fibo.php Fibonacci(32): 3524578 Time: 0.17796015739441

خوب ، JIT ، به من نشان بده آنچه بدست آورده:

docker run -it -v &quot$PWD&quot:/usr/src/app -w /usr/src/app \ akondas/php:8.0-cli-alpine php -dzend_extension=opcache.so \ -dopcache.enable_cli=1 -dopcache.jit_buffer_size=500000000 \ -dopcache.jit=1235 fibo.php Fibonacci(32): 3524578 Time: 0.050444841384888

بنابراین 0.1779 در مقابل 0.0504 چشمگیر به نظر می رسد. شروع JIT ، در صورت محاسبه فیبوناچی ، 352٪ از افزایش سرعت gave را به دست آورد.
اکنون زمان آن است که شما آن را آزمایش کنید! من شما را تشویق می کنم تا نتایج آزمایش ها را در نظرات به اشتراک بگذارید.

از JIT لذت ببرید.




phpبرنامه نویسیبرنامه نویسی وبطراحی سایتjit
دانشمندان چیزی را که قبلا وجود داشته کشف میکنند اما برنامه نویسان چیزی که قبلا وجود نداشته را خلق میکنند.
شاید از این پست‌ها خوشتان بیاید