6

私がJsoupで処理するいくつかのWebページは重いです。「重い」とは、ページに大量のHTMLが含まれているか(ページがすでにダウンロードされていると仮定します)、同じドキュメントで複数回の反復が必要なことを意味します(Jsoup.parse()を介して1回だけ作成されます)。

そのため、残り時間を推測できるプログレスバーをユーザーに提示したいと思います。

1つのアプローチは、HTMLの量(KBまたはMB)を測定し、速度係数を算出することです(残念ながら、このコードが実行されているシステムの速度に完全に依存します)。

別のアプローチは、ノードの数を数えることです。

これの明らかな非決定論的性質のために、私はトラブルを求めていますか?

これを処理するためのより良い方法のアイデア?

4

2 に答える 2

1

これまでの回答の要約:いいえ、HTMLのチャンクのJsoup処理時間を推定または予測することはできません。

その理由は、Jsoup.parse()時間のかかるコンポーネントであるという事実を除けば、Jsoupは多くのプラットフォーム/デバイスで実行でき、非常に遅いもの、非常に速いもの、そしてJsoupがその処理を相互に関連付ける方法(待機)がないためです。それが実行されるアーキテクチャでのステージ/操作。

于 2012-10-19T14:52:46.373 に答える
0

私があなたに試してみることをお伝えしたいのは:

long start = System.currentTimeInMilis();
//Processing
long end = System.currentTimeInMilis();

long timeToProcess = end - start;

しかし、ページサーバー、インターネット速度、処理能力に依存しているので、これは本当に役に立たないと思います。予測することが多すぎます。また...JsoupセレクターAPIは非常に高速です。また..接続にかかる時間は、より長い待ち時間です。あなたが本当に予測できないもの。お役に立てば幸いです

于 2012-07-02T11:39:57.837 に答える