조언이 필요합니다. 텍스트 파일에서 이름이 & 인 10,000 개의 행을 동기화 된 큐에 추가되는 XElements로 가져 오는 응용 프로그램이 있습니다. 가져 오기가 완료되면 응용 프로그램은 XElements를 deenqueuing하고, 데이터베이스 호출을 작성하고, 데이터베이스 출력을 요청 문서에 삽입하고, 처리 된 문서를 출력 대기열에 삽입하여 XElements를 처리하는 작업자 스레드를 생성합니다. 모든 요청이 처리되면 출력 대기열이 XML 문서로 디스크에 기록됩니다.XElement vs Dictionary
처리 중에 요청에 필드를 추가해야하므로 XElements를 요청에 사용했습니다. 즉, 작업 유형에 따라 앱에서 공개 레코드 데이터베이스와의 이름/주소 일치를 기반으로 전화 번호, 생년월일 또는 이메일 주소를 요청에 추가하도록 요구할 수 있습니다.
내 질문은; XElements는 많은 양의 메모리를 사용하는 것으로 보이며 문서가 처리 방법을 통해 파싱되므로 많은 파싱이 있음을 알고 있습니다. 나는 XElements를 Dictionary 객체로 대체 할 것을 고려 중이다.하지만 나는 회의적인 입장이다. 본질적으로 그것은 같은 것을 성취 할 것입니다.
생각하십니까?
내가 쓰기까지 정말 XML을 사용하지 않는를 디스크에의 출력. 이 시점에서 출력 큐의 XElements를 XDocument에 추가하고이를 디스크에 저장합니다. 메모리에 대해서는 전용 서버를 대여합니다.그들은 50 달러의 추가 요금으로 달 당 요금을 부과합니다. 1 년이 넘는 비용을 인수하기 시작하면 실제로 합산됩니다. – user135498
업데이트 : XElement 대신 사전을 사용하도록 코드를 리팩토링했습니다. 구문 분석 문을 피하기 때문에 코드가 훨씬 깔끔합니다. 내 원본 코드가 레코드 당 38ms로 처리되었습니다. 리팩토링 된 코드의 첫 번째 반복은 45ms에서 처리됩니다. Remove() 메서드에 2 건의 호출을 제거하고 처리 시간을 31ms로 줄이기 위해 한 번 더 리팩토링했습니다. – user135498