2012-04-18 2 views

답변

1

코드를 보지 않고도 코드를 최적화하는 것은 쉽지 않습니다. 그러나 고려해야 할 한 가지 일반적인 점이 있습니다 :

Linq-to-XML은 전체 XML 문서를 메모리에 상주하는 모델로 읽는다는 점에서 DOM 기반 파서입니다. 모든 쿼리는 DOM에 대해 실행됩니다. 대용량 문서의 경우 DOM을 구성하는 것이 메모리와 CPU를 많이 사용할 수 있습니다. 또한 Linq-to-XML 쿼리를 비효율적으로 작성하면 동일한 트리 노드를 여러 번 탐색 할 수 있습니다.

XmlReader과 같은 직렬 (SAX) 구문 분석기를 사용해보십시오. 이 유형의 파서는 문서의 메모리 기반 모델을 만들지 않으며 앞으로 만 작동하므로 각 요소를 한 번만 읽을 수 있습니다.

0

나는 크고 복잡한 XML 파일로, SAX 유형 XML 구문 분석기를 사용하여 구문 분석 할 수 있습니다. SAX 파서는 각 노드에 대해 XML 파일로 이벤트를 생성하므로 전체 파일을 메모리에로드 할 필요가 없습니다. 응용 프로그램에서 웹 응답으로 분석해야하는 작은 파일의 경우 유효성을 검사해야하며 DOM 유형 XML 파서를 사용하도록 제안합니다.

관련 문제