XML (즉, 공간 및 시간)을 분석하는 가장 좋은 방법을 알고 싶습니다. "각각은"Linq에 성능과 관련하여 C#에서 XML을 구문 분석하는 가장 좋은 방법
가 나는 다음과 같은 방법 정기적으로
- 을 통해 구문 분석 했어요.
XML (즉, 공간 및 시간)을 분석하는 가장 좋은 방법을 알고 싶습니다. "각각은"Linq에 성능과 관련하여 C#에서 XML을 구문 분석하는 가장 좋은 방법
가 나는 다음과 같은 방법 정기적으로
코드를 보지 않고도 코드를 최적화하는 것은 쉽지 않습니다. 그러나 고려해야 할 한 가지 일반적인 점이 있습니다 :
Linq-to-XML은 전체 XML 문서를 메모리에 상주하는 모델로 읽는다는 점에서 DOM 기반 파서입니다. 모든 쿼리는 DOM에 대해 실행됩니다. 대용량 문서의 경우 DOM을 구성하는 것이 메모리와 CPU를 많이 사용할 수 있습니다. 또한 Linq-to-XML 쿼리를 비효율적으로 작성하면 동일한 트리 노드를 여러 번 탐색 할 수 있습니다.
XmlReader과 같은 직렬 (SAX) 구문 분석기를 사용해보십시오. 이 유형의 파서는 문서의 메모리 기반 모델을 만들지 않으며 앞으로 만 작동하므로 각 요소를 한 번만 읽을 수 있습니다.
나는 크고 복잡한 XML 파일로, SAX 유형 XML 구문 분석기를 사용하여 구문 분석 할 수 있습니다. SAX 파서는 각 노드에 대해 XML 파일로 이벤트를 생성하므로 전체 파일을 메모리에로드 할 필요가 없습니다. 응용 프로그램에서 웹 응답으로 분석해야하는 작은 파일의 경우 유효성을 검사해야하며 DOM 유형 XML 파서를 사용하도록 제안합니다.