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


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


LIST ALL
Posted by ps.이진백2004-07-16 22:23:50, Hit : 5924
[팁#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
40
   메모, ㅎ리스트박스 등에서, 속도향상 팁 [7]
박종훈 2006/11/11  5788
39
   '문자찾아'의 속도비교 [4]
바람 2009/02/22  6224
38
   'ㅎ문자열' 사용하기 [1]
지상현 2011/01/14  5116
37
   'ㅎ메모'의 문자찾아 속도 비교 2탄.[2011.12.20 12:45 내용... [1]
바람 2011/12/20  4685
36
   'ㅎ메모' 문자찾아 최종.
바람 2012/11/11  5107
35
   [헛소리] 창조에서 동적 메모리 할당에 대해서 -_- [7]
지상현 2004/05/20  6058
34
   [팁]창조로 만든 프로그램에서 윈도우의 열려있는 모든 창을 ... [8]
김환욱 2002/10/29  6543
33
   [팁]에디트에 적은 문자를 리스트박스에서 찾기..
김환욱 2002/11/24  5819
32
   [팁] 파일에 정수값 쓰기
지상현 2005/10/05  5599
31
   [팁] 실행파일 용량을 확실하게 줄이자! [19]
황현석 2004/10/30  6879
30
   [팁] 나만의 스타일 나만의 팝메뉴 [6]
권선중 2003/11/18  5692
29
   [팁] ^ㅁ^ [4]
박재성[날개달기] 2005/04/14  5343
28
   [팁#2] 파일에서 정수값 읽기!
지상현 2005/10/05  5861

   [팁#12] 효율적인 반복문 4가지 팁 [11]
ps.이진백 2004/07/16  5924
26
   [초급] 01. 창조란 무엇인가? [9]
정윤부 2002/11/01  6038
25
   [창조 1.0] 팝업메뉴 사용 시 '제어'와 '보이기' 사용
바람 2018/01/05  2650
24
   [창조 1.0] 'ㅎ메모'의 '문자찾아'
바람 2018/01/05  2624
23
   [등록완료] 창조만을 이용하여 파일합치고 풀기 [2]
박재성 2007/02/08  6296
22
   [대빵초급] 창조 문법??? 인가??ㅋㅋ [3]
김진영 2003/01/02  5246
21
   [대박!] 메모리 사용률 확! 줄여보자 ㅋ [5]
박종훈 2006/08/12  6422
20
   [ㅎ메모] 창조만으로 알수없는 것을 API로 얻기
박종훈 2008/07/19  5794
19
   [ㅎ메모] 단어구분[자동줄바꿈] 속성에 주의하자! [5]
박종훈 2006/08/10  7482
18
   [tip] 프로그램을 좀더 쉽게 익히려면... [4]
권선중 2003/01/10  5065
17
   [TIP] 프로그램 제작시 프로그램크기는 무시하세요.... [4]
권선중 2005/03/09  5778
16
   [tip] 포커스란.. 그리고 응용방법
권선중 2003/09/09  5334
LIST ALL   Prev [1] 2 [3] 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이희철
로그인