2012-07-02 10 views
6

Một số trang web tôi xử lý ở Jsoup rất nặng. Bởi "nặng" Tôi có nghĩa là trang chứa nhiều HTML (giả sử trang đã được tải xuống) hoặc yêu cầu nhiều lần lặp lại trên cùng một tài liệu (chỉ được tạo một lần qua Jsoup.parse()).Một cách để ước tính hoặc dự đoán thời gian xử lý Jsoup của một đoạn mã HTML?

Vì lý do đó, tôi muốn trình bày cho người dùng một thanh tiến trình có khả năng nhận biết thời gian còn lại.

Một cách tiếp cận là chỉ đo khối lượng HTML (bằng KB hoặc MB) và đưa ra một hệ số tốc độ (không may, hoàn toàn phụ thuộc vào tốc độ của hệ thống mà mã này chạy).

Một cách tiếp cận khác là đếm số number of nodes?

Do tính chất xác định rõ ràng về điều này, tôi có đang kêu gọi sự cố không?

Ý tưởng về các cách tốt hơn để xử lý vấn đề này?

+0

Bạn có thể cung cấp thêm ví dụ về loại xử lý không? Theo kinh nghiệm của tôi, Jsoup.parse thường là nút cổ chai hiệu suất trên html lớn. –

Trả lời

1

Tóm tắt câu trả lời cho đến thời điểm này: Không, đó là không phải có thể ước tính hoặc dự đoán thời gian xử lý Jsoup của một đoạn HTML.

Lý do là, ngoài thực tế là Jsoup.parse() là thành phần tốn thời gian, Jsoup có thể chạy trên nhiều nền tảng/thiết bị, một số rất chậm, một số rất nhanh và không có cách nào (chờ) Jsoup tương quan với các giai đoạn/hoạt động xử lý của nó với kiến ​​trúc mà nó chạy.

0

Những gì tôi muốn nói với bạn để thử là:

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

long timeToProcess = end - start; 

Nhưng tôi thực sự nghĩ rằng đây là vô ích, vì bạn phụ thuộc vào máy chủ trang, tốc độ internet, sức mạnh xử lý. Có quá nhiều thứ để dự đoán. Ngoài ra ... API chọn Jsoup là EXTREMELY nhanh. Ngoài ra .. Thời gian mà nó sẽ mất để kết nối là chờ đợi lâu hơn. Mà bạn thực sự không thể dự đoán được. Hy vọng rằng đã giúp