일부 enum이 있다고 가정합니다. 예 :사전에 저장하는 배열 VS에 enum을 저장 하시겠습니까?
enum MyEnum
{
Item1,
Item2,
Item3
}
열거 형의 각 항목에 대해 "캐시"를 원합니다. 그래서 두 가지 옵션이 있습니다.
사전 옵션 :
Dictionary<MyEnum, /*someStructure*/> cache = new Dictionary<MyEnum, /*someStructure*/>>();
또는 배열 옵션 :
/*someStructure*/[] cache = new /*someStructure*/[Enum.GetValues(typeof(MyEnum)).Length]
각 옵션의 prons과 단점은 무엇입니까? 제 생각에는 Dictionary
옵션이 더 읽기 쉽고 사용하기 쉽지만, Array
옵션보다 느립니다.
그러나 실제로 Dictionary
은 느려 집니까? 아마도 Dictionary
은 enum
이 키로 사용될 때 단지 "배열"을 언더링 구현으로 사용할 수 있다는 것을 이해하기에 충분히 똑똑합니까?
질문은 - "못생긴 array
옵션"이 "간단"Dictionary
옵션보다 빠르다는 것인가? 그럼 아마도 나는 그것을 테스트 할 수 있습니다 ...하지만 지금 나는 질문을 썼을 때 다른 사람들이 생각하는 것을 알고 싶습니다.
내 프로그램에서 병목 현상을 최적화하고 있습니다. 나는 1 ~ 2 마이크로 초를 보낼 무언가를 위해 18 마이크로 초를 보냈습니다. 나는이 부분에서'Dictionary'가 집중적으로 사용된다는 것을 알았습니다. 그래서 대체해야한다면 지금 생각하고 있습니다. 'int32' 키로 된 사전은 이상하게 보입니다. 왜 그걸 제안합니까? – javapowered
그리고 18 마이크로 초가 너무 많습니다. 어떤 종류의 프로그램을 개발하고 있습니까? – Steven
하지만 내가 말했듯이,'int' 키와 프로파일을 다시 유지하기 위해 사전을 바꾸십시오. 이것은 큰 차이를 만들어야합니다. – Steven