だから私はPHPスクリプトは、(たとえ終了後に実行を継続します)
は、リモートRESTサービスから〜70 XMLファイルを読み込み、比較的単純なPHPスクリプトを持っています。
解析では、SimpleXMLElementクラス(多くの新しいSimpleXMLElement()呼び出し)を使用してXMLファイルを読み取ります。
各配列にXMLファイルから関心のある属性がいくつかある連想配列を含むファイルjsonエンコードされた配列に出力します。
スクリプトの問題は、結果がファイルに出力されるよりもずっと後で終了することです。私は周りを見つけたが、そのような問題を引き起こす可能性のあるものは見つけられなかった。以下は私のスクリプトが何をしているのかを記述した簡単なコードです。
function parseFiles()
{
$fileData = array();
$parsedData = array();
// read files using curl, output is an array of SimpleXMLElements
readXMLFiles($fileData);
// for each XML object create an assoc array which contains attributes
// of interest, add it to $parsedData
parseData($fileData, $parsedData);
file_put_contents("test.txt", json_encode($parsedData));
/*
This is where the problem occures, the scipt outputs result to the file
MUCH faster than it ends execution for example file is created with data
in ~ 15 seconds but the script ends in 60 seconds
(so the exit() command took 45 seconds????)
*/
exit();
}
exit()に達すると、何らかの種類のガベージコレクションが発生する可能性がありますか?それらのXMLオブジェクトは比較的大きいです...また、私はWAMPスタックとPHP上でスクリプトを実行しようとしました、centos上で実行されているApache、問題はcentosマシンで発生しているようです。