C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[7606] 1회성의 방대한 자료를 저장 하는 가장 최적의 방법은 어떤걸까요?
강영준 [k700k] 1435 읽음    2003-08-07 12:05
올초 부터 계속 부닥치는 문제인데요..
경험이 부족한 관계로 .. 대충 설명 하자면...
타이머를 이용해서 일정 시간 마다 6개의 데이타를 읽어 옵니다. 그기다 날짜와 시간 데이타가 추가 되고요.

그럼 청 7개의 데이타가 되겠죠.. 그중 3개는 실수형 나머지 3개는 정수형입니다.

현제 저는 스트링그리드를 동적 생성해서 순차적으로 데이타를 저장 합니다.

그리고 나중에 필요할때 스트링그리드의 내용을 엑셀 파일로 바꿉니다. 물론 스트링그리드에 내용은

그대로 유지를 합니다.

그렇게 계속 자료를 저장 하다 보면.. 4만 라인까지 가드군요 RowCount 가 4만2천.. 까지

그러니깐 메모리는 200,000kb를 넘어 서더군요.. 모든 프로그램이 버벅 대기 시작 하드군요.

그래서 말인데요.. 4만 라인이 됬든 10만이 됬든..

컴퓨터에 무리가 가지 않는 자료 저장 방법은 어떤 방식을 사용하는게 좋은가요?

문제는 데이타를 엑셀 파일로 저장 하기 전에는 저장된 데이타는 1회성이라는 겁니다.

사용자가 필요할경우에만 엑셀파일로 저장을 할테니깐요..

그리고 프로그램도 계속 몇일 몇날을 돌리고 있겠죠.. 그럴경우.. 최적의 방법은..

저로선 어떤 방법이 좋을지 모르겠군요..

제발 알려주세요.. 시간이 얼마 남지 않았습니다. 징징~~~
수야!╋ [sooya23]   2003-08-07 12:51 X
임의의 파일로 저장을 해두고 사용자가 필요한 경우 저장시 끌어다 쓰면 좋을듯 싶네요
일정 라인이 넘어간 데이터는 소실 혹은 임의로 저장하여 지나간 정보 열람 이라든가 라는 항목을 두는건 어떨런지요.. 결정은 소신것 무리없이~
박정모 [primitic]   2003-08-07 15:13 X
스트링 그리드를 사용하면 안되고, 직접 메모리에 데이타를 올리는 방식으로 가야 합니다.
저의 경우는 P150 에서 10만 Line, Row당 0.2k 정도를 0.2초 안에 파싱 & 메모리로 로딩하
는 모듈을 만들었을때 StringGrid의 느린 속도 때문에 메모리에 바로 로딩하는 방식으로
처리 했습니다.
좀 미안한 말이지만, 적당한 컨설팅 비용을 지불하신다면 제가 만들어 두었던 모듈과 방법
론을 제공할 생각이 있습니다. 공짜로 제공하기에는... 저도 먹고 살기 힘들어서... ㅠ.ㅠ
강영준 [k700k]   2003-08-07 15:47 X
하하하.. 얼만가요?
강영준 [k700k]   2003-08-07 15:48 X
k700k@naver.com 으로 멜 보내 주세요.
수야!╋ [sooya23]   2003-08-07 16:13 X
적응이 안되네? 이기 뭐징 ㅡ_ㅡ;
강영준 [k700k]   2003-08-07 16:23 X
혹시 공짜로 소스 제공하시는 분에게는 맥주 한잔 쏘겠음.
박정모 [primitic]   2003-08-07 16:50 X
메일 드렸습니다. 확인해 주십시요.
박정모 [primitic]   2003-08-07 16:55 X
수야님 적응 안되도 어쩔 수 없습니다. 급한사람이 우물판다고, 급하다면 거기에 대한 적당한
비용을 지불하고 솔류션을 사야겠죠? 그렇지 않음 몇날 며칠 멘땅에 헤딩 하던지...
무료로 솔류션을 제공하는 마음 좋은분이 나타 나면 더 좋겠지만 말이죠... ^.^a
박정모 [primitic]   2003-08-07 16:57 X
간단한 API 몇개 호출해서 되는 문제 같으면 저도 공짜로 알려 드리고 싶지만, 문제가 훨씬
복잡하단 사실은 경험으로 알고 있으니까 그렇게는 조금 어려울것 같습니다... ^.^a
civilian [civilian]   2003-08-07 17:33 X
http://www.component4developers.com 에 가시면 kbmMemTable란 컴포넌트를 받을 수 있습니다. 무료이고 소스도 공개되어 있으며 성능 역시 매우 좋습니다.
또 한가지의 장점은 TDataSet의 후손이므로 DB-Aware 컴포넌트와 연결시키기가 쉽죠.
civilian [civilian]   2003-08-07 17:34 X
아, 메모리 테이블의 내용을 파일로 저장하거나, 파일로 부터 읽는 것도 가능합니다.
저장시 압축도 할 수 있지요.
도움 되시길...
civilian [civilian]   2003-08-07 17:45 X
이런.. http://www.components4developers.com 입니다. s를 하나 빼먹었군요.
civilian [civilian]   2003-08-07 17:50 X
벤치마크 자료를 보니 인덱스 없이 100,000건의 데이터를 추가하는데 8초 정도 걸린다는군요.
벤치마크 바로가기
http://www.components4programmers.com/products/kbmmemtable/kbmMemTable_benchmark2.htm
수야!╋ [sooya23]   2003-08-07 18:24 X
^^
강영준 [k700k]   2003-08-07 19:12 X
속도가 중요한게 아닙니다. 초극악 스피드 보다는 안정된 시스템 유지에 목적이 있습니다.
스트링그리드를 이용해서 자료를 저장하다 보면 메모리를 많이 잡아먹어서 전반적인 성능저하를 가져 오기 때문이죠.. 또한 스트링그리드의 데이타를 초기화 하면서 메모리에서도 제거를 할려고 해도 지금 저로서는 방법을 모르고 있습니다. 속도 보다는 메모리를 적게 잡아 먹는 방법을 알고 싶은거죠. ^^

정 안되면 일정 데이타가 들어 오면 text파일로 저장했다가 다시 불러와서 사용하는 방법을 이용해도 되겠죠..
강영준 [k700k]   2003-08-07 19:15 X
예전엔 TChart에다 그래프를 보여 주면서 자료를 저장도 하고 TChart가 가지고 있는 데이타를 저장하고 엑셀파일로 만들고 그렇게 했는데요.. 메모리를 더 많이 잡아 먹더군요.
박정모 [primitic]   2003-08-07 19:45 X
구매의사가 없다니 전혀 필요없는 말이겠지만, 한마디 거든다면... 저의 솔류션은 60메가
의 데이타를 load한 경우 63-64 메가 정도의 메모리만 차지합니다. 저 kbmMemTable은
써봤지만 만족할 만한 성능이 나오질 않고, 버그까지 만만찮게 있어서... ^.^a
정성훈.해미 [sage5nor]   2003-08-07 21:17 X
생각의 차이겠지만....
내가 개발한 것이라도 공개하서는 안될 것(해당 업체와 소스보안유지 계약을 한 것)이 아니면 저는 공개합니다.
어떤 것이든 100% 완전할 수는 없습니다.
유감이네요..................................
박정모 [primitic]   2003-08-07 23:21 X
생각의 차이는 인정 하십시요. 그 차이가 멸시와 차별의 대상이 아닐텐데 공교롭게도 못되
게 행동하려는 사람들이 많더군요. ^.^
civilian [civilian]   2003-08-07 23:36 X
만들었다는 솔루션을 공개하든 하지 않든 그것은 박정모씨가 결정할 일이니
공개하라 마라 하고 싶지 않습니다. 그러나 이곳이 비영리로 운영되는 사이트이고
프로그래밍에 관련된 지식을 나누는 곳인데 가지고 있는 솔루션을 팔겠다는
제안은 그리 적절치 않아보입니다. 차라리 게시판을 통하지 않고 이메일로
처리하는 것이 좋았으리라 생각되는군요.
박정모 [primitic]   2003-08-07 23:43 X
앗!... 그렇군요. 저의 생각이 짧았습니다. 그 부분을 생각하지 못했군요. 으흐흠... 진심으
로 그 부분을 사과 드립니다. 앞으로는 비영리로 운영되는 사이트에 상업적 목적의 게시물
을 올리는걸 자제 하겠습니다. 하~ 정말 큰 실수를 했군요. 죄송합니다.
수야!╋ [sooya23]   2003-08-08 10:20 X
자제 보다는 금하여 주세요~
조대현.daf [gloomynebula]   2003-08-08 20:43 X
다들 수고하십니다

+ -

관련 글 리스트
7606 1회성의 방대한 자료를 저장 하는 가장 최적의 방법은 어떤걸까요? 강영준 1435 2003/08/07
7618     Re:1회성의 방대한 자료를 저장 하는 가장 최적의 방법은 어떤걸까요? 박지훈.임프 959 2003/08/08
7616     사과 드립니다. ㅠ.ㅠa 박정모 1051 2003/08/07
7626         Re:사과 드립니다. ㅠ.ㅠa 국진(Ghost) 888 2003/08/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.