Hi,
I have written a RFC about my patch at http://wiki.php.net/rfc/tls
The goal of this patch is to reduce the performance overhead of ZTS builds.
Since the initial patch I made more research on various implementations of
TLS: Linux, FreeBSD, Solaris, Windows. Based on what I found I wrote a new
patch to avoid the problems of the initial one and the results on bench.php
are as follows:
non-ZTS
3.7s
ZTS unpatched
5.2s
ZTS-patched, native TLS disabled
5.0s
ZTS-patched, native TLS enabled
4.2s
Regards,
Arnaud
Hi,
I updated the RFC.
I added benchmark tests on x86_64: Position independent code is the default
there and is as fast as non-PIC on IA-32. The initial patch using dynamic TLS
gives the same results as on IA-32 with static TLS.
I also tested the patch (with a few changes) on Windows Server 2008 with IIS
(older Windows cannot use TLS in LoadLibrary()-loaded DLLs). This works as
expected, but there are still some restrictions.
Regards,
Arnaud
On Sunday 24 August 2008 18:37:09 Arnaud Le Blanc wrote:
Hi,
I have written a RFC about my patch at http://wiki.php.net/rfc/tls
The goal of this patch is to reduce the performance overhead of ZTS builds.
Since the initial patch I made more research on various implementations of
TLS: Linux, FreeBSD, Solaris, Windows. Based on what I found I wrote a new
patch to avoid the problems of the initial one and the results on bench.php
are as follows:non-ZTS
3.7sZTS unpatched
5.2sZTS-patched, native TLS disabled
5.0sZTS-patched, native TLS enabled
4.2sRegards,
Arnaud