Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-使用PHP在exe中执行任务时的性能与使用PHP执行相同任务时的性能_Php_Performance_Exe - Fatal编程技术网

PHP-使用PHP在exe中执行任务时的性能与使用PHP执行相同任务时的性能

PHP-使用PHP在exe中执行任务时的性能与使用PHP执行相同任务时的性能,php,performance,exe,Php,Performance,Exe,在Windows服务器上执行由php脚本启动的.exe中的任务时,这种性能有效吗 我是一名C.Net程序员,发现直接在C中编写需要安全性的后端SQL和第三方API函数更快/更容易,我想知道从长远来看,这样做对我的网站性能是好是坏 启动可执行文件是否会在脚本中造成延迟,或者php与exe的性能是否取决于要完成的任务的长度 [编辑] 对不起,这个没用的问题。我将在SO上搜索类似的线程并粘贴一些链接。用PHP编写前端代码,并用一种更高效的语言编写业务逻辑(在您的案例中可能是C语言)对性能有效。这通常是

在Windows服务器上执行由php脚本启动的.exe中的任务时,这种性能有效吗

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

启动可执行文件是否会在脚本中造成延迟,或者php与exe的性能是否取决于要完成的任务的长度

[编辑]


对不起,这个没用的问题。我将在SO上搜索类似的线程并粘贴一些链接。

用PHP编写前端代码,并用一种更高效的语言编写业务逻辑(在您的案例中可能是C语言)对性能有效。这通常是在SOA面向服务的体系结构中完成的,它比您在同一台机器上执行exec的想法更具可伸缩性,因为它允许工作负载的物理分配,但显然这对您来说是不可行的

您的问题不是很清楚要执行什么,特别是您是否需要以同步方式执行结果,但是在类Unix的机器上,您可以通过使用&终止命令在后台启动执行,而且无论如何,您还需要重定向stdin和stderr。有关详细信息,请参阅

据我所知,只要您完全清理输入,并对exec参数进行属性转义,就不会有安全风险


web服务器的超时机制和在父进程被杀死时杀死子进程的机制将防止挂起进程造成的损坏,除非它们被发送到后台。如果并发执行的进程被发送到后台,则可能需要限制其数量。

显然,调用exec或类似函数会产生开销,但实际执行速度相同,当然,前提是您不会像一个执行函数那样对输出进行任何处理,比如逐行数组存储。我无法想象与从shell运行程序相比,调用延迟会有多大,因此我认为在效率方面没有太多可讨论的


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

你为什么首先需要PHP?如果你打算使用c,我看不出有任何PHP的必要。我不是c语言的人,但它不支持Web服务吗?用PHP启动一个.exe意味着您将使用类似exec的东西,这可能会带来安全风险。相反,对于SQL,请考虑编写用户定义的函数UDF,甚至可能是web服务器的一个模块,其中包含需要从PHP调用的所有功能。如果您可以使用C开发整个web,那当然会更好。通过PHP启动exe应该不会对性能造成任何损失,问题只在于可执行程序做什么以及你如何处理它。当一个线程以一些包含“愚蠢”一词的评论开始时,我猜还会有奇怪的“愚蠢”否决票。你为什么认为这可能是个坏主意?你能详细解释一下吗?我也很好奇,为什么这可能是一个糟糕的想法。我想我说得太过火了。这不一定是个坏主意,但当我发现自己这么做的时候,我通常会觉得自己提出了一个不雅观的解决方案。在安全问题上,只要适当小心,它可以防水。然而,在以后的一些维护工作之前,总是有等待休眠的错误空间——这可能不需要产生风险,尤其是在规则并不总是那么严格的窗口上,并且混乱造成的潜在损害更大。