스트링 그리드의 메모리 해제가 안되서 올리는 질문입니다.
단순한 프로그램은 아닙니다.
자료의 양이 많아서 하루 데이터가 최소 10만건에서 최대 1000만건까지 발생합니다.
DB 그리드를 사용하려니 디자인이랑 그외의 몇가지가 맘에 안들어서리 그냥 스트링
그리드에 DB의 내역을 출력할 수 밖에 없습니다.
아마도 TCustomGrid의 문제라고 생각되기 때문에 DB 그리드는 넘어가고요...
하루 평균 잡아 200만건 정도라고 하면 요걸 읽어서 화면에 출력하는데 한참 걸리죠...
현재 이 프로그램은 조회시에도 DB에 자료를 계속 때려 넣어야 되걸랑요...
거의 "응답없음"이죠...
응답없음은 그렇다쳐도 메모리가 가장 큰 문젭니다...
델파이에서 메모리 사용현황을 출력해보니 200MByte를 먹었더군요...
요것도 그렇다쳐요...
어쩔수 없는 문제잖아요...자료가 많으니...쩝
근데요 이 200Mbyte가 집에 갈 생각을 안해요...
그리드를 프리하기 전에는 꿈쩍도 않해요...
VCL 소스를 보니 속도 때문이지 Rows나 Cols를 클리어 해도
그리드 프리하기 전까진 할당받은 메모리를 재활용하는 것 같습니다.
요거를 재 초기화 해주는 메소드나 방법을 알고 계신분은 알려주세요...
추신 :
지금은 어쩔수 없이 동적으로 그리드를 사용하고 있지만
그리드 새로 만드는 시간도 아깝거든요...
참고로 그리드의 RowCount랑 ColCount를 바꿔도 사용되기 전에는
Rows랑 Cols에 객체할당을 안하더라고요...
전 이렇게 쓰고 싶거든여... 속도 때문에 가상 메모리는 쓸수가 없고
한 번만 조회 때리면 피지컬 멤 다먹고... CPU 다먹고...
가상 멤만 안먹으면 DB 처리 속도는 해결되걸랑요...
고수님 부탁드려요...