mirror of
https://github.com/php/php-src.git
synced 2024-09-23 10:57:26 +00:00
Reuse interned strings from opcache SHM, if possible.
This commit is contained in:
parent
a87484aa22
commit
1dd224dd12
@ -1375,7 +1375,7 @@ php_mysqlnd_rset_field_read(void * _packet)
|
||||
meta->root_len = total_len;
|
||||
|
||||
if (meta->name != mysqlnd_empty_string) {
|
||||
meta->sname = zend_string_init(meta->name, meta->name_length, packet->persistent_alloc);
|
||||
meta->sname = zend_new_interned_string(zend_string_init(meta->name, meta->name_length, packet->persistent_alloc));
|
||||
} else {
|
||||
meta->sname = ZSTR_EMPTY_ALLOC();
|
||||
}
|
||||
|
@ -346,10 +346,6 @@ static inline void accel_unlock_all(void)
|
||||
* it creates interned strings in shared memory when saves a script.
|
||||
* Such interned strings are shared across all PHP processes
|
||||
*/
|
||||
static zend_string *accel_new_interned_string_for_php(zend_string *str)
|
||||
{
|
||||
return str;
|
||||
}
|
||||
|
||||
static void accel_interned_strings_restore_state(void)
|
||||
{
|
||||
@ -491,6 +487,19 @@ zend_string *accel_new_interned_string(zend_string *str)
|
||||
return p->key;
|
||||
}
|
||||
|
||||
static zend_string *accel_new_interned_string_for_php(zend_string *str)
|
||||
{
|
||||
if (ZCG(counted)) {
|
||||
zend_string *ret = accel_find_interned_string(str);
|
||||
|
||||
if (ret) {
|
||||
zend_string_release(str);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
/* Copy PHP interned strings from PHP process memory into the shared memory */
|
||||
static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_interned_string)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user