-1

这种性能是否有效(在 Windows 服务器上)以执行由 php 脚本启动的 .exe 中的任务?

我是一名 C# .Net 编码员,发现直接在 C# 中编码我的后端 SQL 和需要安全性的第 3 方 API 函数更快/更容易,我想知道从长远来看,它是好是坏为了我的网站性能这样做。

启动可执行文件会在脚本中造成延迟,还是性能(php vs exe)取决于要完成的任务的长度?

[编辑]

对不起这个毫无价值的问题。我将在 SO 上搜索类似的线程并粘贴一些链接。

4

2 回答 2

2

显然,函数调用exec(或类似)会产生开销,但实际执行自然会以相同的速度进行(前提是您没有对输出做任何花哨的事情,例如将逐行数组存储作为执行之一功能确实)。与从 shell 运行程序相比,我无法想象调用延迟是显着的,所以我认为在效率方面没有太多可讨论的。

至于这是否是个好主意,不,可能不是。

于 2012-07-08T14:29:02.510 回答
1

用 PHP 编写前端代码并用更高效的语言(在您的情况下可能是 C#)编写业务逻辑是“性能有效的”。这通常在 SOA(面向服务的架构)中完成,它比您exec在同一台机器上执行的想法更具可扩展性,因为它允许工作负载的物理分布,但这显然对您不可行。

你的问题不是很清楚你想要什么exec,尤其是你是否需要以同步方式获得结果,但是在类 Unix 机器上,你可以通过用 a 终止命令在后台启动执行&,无论如何你也会需要重定向stdinstderr(有关更多信息,请参阅手册)。

我知道没有安全风险,只要你完全清理你的输入,并正确地转义你的 exec 参数。

Web 服务器的超时机制和在父进程被杀死时杀死子进程的机制将防止挂起进程造成损坏,除非它们被发送到后台。exec如果并发ed 进程被发送到后台,您可能需要一个限制机制。

于 2012-07-08T14:18:33.707 回答