4

実行時間に関する Web サーバーの状況を把握するために、助けが必要です。サーバーが返す文字数が 41000 ~ 40KB を超える場合に問題があることに気付きました。

だから私はスクリプトをやった:

<?php
    $php_start_time = MICROTIME(TRUE);
    echo $_GET['i'].':';
    for($i=0;$i<=$_GET['i'];$i++) { echo 'a'; }
    echo '<br>runtime: '.(MICROTIME(TRUE) - $php_start_time);
?>

そして、複数のブラウザーで、それぞれ 10 回以上試してみました。

$_GET['i']=40952 の場合、約0.013...msになります

$_GET['i']=40953 の場合、約0.679...msになります

1文字だけで0.666の差?

さまざまな場所 (オンライン プロキシ) からページの結果を取得しようとすると、実行時間が大きく異なることがわかりました。

だから、距離が関係していると思います。私は EU にいますが、サーバーは米国にあります。

この問題を修正する方法が見つかるまで、スクリプトはhttp://selfreveal.com/speed_test_1.php?i=40953で入手できます。

また、phpinfo(): http://selfreveal.com/phpinfo.php

4

3 に答える 3

0

私の最初の推測では、メモリ制限に達していて、ガベージコレクタが起動しています。メモリ制限を増やしてみてください。

ini_set('memory_limit'. '128M');
于 2012-06-05T19:57:53.510 に答える
0

タイミングは常に同じとは限りません。コンピューター/サーバーが別のプロセスを処理している可能性があり、現在実行中の他のプロセスが遅くなる可能性があります。

100x または 1000x で実行してから、平均値を取得してください。違いがほとんどなくなっていることがわかります。

于 2012-06-05T19:58:36.513 に答える
0

flush();の直後に追加しecho 'a';て再テストできますか? andを使用して、内部バッファ(OSに依存)などではないことを確認する
こともできますob_start()ob_flush()

于 2012-06-05T20:22:11.003 に答える