2012-01-28 36 views
5

Tôi đang cố gắng tải một tệp HTML có dung lượng lớn khoảng 2MB (1927KB vì độ chính xác) vào JEditorPane và mất khoảng 65 giây, có vẻ như đó là lỗi của JTextPane/JEditorPane , tôi đã đọc cũng nhiều bài báo về các trang web như this one, nhưng tôi không thể tìm thấy một giải pháp ...JEditorPane setText 2MB HTML ---> Hiệu suất khủng khiếp !!! (65 giây)

Dưới đây là đoạn code mà tôi sử dụng:

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

phương pháp setText mất khoảng 65seconds để có được hoàn toàn được thực hiện như bạn có thể thấy trong nhật ký ứng dụng của tôi:

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ó cách nào để giải quyết vấn đề này không?

Khoảng 65 giây để tải 2MB của văn bản là một hiệu suất khủng khiếp trên bộ xử lý Intel Core 2 Duo 2.93GHz với 8GB DDR 3 RAM ...

+0

'// Tải chuỗi 2MB (đọc trong 3 lần tiếp theo)' Trường hợp sử dụng nào chứng minh việc tải gần 2MB HTML? –

+0

Đó là nội dung của báo cáo mà tôi muốn hiển thị trong tệp PreviewPane, tệp 2MB không quá lớn ... – aleroot

+0

Đó là một lượng lớn HTML. Hãy nhớ rằng nó phải được xử lý. Vì vậy, ngay cả khi 2MB không có vẻ rất nhiều, sau khi xử lý và tạo ra tất cả các thành phần GUI bộ nhớ có thể là khá lớn. Hãy thử mở HTML 2MB của bạn bằng trình duyệt hoặc trình chỉnh sửa HTML khác và so sánh hiệu suất ... –

Trả lời

3

Có thể là một số thủ thuật giúp http://java-sl.com/JEditorPanePerformance.html

+0

Tôi đã thử với các thủ thuật này nhưng chúng chỉ cải tiến giai đoạn dựng hình chứ không phải giai đoạn tải (seText) ... Trong Câu hỏi của tôi tôi đã chỉ định rằng tôi đã thử các thủ thuật đó ... – aleroot

+0

Điều gì gì xảy ra nếu bạn chỉ tải Tài liệu? bạn cần bao nhiêu thời gian để tải tài liệu thuần túy mới được tạo? Bạn cần bao nhiêu thời gian để hiển thị Tài liệu bằng cách gọi textPane.setDocument (docInstance)? – StanislavL

+0

Đặt nội dung html (1927KB) trong ngăn xem trước, tải thời gian = 109051ms Tệ hơn. – aleroot

Các vấn đề liên quan