mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
1465 lines
65 KiB
XML
1465 lines
65 KiB
XML
<?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
|
||
-->
|