|
열씸님~~~
답변 감사합니다..StringGrid의 열과 행의 갯수는 고정입니다만,
더 자세히 알고 싶은데 혹시 참고할 자료나 사이트가 있으면 알려주시면 안될까요?
좋은 하루 되세요~~
열씸! 님이 쓰신 글 :
: StringGrid의 Cells 에 들어가는 데이타는 AnsiString 타잎이죠?
: 그리드 내에 그림을 그려 넣는 식이 아니라, 해당 스트링이 할당되어 꼬리표가달리는 식이니
: 메모리가 증가할 밖에요.
: 서버에서 돌아가는 서비스(혹은 서비스형 응용프로그램)라면,
: 당연히 서비스를 내렸다 올리는 주기까지는 버틸 수 있는 공간을 계산해 확보하시거나,
: 특정 범위를 넘어서면 화일로 저장한 뒤 저장된 데이타를 클리어할 수 있는 구조로 만드셔야 하겠죠.
: 복잡한 처리를 하지 않고, 오래 돌 수 있는 안정적인 서버 프로그램을 작성하고 싶으시다면,
: 모조리 화일로 쓰고, 화일의 내용을 화면에 그리는(Canvas등에) 구조로 변경하셔야 할 겁니다.
:
: mossmin 님이 쓰신 글 :
: : 메모리 사용량에 대해서 너무너무 궁금해서 고수님들께
: : 조언을 구합니다.
: : 서버에서 돌아가는 프로그램을 만들었는데요.
: : 사용자측에서 계속 메모리가 증가한다는 연락을 받았습니다.
: : 프로그램 상에는 new를 하는 부분은 TIniFile사용시만 사용했는데요..
: : 그래서 제가 작성한 프로그램을 간소화해서 첨부한 소스를 만들었습니다.
: :
: :
: : 첨부한 소스에는 10초에 한번지 아래의 처리를 하도록 타이머를 설정했습니다.
: : void __fastcall TForm1::Timer1Timer(TObject *Sender)
: : {
: : char Buf[8012];
: : for( int i = 0; i < StringGrid1->ColCount; i++)
: : {
: : for( int j =0; j<StringGrid1->RowCount; j++)
: : {
: : StringGrid1->Cells[i][j] = IntToStr(i) + "," +IntToStr(j);
: :
: : }
: : }
: : }
: : 아래의 내용의 시간별 작업관리자의 메모리 사용량을 적어 보았습니다.
: : 이벤트와 관계가 있어 보이기도 하구요 도통 모르겠습니다. 조언 부탁드립니다.
: : 17:13 (6,464) 17:15(6,508) 17:16(6,520) 17:19(6,524)프로그램 폼의 빈부분 마우스 클릭 17:19(2,080)프로그램 최소화
: : 17:20 (3,084) 프로그램 표준모드 17:22(3,168) 17:23(3,172) 17:25(3,184) 17:26(3,188)......
|