2018.04.01 10:06

C# 테스트 프로그램을 만들어 장비와 연동하는데 기존에는 파일로 읽어서 바로 저장하다가 TextBox에 모두 남긴 후 한번에 저장하도록 프로그램을 작성하였습니다.

내부에서 텍스트 박스에 찍힌 로그를 보면서 이상 유무를 바로 확인하자고 했기 때문입니다.

문제는 텍스트 박스에 적히는 글이 많아질 수록 속도가 현저하게 느려지는 현상이 발생하였습니다.

기존에는 그다지 많은 양의 (100KB 이하) 데이터만을 로그로 찍다보니 알 수 없는 증상이었습니다.

 

이 문제를 찾다보니 같은 증상에 대한 문의와 해결방법이 있었습니다.

자동 줄바꿈 처리에 대한 부분인데 이 부분을 False로 설정하니 속도가 비약적으로 향상되었습니다.

어차피 제 프로그램은

Textbox.text += str

이런 구조에

줄 바꿈도 자체적으로 "\r\n"으로 처리하기때문에 자동 줄바꿈 필요는 없었습니다.

 

----- 관련 내용 -----

사이트 :

https://code.i-harness.com/ko/q/431bd5

 

내용 : WordWrap = false로 설정하면 일부 경우 성능이 크게 향상됩니다. 최대 한도에 도달하면 여전히 긴 줄을 감 쌉니다. 나는 Base64 데이터의 긴 덩어리를 포함하는 90K의 텍스트를 시도했고, 응답은 16 초에서 2 초로 바뀌었다

 

WordWrap에 대한 설명

https://msdn.microsoft.com/ko-kr/library/system.windows.forms.textboxbase.wordwrap(v=vs.110).aspx

 

WordWrap의 사용법에 대한 동영상

https://www.youtube.com/watch?v=o4FvCUWS8RE

 

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요