簡単に説明すると、「with M/G suffixe」です。これは、8M に設定すると 8 メガバイトが割り当てられるか、1G で 1 ギガバイトのメモリが割り当てられることを意味します。
説明が難しいのは、APC がオペコードをコンパイルしてキャッシュするときに内部的に使用される文字列を格納するためのキャッシュであることです。
config 値はこの変更で導入され、変更の大部分はapc_string.cを APC プロジェクトに追加することでした。その C ファイルで定義されている主な関数は、apc_compile.c でapc_new_interned_string
使用されます。apc_string_pmemcpy
文字列を格納するための残りの APC モジュール。
たとえば、apc_compile.c で
/* private members are stored inside property_info as a mangled
* string of the form:
* \0<classname>\0<membername>\0
*/
CHECK((dst->name = apc_string_pmemcpy((char *)src->name, src->name_length+1, pool TSRMLS_CC)));
APC が文字列を保存しようとすると、関数apc_new_interned_string
は文字列のハッシュを実行して、その文字列が既にメモリに保存されているかどうかを確認し、既にメモリに保存されている場合は、保存された文字列の前のインスタンスを返します。
その文字列がまだキャッシュに格納されていない場合にのみ、文字列を格納するために新しいメモリが割り当てられます。
PHP-FPM を使用して PHP を実行している場合、格納された文字列のキャッシュが単一のプール内のすべてのワーカー間で共有されていることを 90% 確信していますが、それでも再確認しています。
共有文字列の保存に割り当てられる全体のサイズは、PHP の起動時に割り当てられます。動的に割り当てられるわけではありません。そのため、実際にはまだほとんど文字列がキャッシュされていないにもかかわらず、APC が文字列キャッシュに使用された 8MB を示していることが予想されます。
編集
これはそれが何をするのか答えますが、共有文字列バッファーの使用量を確認する方法がわからないため、何に設定する必要があるかを知る方法はありません。