mirror of
https://github.com/php/doc-ja.git
synced 2026-03-24 07:02:08 +01:00
* コアと移行ガイドを英語版の最新に追従 language/ コア: - language/operators/precedence.xml: パイプ演算子と throw を追加 - language/predefined/generator/rewind.xml: 説明文を修正 - language/predefined/iterator/rewind.xml: rewind の注意事項を追加 - language/predefined/variables/server.xml: REQUEST_TIME の説明を修正 - faq/using.xml: 名前付き引数とプリペアドステートメントの推奨を追加 - language/predefined/closure.xml: Closure::getCurrent を追加 - language/control-structures/do-while.xml: インデント修正 - language/oop5/property-hooks.xml: 不足していた $modified プロパティを追加 reference/, appendices/: - reference/opcache/ini.xml: 最適化パスのビットマスク表を追加 - appendices/reserved.constants.core.xml: PHP_BUILD_DATE, PHP_BUILD_PROVIDER を追加 - appendices/migration85/incompatible.xml: setlocale の整数引数の変更を追加 - reference/strings/functions/setlocale.xml: 変更履歴セクションを追加 * 用語の統一(オプティマイザー→最適化エンジン)
1486 lines
58 KiB
XML
1486 lines
58 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: 8ea24dc32374bf4f6b04005e317101e4c65a0214 Maintainer: satoruyoshida Status: ready -->
|
||
<!-- CREDITS: mumumu -->
|
||
<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>PHP 7.2.0 で削除されました</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 と PHP 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>Windows のみ</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>Windows のみ。PHP 7.4.0 以降で利用可能</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.opcache.jit">opcache.jit</link></entry>
|
||
<entry>"disable"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>PHP 8.0.0 以降で利用可能。PHP 8.4.0 より前のバージョンでは、デフォルト値は "tracing" でした。</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.opcache.jit-buffer-size">opcache.jit_buffer_size</link></entry>
|
||
<entry>64M</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry>PHP 8.0.0 以降で利用可能。PHP 8.4.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>
|
||
PHP の CLI 版に対してオペコード・キャッシュを有効にします。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.opcache.memory-consumption">
|
||
<term>
|
||
<parameter>opcache.memory_consumption</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
OPcache によって使用される共有メモリ・ストレージのサイズ。( MB 単位)
|
||
設定できる最小値は <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>
|
||
インターン化 (intern) された文字列を格納するために使用されるメモリ量。( MB 単位)
|
||
最大値は、64bit アーキテクチャでは 32767 であり、
|
||
32bit アーキテクチャでは 4095 です。
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
PHP 8.4.0 より前のバージョンの最大値は、
|
||
すべてのアーキテクチャで 4095 MB でした。
|
||
</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 です。最大値は 1000000 です。
|
||
これらの範囲外の値が設定されても、範囲内の値に設定し直されます。
|
||
</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> 秒ごとにチェックします。
|
||
このディレクティブが無効な場合、ファイルシステムへの変更を反映するには、
|
||
<function>opcache_reset</function> または <function>opcache_invalidate</function> 関数を介して、
|
||
または Web サーバーを再起動して手動で OPcache をリセットしなければいけません。
|
||
<note>
|
||
<simpara>
|
||
<link linkend="ini.opcache.file_update_protection">opcache.file_update_protection</link>
|
||
や <link linkend="ini.opcache.max-file-size">opcache.max_file_size</link> の値に0でない値が設定されている場合、OPcache はファイルのタイムスタンプをまだコンパイル時にチェックする可能性があります。
|
||
</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>
|
||
無効にすると、最適化したコードのサイズを減らすために OPcode キャッシュからすべてのドキュメンテーション・コメントが廃棄されます。
|
||
この設定ディレクティブを無効にすると、注釈のためにコメント・パースに依存するアプリケーションおよびフレームワークを破壊するかもしれません。
|
||
それには、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>単純なピープホール最適化</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>1</entry>
|
||
<entry>PASS_2</entry>
|
||
<entry>未使用 (PASS_1 に統合済み)</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>2</entry>
|
||
<entry>PASS_3</entry>
|
||
<entry>単純なジャンプ最適化</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>3</entry>
|
||
<entry>PASS_4</entry>
|
||
<entry>コール最適化</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>4</entry>
|
||
<entry>PASS_5</entry>
|
||
<entry>制御フローグラフに基づく最適化</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>5</entry>
|
||
<entry>PASS_6</entry>
|
||
<entry>データフロー解析に基づく最適化</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>6</entry>
|
||
<entry>PASS_7</entry>
|
||
<entry>SSA ベースの最適化にコールグラフを使用するかどうか</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>7</entry>
|
||
<entry>PASS_8</entry>
|
||
<entry>疎条件定数伝播</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>8</entry>
|
||
<entry>PASS_9</entry>
|
||
<entry>一時変数の最適化</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>9</entry>
|
||
<entry>PASS_10</entry>
|
||
<entry>NOP オペコードの除去</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>10</entry>
|
||
<entry>PASS_11</entry>
|
||
<entry>リテラルの圧縮</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>11</entry>
|
||
<entry>PASS_12</entry>
|
||
<entry>コールスタックサイズの事前計算</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>12</entry>
|
||
<entry>PASS_13</entry>
|
||
<entry>未使用変数の除去</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>13</entry>
|
||
<entry>PASS_14</entry>
|
||
<entry>デッドコードの除去</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>14</entry>
|
||
<entry>PASS_15</entry>
|
||
<entry>定数宣言の収集と置換 (安全でない)</entry>
|
||
<entry><emphasis>無効</emphasis></entry>
|
||
</row>
|
||
<row>
|
||
<entry>15</entry>
|
||
<entry>PASS_16</entry>
|
||
<entry>自明な関数のインライン化 (コール最適化の一部)</entry>
|
||
<entry>有効</entry>
|
||
</row>
|
||
<row>
|
||
<entry>16</entry>
|
||
<entry>(フラグ)</entry>
|
||
<entry>演算子オーバーロードの可能性を無視する (安全でない)</entry>
|
||
<entry><emphasis>無効</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(); // Error をスローする代わりに "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 ブラックリスト・ファイルの場所。
|
||
ブラックリスト・ファイルは、高速化すべきではないファイルの名前を 1 行につき 1 つ含むテキストファイルです。
|
||
ワイルドカードが許されます。そして、プレフィックスも提示できます。
|
||
セミコロンで始まる行は、コメントとして無視されます。
|
||
</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>
|
||
エラーに対するエラーログ。
|
||
空の文字列は、<literal>stderr</literal> と同様に扱われ、
|
||
結果として標準エラー(ほとんどの場合、Web サーバーのエラーログです)に送られるログになります。
|
||
</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 はコンパイル時の警告を記録し、
|
||
次回の include 時にもその警告を再度発生させます。
|
||
これは、コードがキャッシュされていたとしても同じです。
|
||
</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>
|
||
OPcache API 関数の呼び出しを、指定した文字列から始まるパス上の 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>
|
||
ここで指定された秒数の間は、キャッシュすることを防ぎます。
|
||
これにより、不完全に更新されたファイルがキャッシュされることを防止します。
|
||
全てのファイルの更新がアトミックに行われる場合、
|
||
この設定を "0" に設定することで、パフォーマンスを向上させられる可能性があります。なぜなら、こうすることでファイルがすぐにキャッシュされるからです。
|
||
</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コード(textセグメント)を HUGE PAGE
|
||
にコピーする機能を有効にしたり、無効にしたりできます。
|
||
これにより、パフォーマンスは向上するはずですが、適切なOSの設定が必要です。
|
||
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>
|
||
ファイルベースのセカンドレベル opcode キャッシュを有効にし、そのディレクトリを設定します。
|
||
これは共有メモリ上の opcode キャッシュがいっぱいの時やサーバー再起動時、
|
||
もしくは共有メモリ上の opcode キャッシュをリセットした場合のパフォーマンスを向上させます。
|
||
デフォルトは <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>
|
||
関数で指定されることで他のファイルも事前ロードするかもしれません。
|
||
それらのファイルに指定された全てのエンティティ(e.g 関数やクラス)
|
||
は、サーバーがシャットダウンされるまで、外部からのリクエストに対して利用できるようになります。
|
||
</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 以降では、&cli.sapi; や <link linkend="book.phpdbg">phpdbg SAPI</link> から root で実行した場合、
|
||
root ユーザでの事前ロードを許可するために、このディレクティブを指定する必要はありません。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.opcache.cache-id">
|
||
<term>
|
||
<parameter>opcache.cache_id</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Windows では、同じユーザーアカウントで同じ <acronym>PHP</acronym> <acronym>SAPI</acronym> を実行し、
|
||
かつ同じ cache ID を持つ全てのプロセスが同一の OPcache インスタンスを共有します。
|
||
cache ID の値は自由に選べます。
|
||
</para>
|
||
<tip>
|
||
<simpara>
|
||
IIS の場合、異なるアプリケーションプールは
|
||
環境変数 <envar>APP_POOL_ID</envar> を
|
||
<parameter>opcache.cache_id</parameter>
|
||
の値として使うことで、
|
||
それぞれが異なる OPcache インスタンスを持つことが出来ます。
|
||
</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>
|
||
典型的な使い方として、このオプションには以下の4通りの文字列を指定できます。
|
||
</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> (特定のCPU向けの最適化フラグ)</term>
|
||
<listitem>
|
||
<simplelist>
|
||
<member><literal>0</literal>: 特定のCPU向けの最適化を無効にする</member>
|
||
<member><literal>1</literal>: CPU がサポートしている場合に、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> (JITを行うトリガ)</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を使わない (通常のVMハンドラを呼び出す)</member>
|
||
<member><literal>2</literal>: VMハンドラをインライン化する</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コードを保存する共有メモリの合計サイズ。
|
||
0 を指定すると、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 のデバッグ出力を有効にするかを指定するビットマスク。
|
||
指定可能な値については、<filename>zend_jit.h</filename> を参照ください
|
||
(<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>
|
||
JITを行うトリガに "最初のリクエスト時にプロファイリングを行う" モードが指定されている場合、
|
||
どの関数がホットであるかはこのしきい値によって決まります。
|
||
特定の関数の呼び出し回数を、全関数の呼び出し回数で割った数は、この値以上でなければなりません。
|
||
たとえば、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>
|
||
サイドトレースの出口のカウンタを最大いくつ持つかを指定します。
|
||
この数によって、全ルートトレースが持つサイドトレースの数の合計値を制御できます。
|
||
<!--
|
||
Maximum number of side trace exit counters. This limits the total number of side traces
|
||
there may be, across all root traces.
|
||
-->
|
||
</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>
|
||
ブラックリストに入れるまでに、ルートトレースのコンパイルを最大何回試みるかを指定します。
|
||
<!--
|
||
Maximum number of times the compilation of a root trace is attempted before it is blacklisted.
|
||
-->
|
||
</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>
|
||
ブラックリストに入れるまでに、サイドトレースのコンパイルを最大何回試みるかを指定します。
|
||
<!--
|
||
Maximum number of times the compilation of a side trace is attempted before it is blacklisted.
|
||
-->
|
||
</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>
|
||
ルートトレースに達して外側のループが閉じられるまでに、
|
||
サイドトレース内で行えるループ展開の回数の最大値を指定します。
|
||
<!--
|
||
Maximum number of attempts to unroll a loop in a side trace,
|
||
trying to reach the root trace and close the outer loop.
|
||
-->
|
||
</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>
|
||
再帰的に行われるリターンを展開する最大回数を指定します。
|
||
<!--
|
||
Maximum number of unrolled recursive return loops.
|
||
-->
|
||
</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>
|
||
(動的な、もしくはメソッドの)ポリモーフィックな呼び出しのインライン化を試みる回数の最大値を指定します。
|
||
この呼び出し回数を超えると、メガモーフィックと見なされ、インライン化されません。
|
||
<!--
|
||
Maximum number of attempts to inline polymorphic (dynamic or method) calls.
|
||
Calls above this limit are treated as megamorphic and are not inlined.
|
||
-->
|
||
</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
|
||
-->
|