상당히 큰 검색을 실행 중이고 System.OutOfMemoryException이 발생합니다.반복 값을 인식하기위한 데이터 구조
문제는 내가 이전에 방문한 각 상태에 대한 문자열 키를 HashSet<sting>
으로 저장하고 있습니다. 이것이 약 7 백만 개 요소가되면 충돌합니다. 내 생각에 내가 문자열을 검색 할 필요가 없으며, 문자열이 세트에 있는지 만 인식 할 수있다.
나는 이런 종류의 전문 데이터 구조를 기억하는 것 같다. 그러나 나는 내 삶의 이름을 기억하지 못한다. 올바르게 기억한다면 꽤 일정한 메모리 요구 사항이 있고 그 요소에 요소를 추가하면 이미 값을 추가했는지 여부를 어느 정도 확신 할 수 있습니다. 내가 이것을 만들거나 이것이 존재 하는가? 어떤 팁?
어떤 종류의 검색을 수행하고 있습니까? 연결된 목록, 문자열의 하위 문자열에서 순환을 찾으십니까? 디자인에 큰 영향을 미칩니다. – madcapnmckay
당신이 실제로하고있는 일에 대해 좀 더 설명해 주시겠습니까? 당신은 문자열로 표현하는 몇 가지 것들을 방문하고 있으며, 이전에 그곳에 있었는지 여부를 각 지점에서보고 싶습니까? – Hut8
상태를 반복하지 않아야합니다. 그렇게하기 위해서 나는 내가 방문하고 그것을 저장하는 각 상태를 고유하게 식별하는 문자열을 얻는다. 내가 다시 그 주를 방문하려고하면 나는 그것을 인식 할 수는 있지만 그렇게하지는 않습니다. – captncraig