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

时间:2020-03-05 18:54:32  来源:igfitidea点击:

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

当涉及到并发(线程,有人吗?)时,PHP的工具似乎差强人意,所以我想知道是否有解决方案可以适当地测试/调试它。

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

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

解决方案

回答

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

回答

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

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

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

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

回答

我们可以尝试使用可以同时发出多个请求的负载测试工具处理代码。 Jmeter浮现在脑海。