프로그래밍 속도 및 프로그래밍 기법 44가지
4. 프로그래밍 속도 및 프로그래밍 기법 44가지 |
1 | 프로젝트를 컴파일하기 전에, 베이직을 종료하고, 컴퓨터를 재시작하라. 그리고, 프로젝트를 컴파일하게 되면, 메모리에 남아 있는 자질구레한 변수들이 사라지게 되고, 파일 사이즈를 줄일 수도 있다. |
2 | 프로젝트를 컴파일하기 전에 사용하지 않는 변수와 서브 프로시져, 선언문, 컨트롤 같은것을 제거하라. 이것은 파일크기를 상당히 줄여줄 것이다. |
3 | 프로그램을 종료할 때는 END문을 사용하라. 프로그램의 종료코드나 QueryUnload이벤트에 End문을 사용하면 프로그램이 메모리에 남아 있지 않도록 해 준다. |
4 | Variant 변수 사용을 자제하라. 변수를 선언할 때 형식을 지정해 주지 않으면 베이직은 자동으로 그 변수를 Variant형식으로 지정하게 되는데, Variant형식의 변수는 매우 느리기 때문에 프로그램의 성능을 저하시키는 원인이 된다. |
5 | 폼의 선언부에 Option Explicit문을 추가하라. Option Explicit문을 추가하게 되면, 선언되지 않는 변수는 사용할 수 없게 되므로, 프로그램의 오류를 줄일 수 있다. |
6 | 컨트롤명을 작게 만들어라. 폼이름이나 컨트롤의 이름은 EXE파일에 추가된다. 따라서 이러한 이름들을 작게 만들면 프로그램의 크기를 줄일 수 있다 |
7 | 주석을 많이 사용하라. 주석문은 EXE파일에 추가되지 않는다. 대신에 주석문을 많이 사용하게 되면 프로그램 |
8 | 스크린 해상도에 주의하라. 사용자의 컴퓨터는 항상 같은 스크린 해상도를 갖는 것은 아니다. 따라서, 낮은 해상도에서 만든 프로그램은 높은 해상도를 갖는 스크린에서는 문제가 될 수 있다. 물론 그 반대의 경우도 가능하다. |
9 | 프로젝트를 텍스트형식으로 저장하라. 이진형식으로 저장된 프로젝트는 다른 편집기에서 편집하기에도 불편할 뿐더러, 실행파일의 크기를 증가시키는 원인이 된다. |
10 | 프로젝트를 자주 저장하라. 커다란 프로젝트 작업을 하거나, API로 작성된 코드를 실행할 때는 프로그램이 비정상으로 종료되는 경우가 발생된다. 이런 경우엔 지금까지 작업한 코드가 사라지게 되므로 자주 저장하는 습관을 기른다. |
11 | TEMP디렉토리의 임시파일을 제거하라. 응용프로그램은 여러개의 임시파일을 만드는데, 이 임시파일은 시스템의 성능을 저하시키는 원인이 되기도 한다. 자주 확인해서 삭제해 주는 것이 시스템의 성능을 향상시키는 효과를 볼 수 있다. 그러나 실행중인 프로그램의 임시파일을 삭제하면 프로그램이 비정상적으로 종료 하므로 주의해야 한다. |
12 | Database Transaction을 사용하면 Database 처리 속도를 향상시킬 수 있다. |
13 | Move메소드는 Top, Left프로퍼티를 설정하는 것보다 빠르다. |
14 | Msgbox는 Breakpoint가 설정되면, 디버깅할 때 이벤트 순서를 변경할 수 있다. |
15 | Logical/Integer필드에서 0이 아닌 값을 사용하는 것 보다는 True를 사용하는 것이 빠르다.If ANumber = 0 Then보다 If ANumber Then이 빠르다. |
16 | 여러라인을 들여쓰기를 하거나 혹은 들여쓰기를 취소할 때는 단축키를 사용하면 효과적이다. Tab키는 선택된 라인을 들여쓰기 하고, Shift-Tab키는 선택된 라인의 들여쓰기를 해제한다. |
17 | 컨트롤배열을 사용하지 않고, 폼에 같은 컨트롤을 여러개 만들려면, 컨트롤을 누를때 Ctrl키를 누르거나, 혹은 원하는 컨트롤 아이콘을 Drag시키면 된다. |
18 | 폼을 디자인할 때 컨트롤을 빠르게 폼에 놓으려면, 컨트롤 아이콘을 더블클릭하라. 그러면 폼의 중간에 컨트롤들이 나타날 것이다. |
19 | 픽쳐박스나 폼의 AutoRedraw속성을 True설정하면 픽쳐박스나 폼의 내용이 왜곡되지는 않겠지만, 메모리를 많이 차지하는 요인이 되기도 한다. |
20 | 개체 프로퍼티 윈도우를 호출할 때, 보통 오른쪽 마우스 클릭을 사용하지만, F2키를 누르면 [개체 찾아보기]윈도우가 호출된다. |
21 | Boolean변수를 토글할 때는 IF...Then...Else를 사용하는 것 보다는 PreviewOn = Not PreviewOn 과 같이 하는 것이 빠르다. |
22 | Image컨트롤은 PictureBox컨트롤보다 훨씬 빠르다 |
23 | 문자열 크기를 검사할 때, If Len(SomeString$) = 0 Then보다는 If Len(SomeString$) Then이 빠르다. |
24 | 두 변수를 효율적으로 스왑하려면 다음 코드를 이용한다. a = a Xor b: b = a Xor b: a = a Xor b 이렇게 하면 A와 B의 두 변수는 스왑된다. |
25 | 간단하고 효율적인 코드는 저성능의 컴퓨터에서도 효과적으로 작동한다. |
26 | 컨트롤이 갖는 기본 속성을 이용하면 속도를 증진시킬 수 있다. 텍스트박스를 사용할 때는 txtBox.Text보다는 txtBox가 빠르고, 라벨컨트롤을 사용할 때는 lblLabel.Caption보다는 lblLabel이 빠르다. |
27 | 작업할 때는 가능한한 작은 크기의 데이타형식을 사용하라. Long형식이나, Double형식보다는 Integer형식이 빠르다. |
28 | 디버깅작업할 때, Breakpoints대신에 Debug.Print를 사용하라. 프로그램의 흐름의 중지하지 않고도 효과적인 디버깅이 가능하다. |
29 | 가능한 한 작은 수의 컨트롤을 사용하라. 컨트롤을 많이 사용하게 되면 프로그램의 성능이 저하되는 원인이 된다. 메모리와 자원도 많이 차지할 뿐더러, 실행속도도 느려지게 된다. |
30 | 적은 오버헤드로 그래픽을 그리려면 폼에 직접 그래픽을 그리면 된다. |
31 | 비슷한 작업을 하는 컨트롤을 배열로 작성하면 코드의 양을 줄일 수 있을 뿐만 아니라, 처리속도도 향상된다. |
32 | 간단한 작업을 처리하는 함수는 함수보다는 해당 코드를 작업을 원하는 프로시져에 직접 코딩하는 것이 빠르지만, 좀 복잡해지거나, 길어지는 코드는 함수로 작성하면 디버깅도 쉬울 뿐만 아니라, 코드의 양을 줄여 속도도 향상시킬 수 있다. |
33 | 다국어를 지원하고자 한다면 리소스파일을 이용하면 별다른 작업 없이도 다국어를 지원할 수 있는 어플리케이션을 만들 수 있다. |
34 | 프로그램 작성시 Select ~ Case 문은 프로그램 구조를 구분하는데는 IF문보다 좋다. |
35 | 조건문을 이용할 때는 For~Next문을 이용하는 것이 가장 빠르다. |
36 | 리스트박스에 많은 양의 데이터를 한꺼번에 넣을 경우엔 리스트박스를 ReDraw하기 때문에 속도가 현저하게 느려지는데, 이럴 경우엔 LockWindowUndate API를 사용하면 된다. |
37 | 명령버튼의 Click이벤트를 발생시킬려면, Value값을 True로 설정하면 되는데, 이것보다는 직접 프로시져를 호출하는 것이 빠르다. Call cmdADD_Click 이것은 명령버튼 뿐만 아니라, 다른 컨트롤에도 동일하게 적용된다. |
38 | 파일에서 배열을 읽고 기록할 때 하니씩 읽는 것보다는 블럭단위로 하는 것이 속도가 빠르다. |
39 | 파일을 읽거나 기록할 때는 2진형식으로 작업하는 것이 빠르고, 다양한 작업을 처리할 수 있다. |
40 | 비슷한 작용을 하는 상수는 배열로 묶어 사용하면 편리하게 이용할 수 있다. |
41 | 많은 양의 조건을 처리하는 상황에서는 정상적인 경우를 앞쪽에 모으고, 비정상적인 경우를 뒤쪽에 모으면, 가독성도 높아지고 더욱 효율적이 된다. |
42 | 자주 사용하는 문자열은 상수로 선언해서 사용하면 코드양도 줄일 수 있고, 더욱 효과적이다. |
43 | 간단한 조건검사문이라면 If이나, Select문보다는 IIF나 Switch문을 사용하는 것이 효과적이다. |
44 | 코드에서 함수나 서브루틴, 프로퍼티 루틴을 쉽게 찾으려면 Shift-F2키를 누르면 된다. |
https://m.blog.naver.com/PostView.nhn?blogId=pundlee&logNo=60127419247&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
[이 게시물은 파아란 님에 의해 2019-07-11 20:08:54 정보 에서 이동됨]