창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


창조 팁
- '창조' 에 관한 팁을 올리는 곳입니다. 다수의 이미지가 필요하시면 아래 '이미지 자료실' 에 업로드 후 불러와 주세요..


LIST ALL
Posted by ps.이진백2004-07-16 22:23:50, Hit : 5836
[팁#12] 효율적인 반복문 4가지 팁
Homepage : http://gpro.ev7.net/
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=tip&no=205
일부 분들께서 반복문을 비효율적으로 만드시는 듯 해서 올려봅니다.

창조를 하다보면 느끼는것 한가지가 있습니다.
반복문이 (상대적으로) 느린편이라는 겁니다.

그걸 보완하기 위한 여러 기술이 있는데(일부는 창조에서 불가)
그것들을 소개해드릴까 합니다.

1. 시각적 컴포넌트를 직접 수정하지 마세요.
시각적 컴포넌트란 ㅎ리스트박스 등 보이는 컴포넌트를 의미합니다.
반복문 내에서 이것들을 쓰게되면, 매우 느려지게 되죠.
왜냐하면 보여야 할 추가 작업을 해야 하기 때문이죠.
(숨기기 해도 소용없습니다. 무조건 숨어서라도 보이는 작업 합니다)

이럴때는 그냥 ㅎ문자열(ㅎ리스트박스 말고)을 동적 생성하여 씁니다.

2. 예의상 '같이실행해;'를...
같이실행해; = Application.ProcessMessages;
같이실행해 명령어가 프로그램에 내려진 메시지(명령과 반응)를 처리하라는 뜻인겁니다. 이 명령어가 없으면, 반복문이 끝날때까지 프로그램 유지를 안 합니다. 이 때문에 (응답 없음)이 뜨기도 하죠. 반복문이 끝나야 다시 돌아오는 법이거든요.
같이실행해; 를 반복문의 끝에 넣어주세요.

3. 반복문 내 잡다한 코드를 지워라
반복문에 쓸데 없는 코드가 군더더기 있거나, 한번만 수행해도 되는 코드가 있다면 당장 지우세요. 이렇게 하다보면 비효율적이고 느려지게 되는거 말 안해도 아시죠?

(잘못된 예)
  되풀이() {
    진리: 그만;
    메모0.내용.전체문자:="너는 즐";
    만일(메모0.내용.부분문자(0)="너는 즐") {
      그만:=부정 그만; 그쳐; } }

(잘된 예)
  진리: 그만;
  메모0.내용.전체문자:="너는 즐";
  되풀이() {
    만일(메모0.내용.부분문자(0)="너는 즐") {
      그만:=부정 그만; 그쳐; } }

4. while 대신 for 문을...
창조를 제외한 거의 모든 프로그래밍 도구에는 for문이 있습니다.
한번 실행할때마다 특정 정수를 1씩 증가 또는 감소 시키는 방법인데,
이것은 어느 횟수에 맞춰 할 경우 유용합니다.
while이나 repeat보다 훨씬 빠르죠.

델파이에서는 다음과 같은 문법입니다.

var i,j: integer;
begin
for i:=0 to 9 do begin
j:=j+i;
Label1.Caption:=inttostr(j);
end;
end;
//으 지저분해라 -_-;

이 경우는 창조에 적용되지 않아서 하얀 글씨 처리했습니다.
이거 발견하는 분이 있긴 하려나 -_-;


지금까지 살펴보았는데, 괜찮은가요... 너무 어리석은 이야기만 했나...
그럼 어영 숙제 해야지... 아이고 졸려;

정성우   2004-07-16 PM 10:51:40  
4번째 팁을 숨기셨네요?
지상현   2004-07-16 PM 10:57:23  
속도면에서, 같이실행해; 를 넣으면 속도가 심각하게 줄어듭니다...
카운터 변수를 이용해서, 10번에 한번씩 실행하게끔 하는 방법이 추천되고 있습니다.
ps.이진백   2004-07-17 AM 7:30:16  
그래도 장시간 해야하는 반복문은 같이실행해;가 필요할텐데요.
멀티 쓰레드도 불가능한데;;
김환욱   2004-07-19 AM 12:04:35  
저도 같이실행해는 꼭 필요할때만 사용합니다.
김정엽[닷넷]   2004-07-20 AM 9:50:35  
허허..................................
모든것을 다 떠나서 컴퓨터가 반복문을 10000번동안 돈다고 할때의 시간이 얼마나 된다고 같이실행해를 -_-;
1000000정도 돌아야 한 1~2초 되겠죠
저는 600mhz라 그렇지 요즘 나오는최신컴들은 그건 같이실행해 할 필요도 없는..
만약 빠른 속도로 최적화된 프로그래밍을 하려고 하면 창조로 하는 자체가 잘못된게 아닐까요?
창조의 무기는 쉽게 배울수 있다는 점과 그에 따른 생산성인데;
ps.이진백   2004-07-20 AM 10:37:11  
반복문을 쓰는데 가장 좋은 법은 멀티 쓰레드죠.
하지만 창조는 그 대신 같이실행해; 를 쓸 수 밖에 없습니다.
최재일   2004-07-21 AM 9:29:55  
저두 꼭 필요한 경우 아니면 같이실행해; 안씁니다..
반복문 도는 횟수가 많을경우, 그 진행상황을 ㅎ이름표같은데 표시하면 안뜨지만 ㅎ눈금계에 적용시키면 진행상황이 뜨져..
지상현   2004-09-24 PM 7:37:01  
제 말은...1000번 반복문 돌릴 때, 10번마다 100번 만 같이실행해; 가 되도록 하면 좀 더 빠르고 멈추지도 않는다는 소립니다.
최재일   2004-09-25 PM 3:41:09  
같이실행해 명령어를 너무 남발하면 실행속도가 떨어지니,
상현님 말처럼 해도 유용하겠군요.. ^^
지상현   2005-10-08 AM 10:55:47  
같이실행해; = Application.ProcessMessages; = DispatchMessage()

한가지 더 추가하자면, 진행률 표시가 있다면, 그 것만 업데이트 하는 부분을 반복문 안에 작성하는 거죠.
같이실행해는 모든 처리를 다 하려 하는데 꼭 필요한 것만 하면 더 빠를 겁니다.
지상현   2005-10-08 AM 10:58:37  
김정엽// 음, 단순히 반복만 하는 거면 문제 없죠. 하지만 그 안에 1~2초씩 걸리는 작업을 만 번 돌리면 어찌되는 겁니까? -.-
LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
142
   [팁#13] 여러 파일을 동시 삭제할때
ps.이진백 2004/07/20  5500
141
   [tip] 균일한 랜덤재생하기.. [3]
권선중 2004/07/17  4768

   [팁#12] 효율적인 반복문 4가지 팁 [11]
ps.이진백 2004/07/16  5836
139
   마우스 커서관련팁. [6]
이시영 2004/07/16  4992
138
   [팁#11] 진리형 팁 두번째 [5]
ps.이진백 2004/06/22  4962
137
   단축키 만들기... [6]
손상진 2004/06/17  5821
136
   stream 에대해서 물어본거같은데 - -;; [3]
날개달기 2004/05/28  5053
135
   URLTODOWNLOAD 사용시... [3]
날개달기 2004/05/28  5454
134
   객체수에 대한 정보.. [4]
김진일 2004/05/25  4536
133
   xp에서의 0.76닫기 아이콘 등 제대로 쓰기 [2]
정성우 2004/05/24  5109
132
   '정보창보여'의 미지의 세번째 인자의 비밀 [5]
지상현 2004/05/20  4837
131
   [헛소리] 창조에서 동적 메모리 할당에 대해서 -_- [7]
지상현 2004/05/20  5918
130
   [알고리즘] 팩토리얼 구하는 프로그램 작성 [4]
느와르닷넷 2004/05/16  6289
129
   [팁#10] 진리형을 사용할 때 유의할 점 [5]
ps.구루 2004/05/16  5316
128
   ㅎ메모, 스크롤바 블록으로 자동으로 찾아가기.. [7]
손상진 2004/02/12  5710
127
   프로그램 버전업 업데이트....
위자드 2004/02/03  5368
126
   [팁#9] 정보창보여를 알아본 결과
ps.구루 2004/01/07  5602
125
   [알아두기] 그림판...그림할당해..
권선중 2003/12/26  4920
124
   [활용]그림판 사진 합성 방법 [1]
권선중 2003/12/26  8584
123
   [팁#8] 콤보박스에 감춰진 팁 [3]
ps.구루 2003/12/18  5671
122
  비밀글입니다 gplay로 소리 재생하기
쵸우싸진 2003/11/21  10
121
   [팁] 나만의 스타일 나만의 팝메뉴 [6]
권선중 2003/11/18  5605
120
   [팁] 웹 DB와 창조의 연결 [3] [1]
권선중 2003/11/17  5141
119
   [팁] 웹 DB와 창조의 연결 [2]
권선중 2003/11/17  5152
118
   [팁] 웹 DB와 창조의 연결 [1]
권선중 2003/11/17  5276
LIST ALL   Prev [1][2][3][4][5][6][7][8] 9 [10]..[14] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인