C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[36708] 감사합니다.
권기식.별사랑 [orion96] 785 읽음    2004-08-11 13:27
아, 그렇군요...
그런데 이미 아래의 루틴을 돌기 전에 메모리 할당은 모두 끝내는데도 이런 문제가 생길 수 있을까요?

소스를 천천히 다시 한 번 살펴봐야겠군요..

감사합니다..


유영인  Cuperido 님이 쓰신 글 :
: 어떤것을 하는 루틴인지 몰라서 더 빠른 알고리즘을 드리기는 어렵지만,
: 처음에 빠르고 나중에 느린것은, 대부분 메모리에 관련된 부분입니다.
:
: 심지어, 메모미를 많이 사용하게 되면 하드디스크까지 메모리화 해서
: 사용을 하니, 당연히 시스템 메모리와 하드 디스크에서 읽는 속도는 당연히
: 차이가 나겠지요.
:
: 처리를 하신 후, 필요없는 메모리를 해제하시고 다시 할당하시는 그런 부분을
: 만들어 두신다면, 도움이 되실것 같습니다.
:
:
: cuperido
:
:
: 권기식.별사랑 님이 쓰신 글 :
: : 이전부터 가지고 있던 문제이자 의문이었는데요..
: : 아래와 같은 루틴이 있습니다.
: : 이 루틴을 적게는 백만번에서 수백만번, 천만번까지 돌게 되는데요..
: : 초반에는 좀 빠르게 돌아갑니다... (프로그레스 바로 진행 상태를 출력합니다.)
: : 점점 프로그레스 바 올라가는 속도가 느려집니다.
: : 50% 정도 돌리고 나면 처음 속도의 50% 아래로 떨어지기 시작하더군요..
: :
: : 무슨 문제일까요?
: : 루프 안에 또 루프, 비교... 이런 것들 때문일까요?
: :
: : 이것보다 좀더 빠른 알고리즘을 찾아야 할텐데... 머리가 안굴러가는군요.. 쩝
: :
: :     if(TopLight) {
: :         for(int i = 0; i < cnt_x && !bStop; i++) {
: :             if(Px->InitializeX(socketX, lampDiameter, lampPosition)) {
: :                 while(Px->GetIntensity() > 0.001) {
: :                     Px->NextPoint();
: :                     if(!Px->UpperBound()) {           
: :                         if(Px->Correction())       
: :                             Brightness->Catch(Px->GetPosition(), Px->GetIntensity());
: :                         break;
: :                     }
: :                     else {                       
: :                         if(Px->Correction())          
: :                             Px->Scatter();           
: :                         else
: :                             break;
: :                     }
: :                 }
: :             }
: :             ProgressBar->StepBy(1);
: :             StatusBar->Panels->Items[0]->Text = IntToStr((i+1) * 100 / cnt) + "%";
: :             IdleLoop();
: :         }
: :    }

+ -

관련 글 리스트
36686 루프 장시간 실행시 느려지는 문제. 권기식.별사랑 813 2004/08/10
36704     Re:루프 장시간 실행시 느려지는 문제. 유영인 Cuperido 919 2004/08/11
36708         감사합니다. 권기식.별사랑 785 2004/08/11
36709             Re:감사합니다. 유영인 Cuperido 838 2004/08/11
36710                 그렇군요.. 권기식.별사랑 794 2004/08/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.