-2

さらに解析するために、わずかに異なる URL を持つ多くのリンクを「読み取る」必要があります。このコードの使用:

    String charset = "UTF-8";
    System.setProperty("java.net.useSystemProxies", "false");
    //System.out.println(http);
    //System.out.println(html);
    URL pageToRead = new URL(http);

    URLConnection yc = pageToRead.openConnection();
    yc.setRequestProperty("Accept-Charset", charset);
    BufferedReader in = new BufferedReader(new InputStreamReader(
            yc.getInputStream()));

    String inputLine;
    FileWriter fstream = new FileWriter(html);
    BufferedWriter out = new BufferedWriter(fstream);

    while ((inputLine = in.readLine()) != null) {
        out.write(inputLine);
    }


    in.close();
    out.close();

変数に関する注意:http完全な URL を含む文字列です。html完全なファイル名を持つ文字列です。

2 つの質問:

  1. このコードを変更して URL をより速く読み取るにはどうすればよいですか?
  2. 多分私は間違っていて、問題は http サーバーにあります。多分それは私にページをより速く与えることができないだけです. それを確認する方法は?
4

2 に答える 2

0

通常、html (プロキシなど) を読み取る際のレイテンシーがやや高くなります。ただし、適切な Web サーバーは、多数の要求を同時に処理できます。

より多くのスループットを得るには、複数の http 読み取りを同時に実行する必要があります (スレッドプールを使用します)。

使用するサーバーに応じて、スループットが 10 ~ 20 倍向上します (また、クライアント OS が接続数に制限されていないかどうかにもよります)。

于 2012-12-24T17:40:46.277 に答える
0

次のようにして、コードの時間を計測し、各メソッドの実行にかかる時間を調べることができます。

long startTime = System.nanoTime();
methodToTime();
long endTime = System.nanoTime();

long duration = endTime - startTime;

それからどこかに印刷してください。

ソース: Java でメソッドの実行時間を計るにはどうすればよいですか?

于 2012-12-24T16:42:21.263 に答える