测试/调试/修复PHP并发问题的工具?

测试/调试/修复PHP并发问题的工具?

Tools to test/debug/fix PHP concurrency issues?

我发现自己用PHP的memcached做了一些相对高级的事情。考虑和解决由缓存的无锁特性引起的竞争条件和并发问题已经成为一种精神上的努力。

关于并发(线程,有人吗?),PHP的工具似乎差强人意,所以我想知道是否有解决方案可以正确地测试/调试。

我不想等到两个用户请求两个将同时作为并行进程运行的脚本并引起并发问题,这会让我挠头,或者直到它滚滚而来之前我可能都不会注意到一个clusterfsck。

我应该知道的任何魔术PHP并发魔杖吗?


PHP不是为多线程设计的语言,我认为它永远不会。

如果您需要互斥功能,PHP可以提供一个Semaphore函数。

Memcache没有互斥功能,但是可以使用Memcache :: add()方法进行仿真。

如果您正在使用MySQL数据库,并试图防止某种竞争条件损坏,则可以使用lock table语句,或使用事务。


您可以尝试使用可以同时发出多个请求的负载测试工具处理您的代码。我想到了Jmeter。


不是专门针对此问题,而是:FirePHP?


推荐阅读