1

PHPコマンドの実行とベストプラクティスに関して、誰かが私にいくつかの指針を教えてもらえますか?

現在、いくつかのネットバックアップデータを解析しようとしていますが、システムコールが返す大量のデータに関連する問題が発生しています。取得するデータの量を減らすために、私は次のようなことをしています。

$awk_command = "awk -F, '{print $1\",\"$2\",\"$3\",\"$4\",\"$5\",\"$6\",\"$7\",\"$9\",\"$11\",\"$26\",\"$32\",\"$33\",\"$34\",\"$35\",\"$36\",\"$37\",\"$38\",\"$39\",\"$40}'";
exec("sudo /usr/openv/netbackup/bin/admincmd/bpdbjobs -report -M $master_name -all_columns | $awk_command", $get_backups, $null);
foreach ($get_backups as $backup_detail)
    {
    process_the_data();
    write_data_to_db();
    }

受信するデータの量を制限するためにawkを使用しています。これがないと、約150 MBのデータを受信することになり、それを使用すると、はるかに管理しやすい約800kのデータを取得できます。

あなたはawkのたわごとが厄介だと私に言う必要はありません-私はすでにそれを知っています...しかし、自分自身(そして私のコード)を改善するために、誰かが代替案を提案できますか?

私は次のようなことを考えてproc_openいましたが、それが何らかの利益をもたらすかどうかは本当にわかりません。

4

1 に答える 1

1

スクリプトにデータ全体を読み込むのではなく、execを使用してデータをファイルに書き込みます。

exec("sudo /usr/openv/netbackup/bin/admincmd/bpdbjobs -report -M $master_name -all_columns | $awk_command > /tmp/output.data");

次に、メモリ効率の高い方法を使用して、ファイルを部分的に読み取ります。

ここを見てください: PHPでファイルを読み取るためのメモリをあまり消費しない方法

于 2012-08-02T09:03:20.240 に答える