私はPHPファイルの実行時間に問題があります。まずPHPファイルで何をしたかを教えてください。私はDBからデータを取得するためにクエリを書き込むためにCSVファイルを生成する必要があります。私のクエリは100万レコードを返し、PHPのfwrite()を使用してCSVファイルにデータを書き込んでいます。しかし、私のスクリプト76.481406211853
秒は1つのcsvファイルを生成するために撮影された100万のデータが含まれています。どのようにこの実行時間を短縮するには?時々私は致命的なエラーを持っています:PHPの実行時間を短縮する方法と、PHPでini_set()を設定する方法は?
Fatal error: Allowed memory size of 1048576 bytes exhausted (tried to allocate 793601 bytes)
そう、どのように管理するのですか?ここ
PHPコード:
<?php
// start script
$time_start = microtime(true);
echo_memory_usage();
//My logic here
// End of Script
echo 'Total execution time in seconds: ' . (microtime(true) - $time_start);
echo_memory_usage();
function echo_memory_usage() {
$mem_usage = memory_get_usage(true);
if ($mem_usage < 1024)
echo $mem_usage." bytes";
elseif ($mem_usage < 1048576)
echo round($mem_usage/1024,2)." kilobytes";
else
echo round($mem_usage/1048576,2)." megabytes";
echo "<br/>";
}
?>
私の結果は
512 kilobytes //Script start
1006.25 megabytes // script End
Total execution time in seconds: 76.481406211853
し、正常に100万件のレコードを持つCSVファイルを書き込む..ですが、実行時間が長すぎると、いつか致命的なエラーがスローされます。またini_set()を設定する方法も?設定する必要があるのでini_set('memory_limit', '1023M');
私は1023を設定した理由は、スクリプトの実行後のメモリ使用量は1006.25ですから、1023Mを設定する必要がありますか?それは正しい方法ですか?
を明確にするために、10 LAKSが100万を意味するのでしょうか? – Steve
あなたが表示しているコードは、あなたがやっていることをまったく表示していません。「//ここに私のロジックがあります」と表示されます。この問題を解決する最良の方法は、DBを照会&その後、一度に結果セット1行をループ&ファイルにエントリを書き込むことですが、任意の関連するコードを見ることなく、それはに行くことなく、また、それ –
を改善する方法を提案することは難しいです幅広い視聴者OPへ –