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


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


LIST ALL
Posted by ps.이진백2004-07-16 22:23:50, Hit : 5845
[팁#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
317
   [알고리즘] 팩토리얼 구하는 프로그램 작성 [4]
느와르닷넷 2004/05/16  6292
316
   [등록완료] 창조만을 이용하여 파일합치고 풀기 [2]
박재성 2007/02/08  6191
315
   '문자찾아'의 속도비교 [4]
바람 2009/02/22  6166
314
   팁입니다 ㅡ,ㅡ;; 확장자없는 미디어 사용하기 ㅡㅡ; [1]
만물 2005/10/04  6166
313
   [팁#2] 키보드 값 구하기 [1]
ps.구루 2002/12/08  6109
312
   (Tip(?)) 명령어 편집창에서 키보드로 블록(선택)잡기 [4]
qkrwhdgns 2005/10/03  6066
311
   업데이트에 대해서... [1]
위자드 2003/11/02  6066
310
   [소스]창을 화면 가운데로 표시하기 [5]
김환욱 2002/09/19  6061
309
   kmht4u의 뭐뭐한 강좌! [키제어에 관해] [3]
kmht4u 2002/11/03  6042
308
   메모장(제목 없음 - 메모장)이 실행되면 닫아버리고 없으면 ... [5]
이희창[빙고] 2006/03/15  6040
307
   창죠 문법 과 델파이 문법 비교..;; [2]
김진영 2003/01/02  6007
306
   창조에서 동적 메모리 할당 [3]
지상현 2004/09/25  5999
305
   [Tip] 창조로 엑셀파일 형식으로 저장하기~ ㅋ [6]
최재일 2005/09/04  5955
304
   ㅎ문자열:즐; 사용하기 ㅋㅋ [7]
박종훈 2006/07/08  5949
303
   [초급] 01. 창조란 무엇인가? [9]
정윤부 2002/11/01  5948
302
   [헛소리] 창조에서 동적 메모리 할당에 대해서 -_- [7]
지상현 2004/05/20  5931
301
   현자의 코드 [3]
김제형 2007/11/12  5918
300
   FILETIME 구조체 [2]
박종훈 2009/02/21  5908
299
   윈도우 방화벽 허용 명령어 [4]
박종훈 2009/02/24  5874
298
   [역시 간단팁]URL을 메체재생기로 재생하라! [3]
靑色糖™ 2002/11/18  5862
297
   [api] 작업관리자에서 프로그램 숨기기 [4]
박재성[날개달기] 2006/03/22  5851
296
   문법검사기가 "(" 를 파싱해 오류를 냅니다. [1]
박종훈 2010/07/18  5846

   [팁#12] 효율적인 반복문 4가지 팁 [11]
ps.이진백 2004/07/16  5845
294
   [펌] 난수 사용하기
위자드 2002/11/24  5844
293
   [0.9b] "메뉴 항목_" 이여 안녕! [2]
지상현 2004/12/19  5839
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이희철
로그인