VSS interop DLL과 .NET을 사용하여 새 프로젝트를 만들고 각 프로젝트에 XML 파일 수를 저장합니다.방대한 수의 파일 추가 및 WPF 응용 프로그램에서 VSS 프로젝트 만들기
기본적으로 프로세스는 동일한 도메인의 VSS에 연결됩니다. 기본 정의 프로젝트에서 1000 개 이상의 하위 프로젝트를 만들어야하며, 각각에 대해 데이터베이스에서 xml 파일을 가져 와서 임시 위치의 파일 스트림에 쓴 다음 VSS에 추가합니다.
- 하위 프로젝트가 이미있을 수 있으므로 VSSItem이 이미 있는지 확인한 다음 모든 VSSItem을 검사하여 저장하려고하는 파일 이름이 있는지 확인합니다.
- 경우 예, 새로운 파일을 체크, 임시 위치에 파일을 확인하고 체크 아웃 임시 위치에 다른
- 에서 파일을 삭제하고, 새 파일을 추가
- 과의 마지막으로 파일 스트림이 저장된 임시 위치를 삭제하십시오.
1000+ 개 항목에 대해서는 위의 과정을 수행해야합니다. 이 모든 과정은 약 20 분이 걸립니다. 프로세스가 비동기이므로 자체 스레드에서 실행 중입니다.
여기 WPF 및 WCF를 사용하고 있으므로 때때로 WPF의 구성 파일에서 제한 시간을 늘려서 방지 할 수있는 SendTimeout을 수신합니다.
내 질문은입니다 : VSS 처리가 항상 느려지고 어떻게 속도를 높일 수 있습니까?
코드를 검토하려고 시도했지만 그 코드를 많이 개선 할 방법을 찾지 못했습니다. 어떤 도움을 주시면 감사하겠습니다.
일부 병렬 처리가 가능합니다. 다음 파일을 복사하는 것처럼 체크 아웃/체크 인 현재. 솔리드 스테이트 디스크. – Paparazzi
나는 temp에 구조를 저장하고 각 파일을 지우는 대신 전체 디렉토리를 지우려고했지만 몇 초만 주었다. 또한 프로젝트와 파일이 처음 추가되면서 프로젝트 200 개를 추가하고 파일 당 파일 몇 개를 추가하면 거의 4-5 분이 소요됩니다. 우리는 2000 개가 넘는 프로젝트와 파일이 처리 될 것으로 기대합니다. 가슴이 VSS 밖에없는 것 같은 느낌입니다. – VK123
당신은 여전히 VSS를 사용하고 있습니까? 그리고 그것에 대해? _new_ 개발을 위해? 나는 당신을 위해기도하는 것을 기억하려고 노력할 것입니다. –