Microsoft MVP성태의 닷넷 이야기
C# 딕셔너리 생성에 대해 질문드립니다. [링크 복사], [링크+제목 복사],
조회: 19665
글쓴 사람
김이현
홈페이지
첨부 파일
 

안녕하세요. C#에서 딕셔너리를 만드는 데 모르는 점이 있어서 질문드립니다.

제가 만들고 싶은 건 문자열을 키로 가지고 리스트를 값으로 가지는 딕셔너리입니다.

아마 아래와 같이 정의할 수 있을 것 같은데요.

static Dictionary<string, List<String>> dic_list = new Dictionary<string, List<String>>();

질문1) 만약 이 dic_list 딕셔너리에 추가되는 문자열이 너무 길다면, 리스트 크기를 CLR 내부에서 조정해 주는 루틴이 실행되고, 퍼포먼스에 부하가 생기나요?

질문2) 추가되는 아이템의 수는 거의 한 리스트 당 대략 100만 개 정도이고,

만약 추가되는 아이템(문자열 200byte)의 길이를 알고 있을 때, 이 길이를 아래와 같이 미리 지정해 주면 성능에 이점이 있을까요?

static Dictionary<string, List<String>> dic_list = new Dictionary<string, List<String>>(200);

그리고 이 방법이 리스트 아이템의 수가 아니라, 추가될 문자열의 크기를 지정해 주는 게 맞나요?


궁극적으로는 실시간으로 전송되는 대량의 시계열 자료를 가능한한 부하없이 받아서 저장(append)하려는 것이 목적입니다.

https://stackoverflow.com/questions/169973/when-should-i-use-a-list-vs-a-linkedlist/29263914#29263914

이곳을 참고하면, 기본적으로 제공되는 자료 구조 중에서는 LIST가 가장 알맞을 것 같은데, 혹시 작가님께서는 다르게 조언해 주실 부분이 있으실까요?








[최초 등록일: ]
[최종 수정일: 5/3/2019]


비밀번호

댓글 작성자
 



2019-05-03 09시30분
1) 아래의 글을 보면,

C# - int []와 object []의 차이로 이해하는 제네릭의 필요성
; http://www.sysnet.pe.kr/2/0/11805

개별 문자열의 크기와 List의 크기는 관계가 없음을 알 수 있습니다.

2) Dictionary의 생성자에 지정한 200은 Dictionary의 요소 수를 확보하는 것일뿐 문자열의 크기와는 관련이 없습니다.

정성태

... 61  62  63  64  65  66  67  68  69  70  [71]  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
796정성태3/20/200919790스마트클라이언트와 ActiveX에 관한 질문 [1]
795김기용3/19/200919045[질문] DHTML 다이얼로그 관련 [2]
794박평옥3/18/200918719Vista에서 URL Shortcut 실행 시 SetSite가 두 번 호출되는 증상에 관해 조언 부탁드립니다. [2]
792김기용3/12/200918311어제 세미나 잘 들었습니다. 질문사항이 있습니다.(ie8 마이그레이션 관련) [4]
791vb표성백2/17/200924018ATL 로 만든 COM 에 문자열 전달하기! C#에서 어떻게 하나요? [1]
790고민중2/16/200916498vista에 vs2005를 사용중입니다. [1]
789지언2/14/200918530MFC & C#(COM) 호환 관련하여 답변좀 부탁드립니다 [2]
788하루야채2/3/200917269스마트클라이언트 Windowless 설정에 대해서 문의드립니다. [2]
787궁금이2/2/200917842TFS 관련하여 질문드리고자 합니다. [2]
786맨날맑음1/30/200919432WPF를 SmartClient로 배포할순 없을까요? [2]
785정성우12/16/200817865Vista 환경에서 VB6로 개발한 어플리케이션이 IE 통해서는 런칭이 안됩니다.. [4]
783서광원11/20/200818817.NET 어셈블리를 COM에서 사용하도록 변경 했을때 배포는 어떻게 해야 하나요? [3]
782김용환10/14/200819409웹서비스에서 캐시를 사용하고 싶습니다. [3]
781이수정9/5/200817316visual studio 2008 관련 질문입니다. [2]
776신현창8/5/200817517VS2005로 실행시 갑자기 COM+ 등록이 안됩니다. [1]
775땡초7/21/200818099조언을 구하고저 합니다. [2]
774남호진7/19/200819086Visual Studio 2005나 2008에서 서버탐색기에연결된 데이터에서 정보를 끌어... [2]
773지워니7/17/200820854웹서비스로 db2의 데이터가 오질 않아요. [1]
984이영구7/16/201120578    답변글 [답변]: 웹서비스로 db2의 데이터가 오질 않아요.
772다자래7/15/200818359스레드와 이벤트를 이용해서 mssql 서버의 저장프로시져의 레코드 진행률을 표현하는 프로그래스바를 구현하려고하는데....막막 [1]
771guest6/26/200817986[WCF] Self host 만드는 방법. [2]파일 다운로드1
770조조5/27/200817862스마트클라이언트에서 stand-alone 형태를 임베디드형태로 변환시 문제.. [1]
769제영한5/20/200818236배포프로젝트에 대한 조언을 구합니다. [2]
767김형중5/6/200818785RMclock 관련 문의 입니다. [1]
766정성태4/28/200819860[데브피아 Q&A 모음] 2008-04-21 ~ 2008-04-24
764정성태4/21/200820532[데브피아 Q&A 모음] 2008-04-14 ~ 2008-04-18 [2]
... 61  62  63  64  65  66  67  68  69  70  [71]  72  73  74  75  ...