C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[60164] [질문] WinXP에서 소프트웨어 느려지는 현상...
땅주인 [heaven2] 1055 읽음    2010-02-05 16:12
VB 6.0으로 개발한 소프트웨어가 있습니다.
Windows2000에서는 짱짱하게 잘 돌아가는 S/W인데..
WindowsXP에서 돌릴 때 눈에 띄게 느려집니다.
특히 COM Port에서 데이터가 많이 유입되서 처리할 양이 늘어나면 눈에 띄게 느려지는데요..

동일한 S/W를 Window2000에서 돌릴 때 보다 처리 속도 면에서는 절반 정도 느려지는 것 같습니다.

소프트웨어 구성은,

VB로 된 메인 S/W가 있고, Serial 통신을 책임지는 통신용 프로그램(MFC로 개발됨)이 있고,
이 두개의 프로그램간의 통신은 MSMQ(Microsoft Message Queue) 서비스를 이용해서
하고 있습니다. 이렇게 구성한 것은 VB에서 직접 Serial 통신을 책임질 경우 CPU가 마구마구 100%를
치달아서 이렇게 분리해 놓은 상태고, MFC로 된 통신 프로그램도 송수신 시 모두 스레드로 처리해서
처리속도와 CPU 점유율등을 낮추어서 처리했구요..

내부적으로는 메인 소프트웨어(VB로 된)가 타이머로 1초에 3~4번 시리얼로 데이터를 요구하고
(실제로는 MSMQ에 쓰고 시리얼로 데이터를 내보내는 것은 통신 프로그램이 담당.),
1초에 3~4번 데이터가 유입되면 데이터의 상태에 따라 그냥 Skip, 또는 화면 처리하고 DB 저장하는
루틴을 지나갑니다.

디버그로 찍어보니,
시리얼에서 데이터를 받아서 작업해야 할 것이 많은 경우 그 다음 발생해야 할 타이머 이벤트가 몇 개가
그냥 Skip하는 현상이 발생됩니다.(시리얼 데이터 처리하느라 바빠서 그런 것으로 추축됨.)

그래서, 전체적으로 보면, 메인 프로그램이 시리얼 데이터 처리하느라 타이머 이벤트 몇 개 놓치고,
그래서, 시리얼로 데이터 요구하는 횟수가 줄어들고, 그 에 따른 데이터 수신량도 줄어드는...이런
현상이 발생해서 전체적으로 시스템 운영 속도가 늦어지는 현상을 나타냅니다.

동일한 바이너리 코드를 Windows2000에서는 잘 돌아가는데, WindowsXP에서 이렇게 늦게 동작하니
당황스러운데요..

추축은 WindowsXP의 Kernel이 Windows2000의 Kernel 보다 무겁고 비대해 져서 전체적인 속도가
떨어지는 게 아닌가 싶습니다. VB 프로그램 자체가 느린 것도 한 몫 하는 것 같고..

H/W 사양이 좀 센 PC에서는 이런 증상이 좀 덜한 것을 보면 Kernel을 계속 의심하게 되네요.

XP에서 소프트웨어 속도 개선을 위한 방법...뭐 좋은 방법 없을까요?

이것때문에..주말에 현장에 테스트하러 나가게 생겼습니다. 나가는 건 좋은데..해결이 되야....ㅠ.ㅠ;;;;

고견 부탁드립니다..

감사합니다.

+ -

관련 글 리스트
60164 [질문] WinXP에서 소프트웨어 느려지는 현상... 땅주인 1055 2010/02/05
60165     Re:[질문] WinXP에서 소프트웨어 느려지는 현상... 이길남.HoPe 1726 2010/02/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.