2012-07-03 4 views

답변

7

답장을 보내십시오. 심지어 상대적으로 큰 문서, Document.html()의 속도 저하를 설명 할 수 있습니다 문자열이 이미 좋은 일이 대신하여 StringBuilder 및 StringBuilder.toString()String.trim()의 사용을 사용

public String html() { 
    StringBuilder accum = new StringBuilder(); 
    html(accum); 
    return accum.toString().trim(); 
} 

다음 Element.html() 방법으로 구현됩니다. 문서가 자식 노드를 많이 포함 된 경우

private void html(StringBuilder accum) { 
    for (Node node : childNodes) 
    node.outerHtml(accum); 
} 

따라서, 느린 될 것입니다 :

그러나 중간에

, 우리의 방법은 문서의 모든 자식 노드를 통해 루프 오버로드 버전, Element.html(StringBuilder)를 호출 .

더 빠른 구현이 가능한지 여부는 흥미로울 것입니다. Jsoup가 Jsoup.parse() 통해 제공 한 원료 HTML의 캐시 버전을 저장하는 경우, 예를 들어

. 물론 옵션으로 이전 버전과의 호환성 및 메모리 사용 공간을 최소화 할 수 있습니다.

관련 문제