PHPでどちらが速いですか:
echo file_get_contents('http://example.com/file.txt');
また
$file = file_get_contents('http://example.com/file.txt'); echo $file;
メニューなどにサーバー側インクルード ( require('/var/www/menu.php');
) を使用していますが、これを特定のもの (他のドメインなど) に使用したい
ありがとう
PHPでどちらが速いですか:
echo file_get_contents('http://example.com/file.txt');
また
$file = file_get_contents('http://example.com/file.txt'); echo $file;
メニューなどにサーバー側インクルード ( require('/var/www/menu.php');
) を使用していますが、これを特定のもの (他のドメインなど) に使用したい
ありがとう
非常に大きなファイルのすべてのページでこの方法を大量に使用すると、余分な変数によってメモリ領域が浪費されます。したがって、より良いアプローチは次のようになります。
echo file_get_contents('http://example.com/file.txt');
file_get_contents() と fread() のどちらの関数がより高速であるかを尋ねる方がよいでしょう。答えは、ファイルが 1MB または 2MB を超える場合は、パフォーマンスが向上する file_get_contents() を使用することでした。
ここでベンチマークを見ることができます:
File Read Type Average Execution Time Type of File
file_get_contents() 0.3730ms Small
fread() 0.1108ms Small
file_get_contents() 0.012ms Large
fread() 0.019ms Large
大きいファイルは 2.3MB、小さいファイルは約 3.0KB でした。
小さなファイルに対して両方の関数を 100,000 回実行し、大きなファイルに対して 1 回だけ実行しました。
違いが何であれ、もしあれば、file.txt
そもそもコンテンツをフェッチするためのHTTPリクエストを作成する場合と比較して、100%無視できます。あなたが何を意味するかを書いてください。変数が必要ない場合は、使用しないでください。
私は小さなテストを行いましたが、あなたのケースでどちらがより速くなるかはわかりません。マイクロタイムは私の意見ではスピードをテストするための素晴らしいツールです。
<html>
<body>
<?php
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
echo "<textarea>".file_get_contents('http://in.gr')."</textarea>";
$time_end = microtime_float();
$time = $time_end - $time_start;
echo $time;
$time_start = microtime_float();
$file = file_get_contents('http://in.gr'); echo "<textarea>".$file."</textarea>";
$time_end = microtime_float();
$time = $time_end - $time_start;
echo $time;
?>
</body>
</html>
$file
uは複数の操作に変数を使用できるため、使用することをお勧めします。2つの間の時間はごくわずかです。
答えは質問のように簡単です:
1行目-echo file_get_contents('http://example.com/file.txt');
変数の初期化がなく、メモリ内にそのためのストレージが収集されないため、2行目よりも高速になります。さらに、PHP(これは弱い型付けです)では、変数の初期化にはコストがかかります。しかし、ここでエコーするのではなく、別の場所で $file を使用する場合は、この変数を初期化する必要があります。