ホームページ >バックエンド開発 >PHPチュートリアル >ネットワーク速度を測定するためのスクリプトをテストしています。何が問題なのかわかりません。

ネットワーク速度を測定するためのスクリプトをテストしています。何が問題なのかわかりません。

WBOY
WBOYオリジナル
2016-06-23 13:25:511331ブラウズ

/*==创建将传输给用户的数据文件==*/  $fp=fopen("cs.txt","w");  for($i=0;$i<1704000;$i++){      fwrite($fp,"bandwidthkh");  }  fclose($fp);// ==现在编写计算网络速度的脚本=function microtime_float(){    list($usec, $sec) = explode(" ", microtime());    return ((float)$usec + (float)$sec);}$data=file_get_contents("cs.txt");$start=microtime_float();  $fsize=filesize("cs.txt")/1024;     //  filesize返回文件大小的字节数echo "向客户端发送" . $fsize . "KB数据<br>";  echo "<!--" . $data . "-->";  $stop=microtime_float();$duration=($stop-$start);echo $duration."s<br>";  $speed=round($fsize/$duration,2);  echo "Your network speed:$speed KB/sec";

結果は

1秒間に1gに達しました これは不可能ですか?


ディスカッションへの返信(解決策)

可能です!
テストしているのは
$fsize=filesize("cs.txt")/1024; // filesize はファイル サイズのバイト数を返します
echo "Send to client" $fsizebed867c5ba9caed85a0069231ad61cd5";
これら 3 つの文の実行速度はネットワーク速度とは関係ありません

microtime(true) は秒数を取得しますfloat 型で
繰り返し不要 microtime_float 関数を書く

以前、ajax を使ってファイルをアップロードしたところ、数秒で数ギガバイトのファイルがアップロードされていたので、ローカルコンピュータをサーバーとクライアントではこの速度は正常です

!
テストしているのは
$fsize=filesize("cs.txt")/1024; // filesize はファイル サイズのバイト数を返します
echo "Send to client" $fsizebed867c5ba9caed85a0069231ad61cd5";
これら 3 つの文の実行速度はネットワーク速度とは何の関係もありません


これはなぜでしょうか?
すごい
この JS スクリプトは問題ないはずですよね?

microtime(true) が取得するのは float 型の秒数です
microtime_float 関数を記述する必要はありません


ありがとうございます

ネットワーク速度は、データ ブロックが送信されるまでの時間を計算することによって測定されますA to B. 投稿したものは、一方的に計算するコードです
​​ #4は理論的には可能ですが、双方の時計が一致していないと誤差が大きくなります

ajaxを使ってファイルをアップロードしたところ、複数のファイルがアップロードされました数秒でギガバイトがアップロードされたので、ローカルコンピューターをサーバーとクライアントの両方として使用すると、この速度は正常です


LANの速度は1秒あたり数十Mのようです?

以前 ajax を使ってファイルをアップロードしたときは、数秒で数ギガバイトのファイルがアップロードされていたので、ローカルコンピュータをサーバーとクライアントの両方として使用する場合は標準的な速度だと思います

この場合、 インターネット速度だと言えますか?冗談を言わないでください
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。