2013-11-26 2 views
2

MarkingBuilder보다 큰 XML 문서를 작성하는 데 StreamingMarkupBuilder가 더 적합하다고 여러 곳에서 읽었습니다. 그러나 나는 그것이 무엇인지에 관해 확실한 답을 찾을 수 없었습니다.StreamingMarkupBuilder가 큰 문서를 작성하는 데 MarkupBuilder보다 성능이 좋은 이유

누군가 StreamupMarkupBuilder가 MarkupBuilder보다 큰 문서를 작성하는 것이 더 나은 이유를 설명해 주실 수 있습니까?

답변

1

내가보기에 주요 차이점은 Identation이있는 오버 헤드입니다. MarkupBuilder는 스트리밍 작성기가 한 줄 출력을 생성 할 때 prettyPrinted XML 문자열을 만들기 위해 많은 작업을 수행합니다.

제 생각에는 IndentPrinter를 제공 할 수 있으므로 오버 헤드를 최소화 할 수 있습니다.

동일한 질문이 here이지만 너무 명확하지 않습니다.

이름으로 스트리밍이 스트림에서 직접 데이터를 쓰고 스트리밍되지 않는 버전으로 메모리 내 문서 구조를 축적해야한다고 제안해야합니다. 그러나 StreamingMBOrdinary MB의 출처에서 MB는 불필요한 데이터를 저장한다는 핵심 차이점을 찾을 수 없습니다.

그래서 들여 쓰기가 병목 일뿐입니다.

1

제 생각에 streamingMarkupBuilder와 MarkupBuilder는 SAX와 DOM과 같은 비트입니다. 두 번째 것은 메모리에서 문서의 전체 구조를로드합니다. 첫 번째 문서는 문서가 올 때 문서를 처리하고로드 할 때 현재 위치를로드합니다. 필요한대로로드됩니다.

다른 이미지는 반복자를 사용하는 반면 전체 목록을 사용할 수 있습니다.

희망 하시겠습니까?