1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
2026-02-07 11:07:43 +03:00

1465 lines
65 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8ea24dc32374bf4f6b04005e317101e4c65a0214 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<sect1 xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="opcache.configuration">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>Опции настройки модуля OPcache</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody xml:id="opcache.configuration.list">
<row>
<entry><link linkend="ini.opcache.enable">opcache.enable</link></entry>
<entry>1</entry>
<entry><constant>INI_ALL</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.enable-cli">opcache.enable_cli</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Между PHP 7.1.2 и 7.1.6 включительно значение по умолчанию было равно <literal>1</literal></entry>
</row>
<row>
<entry><link linkend="ini.opcache.memory-consumption">opcache.memory_consumption</link></entry>
<entry>128</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.interned-strings-buffer">opcache.interned_strings_buffer</link></entry>
<entry>8</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.max-accelerated-files">opcache.max_accelerated_files</link></entry>
<entry>10000</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.max-wasted-percentage">opcache.max_wasted_percentage</link></entry>
<entry>5</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.use-cwd">opcache.use_cwd</link></entry>
<entry>1</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.validate-timestamps">opcache.validate_timestamps</link></entry>
<entry>1</entry>
<entry><constant>INI_ALL</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.revalidate-freq">opcache.revalidate_freq</link></entry>
<entry>2</entry>
<entry><constant>INI_ALL</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.revalidate-path">opcache.revalidate_path</link></entry>
<entry>0</entry>
<entry><constant>INI_ALL</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.save-comments">opcache.save_comments</link></entry>
<entry>1</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.fast-shutdown">opcache.fast_shutdown</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.enable-file-override">opcache.enable_file_override</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.optimization-level">opcache.optimization_level</link></entry>
<entry>0x7FFEBFFF</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>До PHP 7.3.0 значение равнялось <literal>0x7FFFBFFF</literal></entry>
</row>
<row>
<entry><link linkend="ini.opcache.inherited-hack">opcache.inherited_hack</link></entry>
<entry>1</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Удалили в PHP 7.3.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.dups-fix">opcache.dups_fix</link></entry>
<entry>0</entry>
<entry><constant>INI_ALL</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.blacklist-filename">opcache.blacklist_filename</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.max-file-size">opcache.max_file_size</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.consistency-checks">opcache.consistency_checks</link></entry>
<entry>0</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>
Опцию отключили с PHP 8.1.18 и 8.2.5 и удалили в PHP 8.3.0
</entry>
</row>
<row>
<entry><link linkend="ini.opcache.force-restart-timeout">opcache.force_restart_timeout</link></entry>
<entry>180</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.error-log">opcache.error_log</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.log-verbosity-level">opcache.log_verbosity_level</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.record-warnings">opcache.record_warnings</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.preferred-memory-model">opcache.preferred_memory_model</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.protect-memory">opcache.protect_memory</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.mmap-base">opcache.mmap_base</link></entry>
<entry>&null;</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна только на ОС Windows</entry>
</row>
<row>
<entry><link linkend="ini.opcache.restrict-api">opcache.restrict_api</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.file_update_protection">opcache.file_update_protection</link></entry>
<entry>2</entry>
<entry><constant>INI_ALL</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.huge_code_pages">opcache.huge_code_pages</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.lockfile_path">opcache.lockfile_path</link></entry>
<entry>"/tmp"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.opt_debug_level">opcache.opt_debug_level</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 7.1.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.file-cache">opcache.file_cache</link></entry>
<entry>&null;</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.file-cache-only">opcache.file_cache_only</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.file-cache-consistency-checks">opcache.file_cache_consistency_checks</link></entry>
<entry>1</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.file-cache-fallback">opcache.file_cache_fallback</link></entry>
<entry>1</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry/>
</row>
<row>
<entry><link linkend="ini.opcache.validate-permission">opcache.validate_permission</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 7.0.14</entry>
</row>
<row>
<entry><link linkend="ini.opcache.validate-root">opcache.validate_root</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 7.0.14</entry>
</row>
<row>
<entry><link linkend="ini.opcache.preload">opcache.preload</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 7.4.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.preload-user">opcache.preload_user</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 7.4.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.cache-id">opcache.cache_id</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 7.4.0 только на ОС Windows</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit">opcache.jit</link></entry>
<entry>"tracing"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-buffer-size">opcache.jit_buffer_size</link></entry>
<entry>0</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-debug">opcache.jit_debug</link></entry>
<entry>0</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-bisect-limit">opcache.jit_bisect_limit</link></entry>
<entry>0</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-prof-threshold">opcache.jit_prof_threshold</link></entry>
<entry>0.005</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-max-root-traces">opcache.jit_max_root_traces</link></entry>
<entry>1024</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-max-side-traces">opcache.jit_max_side_traces</link></entry>
<entry>128</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-max-exit-counters">opcache.jit_max_exit_counters</link></entry>
<entry>8192</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-hot-loop">opcache.jit_hot_loop</link></entry>
<entry>64</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-hot-func">opcache.jit_hot_func</link></entry>
<entry>127</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-hot-return">opcache.jit_hot_return</link></entry>
<entry>8</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-hot-side-exit">opcache.jit_hot_side_exit</link></entry>
<entry>8</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-blacklist-root-trace">opcache.jit_blacklist_root_trace</link></entry>
<entry>16</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-blacklist-side-trace">opcache.jit_blacklist_side_trace</link></entry>
<entry>8</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-max-loop-unrolls">opcache.jit_max_loop_unrolls</link></entry>
<entry>8</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-max-recursive-calls">opcache.jit_max_recursive_calls</link></entry>
<entry>2</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-max-recursive-return">opcache.jit_max_recursive_returns</link></entry>
<entry>2</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
<row>
<entry><link linkend="ini.opcache.jit-max-polymorphic-calls">opcache.jit_max_polymorphic_calls</link></entry>
<entry>2</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Опция доступна с PHP 8.0.0</entry>
</row>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<variablelist>
<varlistentry xml:id="ini.opcache.enable">
<term>
<parameter>opcache.enable</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Включает кеш опкодов. Код не оптимизируется и не кешируется,
если опцию отключили. Опцию <literal>opcache.enable</literal> нельзя включить
во время выполнения функцией <function>ini_set</function>, но можно отключить.
Попытка включить опцию в скрипте выдаст предупреждение.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.enable-cli">
<term>
<parameter>opcache.enable_cli</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Включает кеш опкодов для CLI-версии PHP.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.memory-consumption">
<term>
<parameter>opcache.memory_consumption</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Размер разделяемой памяти в мегабайтах для OPcache.
Минимально допустимое значение — <literal>8</literal>,
которое кеш опкодов займёт, если установили значение меньше.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.interned-strings-buffer">
<term>
<parameter>opcache.interned_strings_buffer</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Количество памяти в мегабайтах для хранения интернированных строк.
Максимальное значение — 32 767 на 64-разрядных архитектурах
и 4095 на 32-разрядных архитектурах.
</simpara>
<note>
<simpara>
До PHP 8.4.0 максимальное значение составляло
4095 мегабайт на всех архитектурах.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.max-accelerated-files">
<term>
<parameter>opcache.max_accelerated_files</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество ключей (и, соответственно, скриптов) в хеш-таблице
OPcache. Значение, которое кеш опкодов будет использовать в итоге, будет первым числом из набора
<literal>{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 }</literal>,
которое больше или равно значению, которое установили для этого параметра.
Минимальное значение составляет 200, а максимальное — 1 000 000.
Значения за пределами этого диапазона ограничиваются допустимым диапазоном.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.max-wasted-percentage">
<term>
<parameter>opcache.max_wasted_percentage</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальный процент неиспользуемой памяти, при достижении которого модуль
запланирует перезапуск, если свободной памяти недостаточно.
Максимально допустимое значение: <literal>50</literal>,
которое кеш опкодов займёт, если установили значение больше.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.use-cwd">
<term>
<parameter>opcache.use_cwd</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
При включении опции OPcache добавляет текущую рабочую директорию к ключу
скрипта, чем устраняет возможность коллизий для файлов с одинаковым
основным именем. Отключение этой директивы повышает производительность, но иногда
приводит к сбоям приложений.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.validate-timestamps">
<term>
<parameter>opcache.validate_timestamps</parameter>
<type>bool</type>
</term>
<listitem>
<para>
При включении опции OPcache будет проверять актуальность закешированных скриптов каждые
<link linkend="ini.opcache.revalidate-freq">opcache.revalidate_freq</link>
секунд. При отключении директивы требуется сбросить OPcache вручную функциями
<function>opcache_reset</function>
и <function>opcache_invalidate</function> или перезапустить веб-сервер, чтобы
изменения в файловой системе вступили в силу.
<note>
<simpara>
OPcache по-прежнему может проверять метку времени файла во время компиляции, если для
опций <link linkend="ini.opcache.file_update_protection">opcache.file_update_protection</link>
или <link linkend="ini.opcache.max-file-size">opcache.max_file_size</link> установили ненулевые значения.
</simpara>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.revalidate-freq">
<term>
<parameter>opcache.revalidate_freq</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Как часто в секундах проверять обновления меток времени скрипта.
При значении <literal>0</literal> OPcache будет проверять обновления
при каждом запросе.
</simpara>
<simpara>
Модуль игнорирует эту директиву конфигурации, если опцию
<link linkend="ini.opcache.validate-timestamps">opcache.validate_timestamps</link> отключили.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.revalidate-path">
<term>
<parameter>opcache.revalidate_path</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
При отключении опции модуль переиспользует файлы кеша,
пути которых содержат путь из списка <link linkend="ini.include-path">include_path</link>.
Поэтому модуль не будет искать файл с таким же именем по другим путям
списка include_path.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.save-comments">
<term>
<parameter>opcache.save_comments</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
При отключении опции модуль отбрасывает комментарии для документации из кеша опкодов,
чтобы уменьшить размер оптимизированного кода. Отключение этой директивы конфигурации может спровоцировать
сбой в работе приложений и фреймворков, которые полагаются на аннотации в комментариях,
включая Doctrine, Zend Framework 2 и PHPUnit.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.fast-shutdown">
<term>
<parameter>opcache.fast_shutdown</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
При включении опции используется последовательность быстрого завершения работы,
которая не освобождает каждый выделенный блок памяти, а полагается
на менеджер памяти движка Zend Engine для массового освобождения всего набора переменных запроса.
</simpara>
<simpara>
Эту директиву удалили в PHP 7.2.0. Вариант последовательности
быстрого завершения работы интегрировали в PHP и кеш опкодов по возможности
будет использовать вариант автоматически.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.enable-file-override">
<term>
<parameter>opcache.enable_file_override</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
При включении опции и вызове функций <function>file_exists</function>,
<function>is_file</function> и <function>is_readable</function>
модуль будет проверять, содержит ли уже кеш опкодов файл.
Опция может повысить производительность приложений, которые проверяют наличие
и доступность для чтения PHP-скриптов, но рискует вернуть устаревшие
данные, если опцию
<link linkend="ini.opcache.validate-timestamps">opcache.validate_timestamps</link> отключили.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.optimization-level">
<term>
<parameter>opcache.optimization_level</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Битовая маска, которая контролирует, какие шаги оптимизации выполняются.
Значением по умолчанию является <literal>0x7FFEBFFF</literal>, которое включает все безопасные оптимизации.
Отключение оптимизаций или включение небезопасных оптимизаций
в основном полезно для отладки/разработки оптимизатора.
</simpara>
<simpara>
Каждый бит в битовой маске включает определённый этап оптимизации:
</simpara>
<table>
<title>Маска битов оптимизации</title>
<tgroup cols="4">
<thead>
<row>
<entry>Бит</entry>
<entry>Название</entry>
<entry>&Description;</entry>
<entry>По умолчанию</entry>
</row>
</thead>
<tbody>
<row>
<entry>0</entry>
<entry>PASS_1</entry>
<entry>Простая оптимизация Peephole</entry>
<entry>On</entry>
</row>
<row>
<entry>1</entry>
<entry>PASS_2</entry>
<entry>Не используется (объединён с PASS_1)</entry>
<entry>On</entry>
</row>
<row>
<entry>2</entry>
<entry>PASS_3</entry>
<entry>Простая оптимизация JuMP</entry>
<entry>On</entry>
</row>
<row>
<entry>3</entry>
<entry>PASS_4</entry>
<entry>Оптимизация Call</entry>
<entry>On</entry>
</row>
<row>
<entry>4</entry>
<entry>PASS_5</entry>
<entry>Оптимизация на основе графа управления потоком</entry>
<entry>On</entry>
</row>
<row>
<entry>5</entry>
<entry>PASS_6</entry>
<entry>Оптимизация на основе анализа потока данных</entry>
<entry>On</entry>
</row>
<row>
<entry>6</entry>
<entry>PASS_7</entry>
<entry>Следует ли использовать график вызовов для оптимизации на основе SSA</entry>
<entry>On</entry>
</row>
<row>
<entry>7</entry>
<entry>PASS_8</entry>
<entry>Редкое распространение условных констант</entry>
<entry>On</entry>
</row>
<row>
<entry>8</entry>
<entry>PASS_9</entry>
<entry>Оптимизация временных переменных</entry>
<entry>On</entry>
</row>
<row>
<entry>9</entry>
<entry>PASS_10</entry>
<entry>Удаление кодов операций NOP</entry>
<entry>On</entry>
</row>
<row>
<entry>10</entry>
<entry>PASS_11</entry>
<entry>Сжатие литералов</entry>
<entry>On</entry>
</row>
<row>
<entry>11</entry>
<entry>PASS_12</entry>
<entry>Предварительный расчет размера стека вызовов</entry>
<entry>On</entry>
</row>
<row>
<entry>12</entry>
<entry>PASS_13</entry>
<entry>Удаление неиспользуемых переменных</entry>
<entry>On</entry>
</row>
<row>
<entry>13</entry>
<entry>PASS_14</entry>
<entry>Удаление мёртвого кода</entry>
<entry>On</entry>
</row>
<row>
<entry>14</entry>
<entry>PASS_15</entry>
<entry>Сбор и замена объявлений констант (небезопасно)</entry>
<entry><emphasis>Off</emphasis></entry>
</row>
<row>
<entry>15</entry>
<entry>PASS_16</entry>
<entry>Встраивание тривиальных функций (часть оптимизации вызовов)</entry>
<entry>On</entry>
</row>
<row>
<entry>16</entry>
<entry>(Flag)</entry>
<entry>Игнорировать возможность перегрузки оператора (небезопасно)</entry>
<entry><emphasis>Off</emphasis></entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<title>Безопасные и небезопасные оптимизации</title>
<simpara>
<emphasis>Безопасные оптимизации</emphasis> (включены по умолчанию) сохраняют точное
поведение кода PHP, одновременно повышая производительность. Включают удаление мёртвого кода,
сворачивание констант и оптимизацию переходов.
</simpara>
<simpara>
<emphasis>Небезопасные оптимизации</emphasis> (по умолчанию отключено) может изменить поведение
в пограничных случаях:
</simpara>
<itemizedlist>
<listitem>
<simpara>
<emphasis>Бит 14</emphasis>: Сбор констант. Константы подставляются во время компиляции,
игнорируя порядок объявления во время выполнения:
</simpara>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo getA(); // Вывод: "hello" вместо того, чтобы вызывать ошибку
const A = "hello";
function getA() { return A; }
]]>
</programlisting>
</informalexample>
</listitem>
<listitem>
<simpara>
<emphasis>Бит 16</emphasis>: Игнорирование перегрузки операторов.
Небезопасно при использовании классов с <literal>do_operation</literal>
(например, <link linkend="book.gmp">GMP</link>, <link linkend="book.bc">BCMath</link>) в арифметических операциях.
При объявлении типов оптимизатор может безопасно применять те же оптимизации.
</simpara>
</listitem>
</itemizedlist>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.inherited-hack">
<term>
<parameter>opcache.inherited_hack</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Эта директива конфигурации игнорируется.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.dups-fix">
<term>
<parameter>opcache.dups_fix</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Этот хак требуется только для обхода ошибок «Невозможно повторно объявить класс» (Cannot redeclare class).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.blacklist-filename">
<term>
<parameter>opcache.blacklist_filename</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Расположение файла чёрного списка OPcache. Файл чёрного списка — текстовый файл,
который содержит имена файлов, которые не нужно ускорять, по одной записи на строку.
Допускаются подстановочные знаки, также можно указывать префиксы. Строки, которые
начинаются с точки с запятой, игнорируются как комментарии.
</simpara>
<simpara>
Пример простого чёрного списка:
</simpara>
<informalexample>
<programlisting>
<![CDATA[
; Соответствует конкретному файлу.
/var/www/broken.php
; Префикс, который соответствует каждому файлу, который начинается с «x».
/var/www/x
; Соответствует подстановочному знаку.
/var/www/*-broken.php
]]>
</programlisting>
</informalexample>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.max-file-size">
<term>
<parameter>opcache.max_file_size</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальный размер файла для кеширования в байтах.
Модуль будет кешировать все файлы, если значение равно <literal>0</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.consistency-checks">
<term>
<parameter>opcache.consistency_checks</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Если значение ненулевое, OPcache будет сверять контрольную сумму кеша каждые N запросов,
где N — значение этой директивы конфигурации. Рекомендуется включать директиву только
при отладке, поскольку опция снижает производительность.
</simpara>
<note>
<simpara>
Опцию отключили с PHP 8.1.18 и 8.2.5 и удалили в PHP 8.3.0.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.force-restart-timeout">
<term>
<parameter>opcache.force_restart_timeout</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Время ожидания начала запланированного перезапуска в секундах при неактивном кеше.
Если время ожидания истекло,
OPcache решает, что что-то не так, и чтобы разрешить перезапуск, завершит процессы,
которые удерживают блокировки в кеше.
</simpara>
<simpara>
Если для параметра
<link linkend="ini.opcache.log-verbosity-level">opcache.log_verbosity_level</link>
установили значение 2 или больше, то когда возникнет ситуации с превышением времени ожидания,
модуль запишет в лог ошибок предупреждение.
</simpara>
<simpara>
Директива не поддерживается в ОС Windows.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.error-log">
<term>
<parameter>opcache.error_log</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Путь к логу ошибок OPcache. Пустая строка обрабатывается как <literal>stderr</literal>,
и приведёт к отправке логов в стандартный поток ошибок (обычно это лог
ошибок веб-сервера).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.log-verbosity-level">
<term>
<parameter>opcache.log_verbosity_level</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Уровень детализации лога ошибок. По умолчанию регистрируются только
фатальные ошибки (уровень 0) и ошибки (уровень 1).
Другие доступные уровни: предупреждения (уровень 2), информационные
сообщения (уровень 3) и сообщения отладки (уровень 4).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.record-warnings">
<term>
<parameter>opcache.record_warnings</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
При включении опции OPcache будет записывать предупреждения, которые возникают во время компиляции,
и повторять их при следующем включении файла, даже если файл обслуживается из кеша.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.preferred-memory-model">
<term>
<parameter>opcache.preferred_memory_model</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Предпочитаемая модель памяти для OPcache. Если оставить значение пустым,
OPcache сам выберет наиболее подходящую модель, которая
будет вести себя корректно практически в любых случаях.
</simpara>
<simpara>
Возможные значения включают <literal>mmap</literal>, <literal>shm</literal>,
<literal>posix</literal> и <literal>win32</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.protect-memory">
<term>
<parameter>opcache.protect_memory</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Защищает разделяемую память от неожиданной записи во время запуска скриптов.
Полезно только для внутренней отладки.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.mmap-base">
<term>
<parameter>opcache.mmap_base</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Базовое значение для сегмента разделяемой памяти в ОС Windows. Каждый
PHP-процесс должен отображать разделяемую память в одинаковое адресное пространство.
Эта директива помогает исправить ошибки «Не удается повторно прикрепиться к базовому адресу»
(Unable to reattach to base address).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.restrict-api">
<term>
<parameter>opcache.restrict_api</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Разрешает вызывать API-функции модуля OPcache только из PHP-скриптов, чей путь начинается
с заданной строки. Значение по умолчанию равно <literal>""</literal> и означает отсутствие ограничений.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.file_update_protection">
<term>
<parameter>opcache.file_update_protection</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Исключает кеширование файлов, с момента изменения которых прошло меньше секунд, чем указали.
Это защищает от кеширования неполностью обновлённых файлов. Если все обновления файлов атомарны, можно повысить
производительность, задав для этого параметра значение <literal>0</literal>.
Это разрешит закешировать файлы немедленно.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.huge_code_pages">
<term>
<parameter>opcache.huge_code_pages</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Включает или отключает копирование PHP-кода (текстового сегмента) в HUGE PAGES.
Опция может повысить производительность, но требует соответствующих системных
настроек.
Опция доступна в Linux начиная с PHP 7.0.0 и во FreeBSD начиная с PHP 7.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.lockfile_path">
<term>
<parameter>opcache.lockfile_path</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Абсолютный путь к хранилищу общих файлов блокировок (только для *nix-систем).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.opt_debug_level">
<term>
<parameter>opcache.opt_debug_level</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Создаёт сброс опкодов для отладки отдельных этапов оптимизации.
Значение 0x10000 будет выводить опкоды в том виде, в каком их создал компилятор,
до оптимизации, тогда как значение
0x20000 будет выводить оптимизированные опкоды.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.file-cache">
<term>
<parameter>opcache.file_cache</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Включает и устанавливает каталог кеша второго уровня. Опция должна
повысить производительность, когда SHM-память заполнилась,
при перезапуске сервера или сбросе разделяемой SHM-памяти. Значение по умолчанию <literal>""</literal>
отключает кеширование на основе файлов.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.file-cache-only">
<term>
<parameter>opcache.file_cache_only</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Включает или выключает кеширование опкодов в разделяемой памяти.
</simpara>
<note>
<simpara>
До PHP 8.1.0 отключение этой директивы с уже заполненным
файловым кешем требовало ручной очистки файлового кеша.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.file-cache-consistency-checks">
<term>
<parameter>opcache.file_cache_consistency_checks</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Включает или выключает проверку контрольной суммы при загрузке скрипта
из файлового кеша.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.file-cache-fallback">
<term>
<parameter>opcache.file_cache_fallback</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Подразумевает <code>opcache.file_cache_only=1</code> для конкретного процесса, которому
не удалось повторно подключиться к разделяемой памяти
(только для ОС Windows). Требуется явное включение файлового кеша.
</simpara>
<caution>
<simpara>
Отключение этой опции конфигурации может помешать запуску процессов, и поэтому не рекомендуется.
</simpara>
</caution>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.validate-permission">
<term>
<parameter>opcache.validate_permission</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Проверяет права доступа к кешированному файлу для текущего пользователя.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.validate-root">
<term>
<parameter>opcache.validate_root</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
Предотвращает коллизии имён в chroot-окружении. Опцию необходимо включать
для каждого chroot-окружения, чтобы предотвратить доступ
к файлам за пределами chroot.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.preload">
<term>
<parameter>opcache.preload</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Задаёт PHP-скрипт, который модуль скомпилирует и выполнит при старте сервера,
а также сможет предзагрузить другие файлы, либо через конструкцию <function>include</function>,
либо через функцию <function>opcache_compile_file</function>. Каждая сущность (например,
функции и классы), которую определили в этих файлах, будет автоматически доступна для запросов
до момента выключения сервера.
</simpara>
<note>
<simpara>
Предварительная загрузка не поддерживается ОС Windows.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.preload-user">
<term>
<parameter>opcache.preload_user</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
Позволяет запускать предварительную загрузку от имени заданного пользователя системы.
Опция полезна для серверов, которые запускаются от имени root-пользователя перед переключением
на непривилегированного пользователя системы.
По умолчанию предварительная загрузка от имени root запрещена по соображениям безопасности,
если только этой директиве явно не установили значение <literal>root</literal>.
Начиная с PHP 8.3.0, эту директиву не нужно устанавливать, чтобы разрешить предварительную загрузку
при запуске от имени root при использовании &cli.sapi; или <link linkend="book.phpdbg">phpdbg SAPI</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.cache-id">
<term>
<parameter>opcache.cache_id</parameter>
<type>string</type>
</term>
<listitem>
<para>
В системах Windows процессы, которые запускают один и тот же <acronym>SAPI</acronym>-интерфейс <acronym>PHP</acronym>
под одной и той же учётной записью пользователя с тем же идентификатором кеша, делят между собой один экземпляр OPcache.
Значение этой опции разрешается задавать произвольно.
</para>
<tip>
<simpara>
На IIS-серверах пулы приложений поддерживают способность работать с отдельными экземплярами OPcache.
Чтобы разделить кеши, переменную окружения <envar>APP_POOL_ID</envar> указывают как идентификатор кеша
<parameter>opcache.cache_id</parameter>.
</simpara>
</tip>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit">
<term>
<parameter>opcache.jit</parameter>
<type class="union"><type>string</type><type>int</type></type>
</term>
<listitem>
<simpara>
В обычном режиме параметр принимает одно из четырёх строковых значений:
</simpara>
<simplelist>
<member><literal>disable</literal>: Деактивирован, нельзя включить во время выполнения.</member>
<member><literal>off</literal>: Выключен, но разрешается включить во время выполнения.</member>
<member>
<literal>tracing</literal>/<literal>on</literal>: Включить JIT с компиляцией трассировок.
Включён по умолчанию и рекомендуется для большей части пользователей.
</member>
<member><literal>function</literal>: Включить JIT с компиляцией функций.</member>
</simplelist>
<para>
В продвинутом режиме параметр принимает 4-значное целое число <literal>CRTO</literal>, в котором цифры означают:
<variablelist>
<varlistentry>
<term><literal>C</literal> (флаги оптимизации для процессора)</term>
<listitem>
<simplelist>
<member><literal>0</literal>: Отключить оптимизацию для ЦП.</member>
<member><literal>1</literal>: Включить набор инструкций AVX, если поддерживается ЦП.</member>
</simplelist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>R</literal> (распределение регистров)</term>
<listitem>
<simplelist>
<member><literal>0</literal>: Не распределять регистры.</member>
<member><literal>1</literal>: Выделять локальный блочный регистр.</member>
<member><literal>2</literal>: Выделять глобальный регистр.</member>
</simplelist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>T</literal> (триггер)</term>
<listitem>
<simplelist>
<member><literal>0</literal>: Компилировать каждую функцию при загрузке скрипта.</member>
<member><literal>1</literal>: Компилировать функций при первом выполнении.</member>
<member>
<literal>2</literal>: Профилировать функции при первом запросе и компилировать самые горячие функции.
</member>
<member><literal>3</literal>: Профилировать на лету и компилировать горячие функции.</member>
<member><literal>4</literal>: Не используется.</member>
<member>
<literal>5</literal>: Включить JIT с компиляцией трассировок.
Профилировать на лету и компилировать трассировки горячих сегментов кода.
</member>
</simplelist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>O</literal> (уровень оптимизации)</term>
<listitem>
<simplelist>
<member><literal>0</literal>: Без JIT-компилятора.</member>
<member><literal>1</literal>: Минимальный уровень JIT-компиляции (вызывать стандартные обработчики виртуальной машины).</member>
<member><literal>2</literal>: Вызывать встроенные обработчики виртуальной машины.</member>
<member><literal>3</literal>: Разрешить компилятору делать выводы о типах значений.</member>
<member><literal>4</literal>: Использовать граф вызовов.</member>
<member><literal>5</literal>: Оптимизировать весь скрипт.</member>
</simplelist>
</listitem>
</varlistentry>
</variablelist>
Режим <literal>tracing</literal> соответствует <code>CRTO = 1254</code>,
Режим <literal>function</literal> соответствует <code>CRTO = 1205</code>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-buffer-size">
<term>
<parameter>opcache.jit_buffer_size</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Объем разделяемой памяти, который резервируется для скомпилированного JIT-кода. Нулевое значение отключает JIT.
</simpara>
&ini.shorthandbytes;
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-debug">
<term>
<parameter>opcache.jit_debug</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Битовая маска, которая определяет, какой вывод JIT-отладки включить.
Возможные значения смотрите в файле <link xlink:href="&url.php.git.src.master.view;ext/opcache/jit/zend_jit.h">zend_jit.h</link>
(ищите определения макросов, которые начинаются с префикса <code>ZEND_JIT_DEBUG</code>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-bisect-limit">
<term>
<parameter>opcache.jit_bisect_limit</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Опция отладки, которая отключает JIT-компиляцию после компиляции конкретного количества функций.
Опция помогает разделять источник неправильной JIT-компиляции.
Примечание: этот параметр работает, только если для JIT-триггера установили значение 0 (компиляция при загрузке скрипта)
или 1 (компиляция при первом выполнении), например <code>opcache.jit=1215</code>.
Подробнее о значениях рассказывает описание опции <link linkend="ini.opcache.jit">opcache.jit</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-prof-threshold">
<term>
<parameter>opcache.jit_prof_threshold</parameter>
<type>float</type>
</term>
<listitem>
<simpara>
Когда используется режим триггера «профилирование функций при первом запросе» этот порог определяет, считается ли
функция горячей. Количество вызовов функции, разделённое на количество вызовов
всех функций, должно быть выше порогового значения. Например, пороговое значение 0,005 означает,
что функции, которые составляют более 0,5% всех вызовов, будут компилироваться JIT-компилятором.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-max-root-traces">
<term>
<parameter>opcache.jit_max_root_traces</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество корневых стеков вызовов.
Корневой стек вызова — поток выполнения, который сначала проходит по одному пути через код,
что является единицей JIT-компиляции.
JIT не будет компилировать новый код, если достигнет этого предела.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-max-side-traces">
<term>
<parameter>opcache.jit_max_side_traces</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество боковых стеков вызова, которые могут принадлежать корневому стеку.
Боковой стек вызова — другой поток выполнения, который не идёт по пути скомпилированного корневого стека вызова.
Боковые стеки вызова, которые принадлежат тому же корневому стеку вызова, не будут компилироваться,
если достигнут этого предела.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-max-exit-counters">
<term>
<parameter>opcache.jit_max_exit_counters</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество счётчиков выхода бокового стека вызова. Опция ограничивает общее количество
возможных боковых стеков вызова для всех корневых стеков.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-hot-loop">
<term>
<parameter>opcache.jit_hot_loop</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
После скольких итераций цикл считается горячим.
Допустимый диапазон значений: <code>[0,255]</code>; для значений за пределами этого диапазона,
например <literal>-1</literal> или <literal>256</literal>, будет использоваться значение по умолчанию.
Значение <literal>0</literal> отключит трассировку и компиляцию циклов JIT-компилятором.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-hot-func">
<term>
<parameter>opcache.jit_hot_func</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
После скольких вызовов функция считается горячей.
Допустимый диапазон значений: <code>[0,255]</code>; для значений за пределами этого диапазона,
например <literal>-1</literal> или <literal>256</literal>, будет использоваться значение по умолчанию.
Значение <literal>0</literal> отключит трассировку и компиляцию функций JIT-компилятором.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-hot-return">
<term>
<parameter>opcache.jit_hot_return</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
После скольких возвратов возврат считается горячим.
Допустимый диапазон значений: <code>[0,255]</code>; для значений за пределами этого диапазона,
например <literal>-1</literal> или <literal>256</literal>, будет использоваться значение по умолчанию.
Значение <literal>0</literal> отключит трассировку и компиляцию возвратов JIT-компилятором.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-hot-side-exit">
<term>
<parameter>opcache.jit_hot_side_exit</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
После скольких выходов выход из бокового стека вызова считается горячим.
Допустимый диапазон значений: <code>[0,255]</code>; для значений за пределами этого диапазона,
например <literal>-1</literal> или <literal>256</literal>, будет использоваться значение по умолчанию.
Значение <literal>0</literal> отключит трассировку и компиляцию боковых выходов JIT-компилятором.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-blacklist-root-trace">
<term>
<parameter>opcache.jit_blacklist_root_trace</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество попыток компиляции корневого стека вызова, прежде чем компилятор занесёт корневой стек в чёрный список.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-blacklist-side-trace">
<term>
<parameter>opcache.jit_blacklist_side_trace</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество попыток компиляции бокового стека вызова, прежде чем компилятор занесёт боковой стек в чёрный список.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-max-loop-unrolls">
<term>
<parameter>opcache.jit_max_loop_unrolls</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество попыток развернуть цикл в боковом пути
при попытке достичь корневого пути и закрыть внешний цикл.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-max-recursive-calls">
<term>
<parameter>opcache.jit_max_recursive_calls</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество развёрнутых циклов рекурсивных вызовов.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-max-recursive-return">
<term>
<parameter>opcache.jit_max_recursive_returns</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество развёрнутых циклов рекурсивных возвратов.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.jit-max-polymorphic-calls">
<term>
<parameter>opcache.jit_max_polymorphic_calls</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
Максимальное количество попыток встроить полиморфные динамические вызовы или вызовы полиморфных методов.
Вызовы, которые превышают этот предел, обрабатываются как мегаморфные и не встраиваются.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->