我最近在Scribd的一个演示文稿中读到,Facebook已经为APC的各种锁定机制进行了基准测试,包括文件锁(默认),IPC信号量锁,linux Futex锁,pthread互斥锁和自旋锁.您可以通过单击以下链接查看此演示文稿:APC @Facebook
我想知道是否有人知道这个源代码是否已经发布,可能是在某个地方的git或SVN存储库中?从默认文件锁定切换到其他选项之一的速度优势似乎很重要.
是的,它们包含在http://pecl.php.net/package/APC中提供的源代码中.
请注意,您必须在编译时选择此项,更准确地说:在./configure时.以下是./configure的相关选项:
--enable-apc-sem Enable semaphore locks instead of fcntl --disable-apc-pthreadmutex Disable pthread mutex locking --enable-apc-spinlocks Enable spin locks EXPERIMENTAL
如您所见,pthread互斥锁定现在已经是默认值.