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