gpt4 book ai didi

php - Node.js PHP 性能

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:07 28 4
gpt4 key购买 nike

这是我预期的场景:我有一个用 PHP 编写的应用程序,它有一个域层(配有验证器等)。我想将 node.js 用于我的 Web 服务,以提高高并发情况下的性能。如果我为我的 php 域层创建一个命令行界面(见下文),这会给我带来比仅使用 Apache 更好的性能吗?这是一个好方法吗?我是 Node.js 的新手,正在尝试了解自己的方位。 Node:领域层的命令行接口(interface)将返回json编码的对象。

//Super simple example:
var http = require("http");
var exec = require('child_process').exec;

function onRequest(request, response) {
exec("php domain-cli.php -model Users -method getById -id 32", function(error, stdout, stderr){
response.writeHead(200, {"Content-Type": "application/json"});
response.write(stdout);
response.end();
});

}

http.createServer(onRequest).listen(80);

最佳答案

will this give me better performance than just using Apache?

你必须测量一下才能确定,但​​我非常怀疑。

Node 的性能优势来自于它是基于 select() 的服务器,因此它避免了线程和阻塞(使用昂贵的上下文切换和 CPU 管道停顿),而支持非阻塞 IO(又名绿色线程)。如果您将所有工作转移到 PHP,那么您基本上只是使用 Node 作为前端服务器——此时您应该只使用 Apache,因为 mod_php 几乎会做您正在做的事情。只有 mod_php 可以做得更好,因为它可以使 PHP 解释器在内存中保持热状态,而不必像您所做的那样对每个请求启动一个新的解释器。

Is this even a good way to do this?

本质上,您所做的就是使用 Node.js 重新实现 CGI。所以我会说不——如果 CGI 是你想要的,那么有很多现有的实现!

关于php - Node.js PHP 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11183796/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com