2012-07-02 9 views
6

Alcune pagine Web elaborate in Jsoup sono pesanti. Con "pesante" intendo che la pagina contiene molto HTML (supponiamo che la pagina sia già stata scaricata) o che richieda diverse iterazioni sullo stesso documento (creato solo una volta tramite Jsoup.parse()).Un modo per stimare o prevedere il tempo di elaborazione Jsoup di un blocco di HTML?

Per questo motivo, vorrei presentare all'utente una barra di avanzamento con un'ipotesi di quanto tempo è rimasto.

Un approccio è solo misurare il volume di HTML (in KB o MB) e trovare un fattore di velocità (purtroppo, totalmente dipendente dalla velocità del sistema su cui gira questo codice).

Un altro approccio è contare lo number of nodes?

A causa dell'ovvia natura deterministica di questo, sto chiedendo un problema?

Idee di modi migliori per gestire questo?

+0

Puoi dare più esempi del tipo di elaborazione? Nella mia esperienza, il Jsoup.parse di solito è il collo di bottiglia delle prestazioni su grandi html. –

risposta

1

Riepilogando le risposte finora: No, è non possibile stimare o prevedere il tempo di elaborazione Jsoup di un blocco di HTML.

Il motivo è, a parte il fatto che Jsoup.parse() è la componente in termini di tempo, Jsoup può essere eseguito su molte piattaforme/dispositivi, alcuni sono estremamente lento, alcuni sono molto veloci e non c'è un modo (attesa) per Jsoup per correlare le sue fasi/operazioni di elaborazione con l'architettura su cui viene eseguito.

0

Quello che vi direi di provare è:

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

long timeToProcess = end - start; 

Ma ho davvero che questo è inutile, dal momento che dipendono dal server pagina velocità di internet, la potenza di elaborazione. C'è solo troppo da prevedere. Inoltre ... L'API selettore Jsoup è ESTREMAMENTE veloce. Inoltre .. Il tempo che ci vorrà per connettersi è l'attesa più lunga. Che davvero non puoi prevedere. Spero che questo abbia aiutato

Problemi correlati