2011-02-06 6 views
7

LINQ to XML에 약간의 성능 문제가 있고 일부 친구들이 내 응용 프로그램에서 사용하지 말 것을 권유 받았습니다. MSDN과 관련이있는 항목을 찾을 수 없으며 "일부 인터넷 블로그"에 의존하고 싶지 않습니다. 누구든지이 문제 또는 신뢰할만한 출처에 대한 공식적인 견해를 알고 있습니까?linq to xml 성능

+0

XML에 대한 XPath와 LINQ의 비교 : http://msdn.microsoft.com/en-us/library/bb675156.aspx –

+0

관련 : http://stackoverflow.com/questions/14000846/xdocument-performance – nawfal

답변

12

는 메모리에 전체 파일을 읽습니다.

거대한 XML 파일 (수백 메가 바이트)을 읽는 경우 문제가 발생합니다.
대신 XML 파일의 정방향 전용보기를 제공하며 한 번에 전체 파일을 읽지 않는 원시 XmlReader를 사용할 수 있습니다.

일반 크기의 XML 파일을 다루는 경우 LINQ to XML을 사용해도됩니다.

LINQ to XML은 XmlReader보다 몇 배 더 쉽게 사용할 수 있습니다.
200MB XML 파일을 처리하거나 성능을 측정 한 결과 XDocument 생성자가 너무 느리다는 것을 알고있는 경우에만 XmlReader를 사용해야합니다.

+7

Microsoft Linq to Xml을 사용하여 XML 파일의 입/출력을 스트리밍하는 방법에 대한 예제를 제공하므로 전체 파일을 메모리에 작은 덩어리로만로드하지 않게됩니다. http://msdn.microsoft.com/en-us/library/ us/library/system.xml.linq.xstreamingelement.aspx # Y1392 – Michael

4

그냥 google linq vs xmlreader을 사용하게됩니다.

상단 결과는 xmlreader에 비해 느리다는 결론을 내 렸습니다. 읽기/코드. XML에 LINQ를 사용