2012-01-28 5 views
5

Sto provando a caricare un file HTML grande circa 2 MB (1927 KB per motivi di precisione) in un JEditorPane, e ci vogliono circa 65 secondi, sembra un bug del JTextPane/JEditorPane , ho letto anche diversi articoli sul web come this one, ma non ho potuto trovare una soluzione ...JEditorPane setText 2MB HTML ---> Prestazioni terribili !!! (65 secondi)

Ecco il codice che uso:

final String htmlContent = //Load a 2MB String 
previewPane.setContentType("text/html; charset=UTF-8");  
previewPane.setText(htmlContent); 

il metodo setText impiega circa 65 secondi per ottenere completamente eseguito come si può vedere nel mio registro delle applicazioni:

Set the html content(1927KB) of the Preview pane, loading time=68230ms 
Set the html content(1927KB) of the Preview pane, loading time=62693ms 
Set the html content(1927KB) of the Preview pane, loading time=66583ms 

C'è un modo per risolvere questo problema?

Circa 65 secondi per caricare 2MB di testo è uno spettacolo terribile su un Duo 2,93 GHz Intel Core 2 con 8GB di DDR RAM 3 ...

+0

'// Carica una stringa da 2 MB (leggi i prossimi 3 tempi di vita)' Quale caso d'uso giustifica il caricamento di quasi 2 MB di HTML? –

+0

È un contenuto di un report che voglio mostrare in un PreviewPane, il file 2MB non è così grande ... – aleroot

+0

Questa è una grande quantità di HTML. Ricorda che deve essere elaborato. Quindi, anche se 2MB non sembrano molto, dopo l'elaborazione e la creazione di tutti i componenti della GUI, l'ingombro della memoria può essere abbastanza grande. Prova ad aprire il tuo 2MB HTML con un browser o un altro editor HTML e confronta le prestazioni ... –

risposta

3

possono essere alcuni dei trucchi aiutano http://java-sl.com/JEditorPanePerformance.html

+0

Ho già provato con questi trucchi ma migliorano solo la fase di rendering ma non la fase di caricamento (seText) ... Nella mia domanda ho specificato che ho già provato questi trucchi ... – aleroot

+0

Cosa succede se si carica solo il documento? quanto tempo hai bisogno di caricare il documento appena creato di recente? Quanto tempo è necessario per il rendering del documento chiamando textPane.setDocument (docInstance)? – StanislavL

+0

Imposta il contenuto html (1927KB) nel riquadro di anteprima, tempo di caricamento = 109051 ms È peggio. – aleroot