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

안녕하세요. 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의 요소 수를 확보하는 것일뿐 문자열의 크기와는 관련이 없습니다.

정성태

... 76  77  78  79  80  81  82  83  84  85  86  87  88  [89]  90  ...
NoWriterDateCnt.TitleFile(s)
232정준명8/30/200512760[질문] HTTP 모듈/핸들러 또는 RewriteURL 관련입니다. [4]
231이진일8/30/200511536참조한 dll 들은 어떻게 배포하나요...? [1]
2303028/29/200512703[질문] 웹에서 Exchange Server 사용자 추가 [2]
229김재명8/26/200512088성태님의 홈페이지 J & J의경우 보안모듈을 어떻게 해결하셨는지 궁금합니다. [1]
227임규진8/24/200512001리소스 파일에 그림 첨가하는 방법 좀 알려 주세요. [1]
226최인호8/19/200511965스마트 클라이언트 exe 버젼 실행시 시간이 너무 오래 걸립니다. [1]
225코디8/17/200512331[질문]닷넷프레임워크 설치여부 [1]
224박준현8/17/200511767[질문]중첩 그리드라고 해야 할까요? [1]
223매커7/28/200511198강좌 잘 읽었습니다. [1]
222김지영7/27/200512654C#에서 oledb 사용하다가 에러 [2]
221박민우7/26/200513274스마트클라이언트에서의 DB접속 [1]
220테드7/22/200512377스마트 클라이언트에서 원치 않는 패킷 송수신 문제... [3]
219김종욱7/21/200512671안녕하세요... 툴밴드 콤보 박스에 대해.. [1]
2187/21/200511300스마트 클라이언트에 대한 질문 입니다. [1]파일 다운로드1
217왕초보7/21/200511939마소강좌의 AxForSmartClient 를 실행시키고 싶은데요... [1]
215궁금증6/23/200511547도대체 이게 무슨 에러 일까요... [1]
213궁금이6/18/200513274Winform 형태의 NTD에서 사용자 로그인 성공 여부 정보 유지하는 방법 [1]
212궁금이6/16/200511176ActiveX 컨트롤이 NTD에 이상이 없는지요? [1]
211류성태6/15/200511829smart client에 관하여.... [1]
206헤커의작...6/14/200510714[질문] 안녕하세요. 성태님의 홈페이지에서 화면전환시 처리되는 것에 관련된 건 [3]
205김종욱 6/12/200511188com+ 에서 서버 소켓을 열고 싶고요... com+에서 thread는 어떻게 돌리는지 알고 싶습니다
209정성태6/14/200511087    답변글 [답변]: com+에서 서버 소켓을 열고 싶고요... com+에서 thread는 어떻게 돌리는지 알고 싶습니다
204정현일6/9/200511432Smart Client 실행시 SecurityException파일 다운로드1
208정성태6/14/200511761    답변글 [답변]: Smart Client 실행시 SecurityException [1]
203나그네6/9/200511773태오 사이트 Smart Client 강좌중에서요
207정성태6/14/200511262    답변글 [답변]: 태오 사이트 Smart Client 강좌중에서요
... 76  77  78  79  80  81  82  83  84  85  86  87  88  [89]  90  ...