처리 된 네트워크 파일 공유 목록 (전체 UNC 경로 유지)을 메모리에 저장해야이 폴더를 다시 처리하지 않아도됩니다.긴 값 목록을 저장하는 가장 좋은 방법
배열을 사용할 예정 이었지만 이제는 해시 테이블이 더 빠른 옵션 일 수 있다고 생각합니다. 폴더 경로 (문자열 값)가 이미 존재하는지 몇 군데를 확인해야합니다.
무엇이 가장 빠르며 (그 값의 존재를 확인하기 위해) 무엇보다 적은 메모리를 소비합니까? 난 그냥 실행 : 키 = 폴더 경로와 한 차원 배열의
UPDATE 빈 값으로 해시 테이블에
- 저장 폴더 경로 그 스레드 에서처럼 50000 개의 문자열을 생성하고 3 개의 조회를 수행하여 아래에서 지적한 몇 가지 테스트가 있습니다. 또한 메모리 사용량을 살펴보고 HashSet이 승자입니다. HashTable은 여전히 좋은 선택이지만 Array는 최악의 선택입니다.
배열 - 125048 MS는, 조회하는 37 밀리 생성, 18MB는 RAM에
해시 - 1966 MS에 - 2167 밀리
HashSet의 RAM에, 2.4MB를 조회하는 0.74 밀리 만들 수 있습니다 당신이 그것을하고있는 항목의 수는 relativel입니다 채우기 후 키를 쿼리 할 예정으로
당신의 목록이 얼마나 클 것으로 기대하십니까? – dugas
수만개의 폴더를 쉽게 만들 수 있습니다. – mishkin
죄송합니다. powershell V2 – mishkin