0

Webサービスを呼び出すアプリがあります。GZIPを使用した場合と使用しない場合で、この通話を完了するのにかかる時間を記録しました。GZIPを使用した場合と使用しない場合でアプリを5回実行しましたが、実際にはGZIPを使用した方が時間がかかりました。だから私はGZIPが効果がなかったか、それをうまく実装していないとしか思えません。なぜ変化がないのか、何か考えはありますか?

public String connect(String url) {



        HttpClient httpclient = new DefaultHttpClient();

        // Prepare a request object
        HttpGet httpget = new HttpGet(url);
        httpget.addHeader("Accept-Encoding", "gzip");

        // Execute the request
        HttpResponse response;
        try {
            long start = System.currentTimeMillis();
            response = httpclient.execute(httpget);
            // Examine the response status
            Log.i(TAG, response.getStatusLine().toString());






            // Get hold of the response entity
            HttpEntity entity = response.getEntity();
            // If the response does not enclose an entity, there is no need
            // to worry about connection release

            if (entity != null) {

                InputStream instream = response.getEntity().getContent();
                Header contentEncoding = response.getFirstHeader("Content-Encoding");
                if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
                    instream = new GZIPInputStream(instream);
                }

                // A Simple JSON Response Read
                //InputStream instream = entity.getContent();
                result = convertStreamToString(instream);
                Log.i(TAG, result);

                // A Simple JSONObject Creation
                //json = new JSONObject(result);



                // Closing the input stream will trigger connection release
                instream.close();
                long end = System.currentTimeMillis();
                long elapsed = (end - start);
                Log.e(TAG, "web call took ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" + elapsed);

            }

                } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         return result;

    }

結果:

GZIPなし:平均5回の実行= 2923ms

GZIPの場合:平均5回の実行= 3179ms

4

1 に答える 1

1

タイミングには少なくとも2つの主要な貢献があります。

  • クライアント側:接続速度とデコード速度
  • サーバー側:接続速度とエンコード速度

gzipエンコーディングは、サーバー側で静的または動的にすることができます。一部のコンテンツでは、クエリデータをすでに圧縮された形式で保存するのが理にかなっています。一部のコンテンツではそれを実行できず、サーバーで「圧縮エンジン」が占有されている可能性があります。

タイミングは、ADSL、WLAN、または直接イーサネット接続間で変更される可能性があります。

于 2012-11-05T16:14:51.753 に答える