<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блоги: заметки с тегом php8</title>
<link>https://blogengine.ru/blogs/tags/php8/</link>
<description>Автоматически собираемая лента заметок, написанных в блогах на Эгее</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.0 (v4079e)</generator>

<itunes:subtitle>Автоматически собираемая лента заметок, написанных в блогах на Эгее</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit>no</itunes:explicit>

<item>
<title>PHP 7.4 vs. PHP 8.0a</title>
<guid isPermaLink="false">124864</guid>
<link>https://bolknote.ru/all/php-74-vs-php-80a/</link>
<pubDate>Thu, 19 Mar 2020 01:56:58 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/php-74-vs-php-80a/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p class="remark"&gt;Резюме — в моём частном случае стало ощутимо быстрее, PHP 7.4 работал 63,9 секунд, 8.0a — 42,6.&lt;/p&gt;
&lt;p&gt;Как многие знают, основной фишкой восьмой версии интерпретатора ПХП &lt;a href="https://bolknote.ru/all/about-php8/"&gt;будет &lt;i&gt;JIT&lt;/i&gt;&lt;/a&gt;. Обещают ускорение вычислительных задач, что немного не про веб, где в основном используется этот язык, но всё равно выглядит интересно.&lt;/p&gt;
&lt;p&gt;В официальном репозитории альфа восьмой версии лежит уже давно, стало интересно сравнить её с «семёркой» — много ли даёт &lt;i&gt;JIT&lt;/i&gt; приросту. Для подобных тестов я &lt;a href="https://bolknote.ru/all/4261/"&gt;давно использую&lt;/a&gt; свой оптимизирующий транслятор «Брейнфака», с загруженной в него задачей вычисления числа Пи.&lt;/p&gt;
&lt;p&gt;Восьмой ПХП собрался на моём «Макбуке» следующей последовательностью команд:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;PATH=/usr/local/Cellar/bison/3.5.3/bin/:$PATH ./buildconf
./configure --prefix=/opt/php-bin/ --without-iconv --disable-xml \
--without-libxml --disable-simplexml --disable-xmlwriter --disable-dom --disable-xmlreader
make -j4
make install&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Версию 7.4 ставил через «брю», сборочную конфигурацию оставил как есть, ничего не менял.&lt;/p&gt;
&lt;p&gt;После небольшой коррекции &lt;tt&gt;php.ini&lt;/tt&gt; в информации об интерпретаторе появились &lt;i&gt;OPcache&lt;/i&gt; и &lt;i&gt;JIT&lt;/i&gt;:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2020.03.18@2x.jpg" width="1000" height="392" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Скомпилированная версия PHP 8.0a со включенным JIT&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Вообще свой брейфаковский транслятор когда-то давно я умудрился сломать, но с быстрым фиксом он выплюнул некую калечную программу, которая, тем не менее, выдала результат, похожий на правду и довольно бодро нагрузила одно ядро процессора.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2020.03.18.2@2x.jpg" width="1000" height="546" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Сравнение PHP 7.4 и 8.0a, со включённым и выключенным opcache (меньше — лучше)&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Каждую версию интерпретатора я тестировал со включенным и выключенным &lt;i&gt;OPcache&lt;/i&gt; десять раз, а результаты усреднил. Как видите, &lt;i&gt;JIT&lt;/i&gt; существенно ускорил выполнение программы в моём случае (там огромное количество циклов и ветвлений) — 63,9 секунды против 42,6.&lt;/p&gt;
&lt;p&gt;Что интересно — &lt;i&gt;PHP 8.a&lt;/i&gt; без &lt;i&gt;OPcache&lt;/i&gt; обогнал версию 7.4 со включенным &lt;i&gt;opcache&lt;/i&gt;, это примечательный результат— значит сам «голый» интерпретатор тоже оптимизируют.&lt;/p&gt;
</description>
</item>


</channel>
</rss>