]> granicus.if.org Git - php/commit
Interned strings unification for TS/NTS
authorAnatol Belski <ab@php.net>
Sat, 4 Mar 2017 09:39:13 +0000 (10:39 +0100)
committerAnatol Belski <ab@php.net>
Sat, 4 Mar 2017 09:39:13 +0000 (10:39 +0100)
commitc6982995504b6e21e8a5ade29cfb16a55196dc43
treea196886e83d43fa9ece21e127edde10e3ab57c3e
parenta07272e5b63b404ff7070637137e81634a886bd8
Interned strings unification for TS/NTS

Hereby, interned strings are supported in thread safe PHP. The patch
implements two types of interned strings

- interning per process, strings are not freed till process end
- interning per request, strings are freed at request end

There is no runtime interning.

With Opcache, all the permanent iterned strings are copied into SHM on
startup, additional copying into SHM might happen on demand.
28 files changed:
TSRM/TSRM.c
TSRM/TSRM.h
Zend/zend.c
Zend/zend_API.c
Zend/zend_builtin_functions.c
Zend/zend_closures.c
Zend/zend_compile.c
Zend/zend_constants.c
Zend/zend_exceptions.c
Zend/zend_execute.c
Zend/zend_execute_API.c
Zend/zend_globals.h
Zend/zend_ini.c
Zend/zend_language_parser.y
Zend/zend_object_handlers.c
Zend/zend_operators.c
Zend/zend_string.c
Zend/zend_string.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/opcache/ZendAccelerator.c
ext/opcache/zend_persist.c
ext/opcache/zend_persist_calc.c
ext/standard/array.c
ext/standard/string.c
main/main.c
main/streams/streams.c
sapi/phpdbg/phpdbg.c