簡體   English   中英

在“windows + apache + php5.4”下運行“exec()”比命令行慢

[英]running “exec()” under “windows+apache+php5.4” slower than command line

出於某種原因,我需要在Windows + PHP中運行C ++程序。 PHP代碼如:

$start = microtime();
exec("test.exe");
$end = microtime();

當我在命令行中將這個php文件作為php test.php運行時,“test.exe”告訴它的成本時間是11秒。 但我在瀏覽器中使用apache運行它,如localhost/test.php ,它最終輸出成本為252s。

在分叉新進程或其他什么時,apache是​​否有任何限制?


順便說一下,“test.exe”是我寫的用windbg分析數據的程序。

我使用一些數據來測試它的性能。

一世。 直接使用“test.exe”

CDumpAnalyze::Analyze time cost[2.328000]

II。 用php命令行調用。

$start = microtime();
system("cd F:\\DumpPlatform\\bin\\server && test.exe --cfg=dump_config.ini --gameversion=10000");
//exec("dir");
$end = microtime();

echo $start."\n";
echo $end."\n";

CDumpAnalyze::Analyze time cost[2.982000]
0.09448800 1378104101
0.11078900 1378104104

III。 用apache運行

CDumpAnalyze::Analyze time cost[63.158000] 
0.53862700 1378104642 
0.75394800 1378104705

顯然, test.exe時間成本執行沒有區別。 因此,差異與您的Web服務器及其處理PHP腳本的方式有關。 Apache是​​一個Thread Safe Web服務器,並且存在許多調度和其他進程表,以便管理線程安全性。 此外,您的系統搜索從Apache exe文件到test.exe文件的路徑所花費的時間可能會在超出您的情況下的時間成本中發揮重要作用。

您可以在其他Web服務器上測試您的程序並發布結果以進行精確比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM