如何更改替代PHP缓存(APC)中的锁定机制?
题
我最近在Scribd的演讲中读到,Facebook对APC的各种锁定机制进行了基准测试,包括文件锁 (默认), ,IPC信号锁,Linux Futex锁,Pthread Mutex锁和自旋锁。您可以通过单击以下链接来查看此演示文稿: APC@facebook
我想知道是否有人知道是否已发布任何此源代码,也许是在GIT或SVN存储库中?从默认文件锁定转换为其他选择之一的速度好处似乎很重要。
解决方案
是的,它们包含在可用的源代码中 http://pecl.php.net/package/apc.
请注意,您必须更精确地在编译时选择它:在 。/配置 时间。这是相关选项的 。/配置:
--enable-apc-sem Enable semaphore locks instead of fcntl
--disable-apc-pthreadmutex Disable pthread mutex locking
--enable-apc-spinlocks Enable spin locks EXPERIMENTAL
如您所见,PTHread Mutex锁定现在已经是默认值了。
其他提示
vi /etc/php.d/99_apc.ini
然后设置:
; Locking type = spinlock
extension = apc-spinlocks.so
或者
; Locking type = IPC Semaphore
extension = apc-sem.so
等等
不隶属于 StackOverflow