1

パフォーマンスとベスト プラクティスの観点から、どの方法が正しいのか疑問に思っていました。

URL の配列があり、これらのページのコンテンツをスクレイピングしています。スクレイピングを処理する別のクラスがあります。

現在、配列リストをクラスに渡すと、クラスは配列の内容をループして、各配列の内容をスクレイピングします。これが最善の方法であると信じています。

私が考えていたもう 1 つの方法は、配列をループして、各 URL をクラスに渡すことでした。これは私には遅くなるようですが、よくわかりません。

2 つの方法が両方とも実行可能である場合、その長所と短所は何ですか?

4

2 に答える 2

5

最も明確で最も単純であると信じていることを行うことをお勧めします。

配列を渡すのはわずかに速く、数ナノ秒節約できるかもしれませんが、実行していることが数ナノ秒のオーダーでない限り、違いを見分けることができる可能性はほとんどありません。

于 2012-04-19T10:11:34.533 に答える
1

技術的には、各アイテムをクラスに渡すのは、ページごとのメソッド呼び出しのオーバーヘッドが追加されるため、遅くなります(これが実行していると仮定します)。

URLProcessor up = new URLProcessor();
for(String url: URLs) {
   up.process(url); // method call for each URL
}

それ以外の:

up.process(URLs); // a single method call

ただし、メソッドが何百万回も呼び出されない限り、これが実行速度に目立った影響を与えることはほとんどありません。プログラムでは、これよりもはるかに多くの重いタスクが発生しています。

于 2012-04-19T10:20:51.053 に答える