|
StringGrid의 Cells 에 들어가는 부분을 막고 했는데도 점점 늘어납니다.
며칠째 고생중이네요.. 어찌 해야 하나여???흑흑..
: : : 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);
: : :
: : : }
: : : }
: : : }
mossmin 님이 쓰신 글 :
: 열씸님~~~
: 답변 감사합니다..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)......
|