这种性能(在Windows服务器上)在php脚本.exe中执行任务是否有效?
我是一名 C# .Net 编码人员,发现直接在 C# 中编码更快/更容易,我的后端 SQL 和需要安全性的第三方 API 函数,我想知道从长远来看,这样做对我的网站性能是好是坏。
启动可执行文件会在脚本中造成延迟,还是性能(php 与 exe)取决于要完成的任务的长度?
[编辑]
对不起,这个毫无价值的问题。我将在SO上搜索类似的线程并粘贴一些链接。
显然,
函数调用exec
(或类似)会产生开销,但实际执行自然会以相同的速度进行(前提是您没有像执行函数之一那样对输出做任何花哨的事情,例如逐行数组存储)。与从 shell 运行程序相比,我无法想象调用延迟是显着的,所以我认为在效率方面没有太多可讨论的。
至于这是否是一个好主意,不,可能不是。
用 PHP 编写前端代码,并使用更高效的语言(在您的情况下可能是 C#)编写业务逻辑是"性能有效的"。这通常是在 SOA(面向服务的体系结构)中完成的,它比在同一台机器上执行exec
的想法更具可扩展性,因为它允许工作负载的物理分布,但这显然对您来说是不可行的。
你的问题不是很清楚你想exec
什么,特别是你是否需要以同步方式获得结果,但在类Unix机器上,你可以通过终止命令在后台启动执行&
,无论如何你还需要重定向stdin
和stderr
(有关更多信息,请参阅手册)。
据我所知,没有安全风险,只要您完全清理您的输入,并适当地转义您的 exec 参数。
Web 服务器的超时机制和在父服务器被杀死时杀死孩子的机制将防止挂起进程的损坏,除非它们被发送到后台。如果将并发exec
进程发送到后台,则可能需要限制机制。