Софтуерна техника, при която повтарящи се стрингове, които не се променят и са еднакви, например конфиг стрингове, не се съхраняват независимо един от друг, а се съхранява само един, и на всички места, където се използва, го достъпваме с указател.
Така се получава хеш структура, наречена string intern pool.
Освен че се пести памет, string interning също и ускорява сравняването на стрингове, защото вместо да се сравняват символ по символ, просто се сравняват дали указателите им са еднакви (a pointer equality test).
В PHP string interning e реализирано от OPcache библиотеката като имаме настройки като „opcache.interned_string_buffer
„.
opcache.interned_strings_buffer
– A pretty neat setting with like 0 documentation. PHP uses a technique called string interning to improve performance— so, for example, if you have the string „foobar“ 1000 times in your code, internally PHP will store 1 immutable variable for this string and just use a pointer to it for the other 999 times you use it. Cool. This setting takes it to the next level— instead of having a pool of these immutable string for each SINGLE php-fpm process, this setting shares it across ALL of your php-fpm processes. It saves memory and improves performance, especially in big applications. The value is set in megabytes, so set it to „16“ for 16MB. The default is low, 4MB.