안녕하십니까.
도움이 필요합니다. 도와 주세요.
시스템은 2개의 주 컴포넌트를 사용합니다.
하나는 TComPort이고, 다른 하나는 TServerSocket입니다.
TComPort으로 약 10개의 Serial Port를 열어서 한 포트에서 약 2Kbyte를 1초 또는 5초간격으로 받습니다.
받은 데이터는 적당한 상태로 가공(파싱) 후 TServerSocket을 통해 다른 프로그램으로 전달 됩니다.
TServerSocket는 TCP/IP통신을 하며, 약226개의 프로그램들로부터 약 1초에 한번씩 마구잡이로 데이터 요구 명령을 받고 그에 맞는 데이터를 전송합니다.
데이터 요구 명령은 약 20Byte 정도이며, 응답 데이터는 약 40Byte정도입니다.
TComPort와 TServerSocket에서 받은 데이터를 아무일도 하지 않고 그냥 이벤트를 종료해도 프로그램의 메모리가 계속 증가합니다.
한시간 40분 정도 되니까 76Mbyte정도되더군요. 이 프로그램은 365일 실행되어야 합니다.
임시 조치로 3시간에 한번씩 종료하고 다시 실행하는 방법으로 하고 있습니다만, 근본적인 메모리 반환 방법을 적용해야 할것 같습니다.
고수님들 좀 도와주세요.
감사합니다.
이 경우엔 컴파일하여 실행해 가면서 문제점을 찾는게 문제를 가장 빨리 해결할 수 있을 것 같습니다.
컴파일가능한 형태로 프로그램 소스의 일부를 올려서 도움을 요청하시기를 권합니다.