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


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


LIST ALL
Posted by ps.이진백2004-07-16 22:23:50, Hit : 5925
[팁#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
   Window Message 상수값들 -_-; [3]
박종훈 2006/03/15  6422
39
   메모장(제목 없음 - 메모장)이 실행되면 닫아버리고 없으면 ... [5]
이희창[빙고] 2006/03/15  6130
38
   프로그램에서 내용정렬양식 거부한다.. [2]
박종훈 2006/02/26  5343
37
   수동으로 창을 생성할시 주의 할점.. [1]
박종훈 2006/02/25  5076
36
   VB - 창조 명령어 비교(?) [2]
박종훈 2006/02/15  8010
35
   창조파일 연결 바꾸기.. / 창조 nhpro.ini 파일 요리하기?? [6]
qkrwhdgns 2005/12/11  5374
34
   1145 번째의 비밀(?);; [2]
qkrwhdgns 2005/11/21  5659
33
   창조에서 음수를 사용할 때 주의하자! [1]
지상현 2005/10/08  6927
32
   [팁#2] 파일에서 정수값 읽기!
지상현 2005/10/05  5861
31
   [팁] 파일에 정수값 쓰기
지상현 2005/10/05  5600
30
   팁입니다 ㅡ,ㅡ;; 확장자없는 미디어 사용하기 ㅡㅡ; [1]
만물 2005/10/04  6228
29
   (Tip(?)) 명령어 편집창에서 키보드로 블록(선택)잡기 [4]
qkrwhdgns 2005/10/03  6145
28
   [Tip] 창조로 엑셀파일 형식으로 저장하기~ ㅋ [6]
최재일 2005/09/04  6015
27
   [팁] ^ㅁ^ [4]
박재성[날개달기] 2005/04/14  5346
26
   [TIP] 프로그램 제작시 프로그램크기는 무시하세요.... [4]
권선중 2005/03/09  5778
25
   내용 에서 내용으로 문자 빨리 복사해가기.. [4]
손상진 2005/01/21  5519
24
   [팁] 실행파일 용량을 확실하게 줄이자! [19]
황현석 2004/10/30  6880
23
   창조에서 동적 메모리 할당 [3]
지상현 2004/09/25  6078

   [팁#12] 효율적인 반복문 4가지 팁 [11]
ps.이진백 2004/07/16  5925
21
   [헛소리] 창조에서 동적 메모리 할당에 대해서 -_- [7]
지상현 2004/05/20  6058
20
   메모, 스크롤바 블록으로 자동으로 찾아가기.. [7]
손상진 2004/02/12  5788
19
   [팁] 나만의 스타일 나만의 팝메뉴 [6]
권선중 2003/11/18  5692
18
   업데이트에 대해서... [1]
위자드 2003/11/02  6159
17
   [tip] 포커스란.. 그리고 응용방법
권선중 2003/09/09  5335
16
   [tip] 수를교정문법의 응용과 활용방법 [1]
권선중 2003/09/09  5262
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이희철
로그인