Microsoft MVP성태의 닷넷 이야기
글쓴 사람
노인코래방
홈페이지
첨부 파일
 

안녕하세요! 정성태님!

c++빌더로 제작한 프로그램을 c#으로 마이그레이션?하는 과정에서 궁금한점이 생겨서 여쭤봅니다.
c++빌더에서 파일 핸들링에 가장 좋은 성능을 보여주는게 MMF였는데,
c# 에서 비슷하게 구현 하니 성능이 현저히 떨어지네요.

c++에서는 CreateFile와 CreateFileMapping을 사용하고 MapViewOfFile로 파일 특정위치의 값을
포인터로 받아와 원하는 타입으로 캐스팅해서 마치 힙에 있는 배열처럼 사용했었는데,

c#에서는 MemoryMappedFile.CreateFromFile로 MemoryMappedFile를 만들고
CreateViewAccessor로 MemoryMappedViewAccessor를 만든다음 거기에 버퍼를 통해 읽고 쓰는 과정을 거쳤습니다.

단순히 c++에 비해 버퍼로 읽고 쓰는 과정이 하나 더 들어가서 속도가 느린건지, 아니면 다른이유가 있는건지...

비주얼스튜디오의 윈폼을 사용한 프로그램 개발 방식이 빌더와 비슷하고, 문법도 c++과 크게 차이 나지 않을 뿐더러
구글링하면 앵간한건 다 해결이 되서 어찌저찌 독학으로 진행해 가고 있습니다.
어느 정도 결과가 보이니 기존과 현저히 차이가나는 성능 저하를 해결하려고 하는데요
성능 관련된건 구글링으로 해결이 쉽지 않고 지인중에 c#을 하는 사람도 없어서 답답한 마음에 질문드립니다.

모쪼록 답변 부탁드립니다.
감사합니다 (_ _)














[최초 등록일: ]
[최종 수정일: 2/25/2019]


비밀번호

댓글 작성자
 



2019-02-25 03시41분
안전하기 위해 managed로 접근하는 부하가 있을 텐데, 그렇다면 그냥 Win32 API를 직접 import해서 써보세요. 다음의 글을 참고하면 좋을 것입니다.

How to create a memory mapped file with C# (Windows Vista / Windows 7)
; https://blogs.msdn.microsoft.com/alejacma/2011/09/26/how-to-create-a-memory-mapped-file-with-c-windows-vista-windows-7/
정성태
2019-02-25 04시27분
[노인코래방] 와... 답변 감사합니다!!
[guest]

... 61  62  63  [64]  65  66  67  68  69  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
1022선무당1/11/201219102TFS 에서 공통 Assembly 공유 방법에 대해서 해결책이 없을까요? [2]
1021김재영1/8/201218264대리자를 메소드 파라메터로 넘겨도 됩니까? [2]파일 다운로드1
1019남산골11/13/201921233안녕하세요!! 성태님~~ [3]
1018강한구12/29/201124584WPF ClickOnce 배포시 콤포넌트 dll 다운로드 문제에 대하여 질문 있습니다. [1]
1017임동찬12/28/201121592smart client와 xbop, silverlight [6]
1015개똥이12/22/201118747RMCLOCK 설정 관련 질문이요ㅜ [2]
1011사길수12/16/201118876hyper-v 이더넷 카드 관련 문의 좀 드립니다. [1]
1006루로니12/13/201120888윈도우7과 XP의 DLL후킹 처리에 관해서 질문입니다. [3]
1005남산골12/13/201120807안녕하세요!! 첫 인사드립니다. [3]
1004뽀로로12/12/201117682Managed 어셈블리에서의 COM EntryPoint procaddress 문제 [1]
1003나그네12/8/201119881닷넷에서 가상메모리(Commit) 의 크기를 줄이거나 해제하는 방법은 어떻게 해야할지요? [1]
1002나그네11/29/201119416안녕하세요 ^^ 문제가 생겨서 혹시나 여기서라면 답이 나오지 않을까 해서.. [1]
1001선무당11/29/201120659clickonce+ntd 시스템에서 proxy Server 가 개입되는 경우 cache 해결을 위한 방법... [1]
1000초보개발자11/28/201119078웹서비스용 웹 서버의 SSD 가치에 대해서... [1]
999날쌘돌이11/25/201116274ADFS와 WIF 질문 [1]
998윤용한11/9/201118184File Write 도중 정전 발생 시 대처 방법 있나요? [2]
997조장원11/7/201117610Silverlight 에서의 Auth 방법에 대한 고찰 [2]파일 다운로드1
996파몽11/3/201120708VS2010 에서 타겟플랫폼이 x86으로 변경이 된걸일까요? [2]
995강신명10/24/201117258sharepoint2010+win7 client 오류 [2]파일 다운로드1
992라이언10/11/201117385캡션에 chapter numbers 넣기
993정성태10/11/201120006    답변글 [답변]: 캡션에 chapter numbers 넣기
991우상욱8/21/201121775세션 타임 아웃에 관해서 질문드립니다. [2]
990김재영8/20/201124835VS2010의 윈폼의 Load이벤트에서 예외가 잡혀지지 않습니다. [3]파일 다운로드1
989우상욱8/20/201117598polling에 대해 감이 안잡혀서 질문드립니다 [1]
988WooY...8/17/201117611성태님~ 작은 부탁 하나 있습니다~ [2]
987에스패스트8/3/201119648비밀글쓰기가 있으면 참좋을탠대 아쉽네요 ^^ 저 한가지만더.. [5]
... 61  62  63  [64]  65  66  67  68  69  70  71  72  73  74  75  ...