0

as3 のソケットを使用して、単純なレイテンシ メーターを構築しようとしています。Chromes Flash Player を使用している場合、Linux と OS X の両方の Windows と Chrome で問題なく動作します。しかし、Linux または OS X で Adob​​e Flash Player を使用すると、結果がかなり悪くなります。

私のセットアップ、クライアント側は、100 Mbit/s スイッチによる 1 Gbit/s インターネット接続スロットルです。サーバー側では、1 Gbit/s のインターネット接続で Apache Web サーバーを使用しています。

小さな txt ファイルをダウンロードし、http 要求を送信した直後から Web サーバーから応答を受信するまでの時間を測定します。パケット アナライザーを使用して応答時間を測定すると、平均 1 ミリ秒であったため、ベースラインが得られました。

すべてのテストは、バージョン 11.6.602.180 で実行されます。ただし、Ubuntu の Adob​​e Flash Player は 11.2 r202 バージョンでした。Firefox 19.0.2 上の Adob​​e Flash プレーヤー (他のブラウザーも同様の結果でテストされました) および Chrome 26.0.1410.43 上の Google Flash プレーヤー。オペレーティング システムは、Windows 7 Enterprise (64 ビット)、Mac OS X 10.6.8 (64 ビット)、および Ubuntu 12.10 (64 ビット) です。各 OS/プレイヤーは 5 * 20 回テストされました。

Windows Adob​​e 平均 4.30 ミリ秒
Windows Chrome 平均 4.25 ミリ秒
OS X Adob​​e 66.67 ミリ秒
OS X Chrome 4.28 ミリ秒
Ubuntu Adob​​e 10.49 ミリ秒
Ubuntu Chrome 4.19 ミリ秒

doConnect();

private function doConnect():void{
    socket = new Socket(url,port);
    socket.addEventListener(Event.CONNECT, connectHandler);
    socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
private function connectHandler(event:Event):void{
    writeln("GET " + path + " HTTP/1.1");
    writeln("Host: " + url);
    socket.flush();
    nStart = new Date().time;

}
private function writeln(str:String):void{
    str +=  "\n";
    socket.writeUTFBytes(str);
}
private function socketDataHandler(event:ProgressEvent):void{
    var latecy:Number = new Date().time - nStart; // latency in ms
}

この問題を回避するためのアイデアはありますか?

4

0 に答える 0