天天看点

php与rest的关系,PHP与节点REST-API

你写了:

cause it’s not made asynchronously when using PHP

无论如何,我用几种语言实现了相同的REST API服务器,并在同一台机器(Ubuntu Linux 16.04,i7 Intel NUC,16GB RAM)上进行了测试,并发现:

> Java,14000 req / sec (source code)

>去,12000 req / sec (source code)

> PHP 7,6500 req / sec (source code)

> C#(.net Core),5000 req / sec (source code)

> Node.js,4200 req / sec (source code)

请注意,Node.js是唯一无法有效使用多个核心的平台.

为了模拟您的要求,我尝试将一个15ms的usleep添加到PHP,并将一个15ms的setTimeout添加到Node.js,发现当用2000个并发请求命中它时Node.js的吞吐量更高(4300 vs 1800 req /秒),但也有更高的延迟(450 vs 130 ms / req).可能是因为它只使用一个核心并且必须响应许多事件.使用事件循环可能导致具有更高吞吐量的更高延迟.使用Apache(pre)fork可能更昂贵,但能够实现更高的并发性.

我不确定这一切对你有什么帮助,但它可能会为你自己的研究提供一个起点.玩得开心!