close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

비주얼 베이직 속도 향상 팁

2019.02.03 18:27

골롱 조회 수:29

비주얼베이직 속도 향상 팁 45가지


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를 사용하는 것이 빠르다.>= 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. 문자열 크기를 검사할 때,> 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. SQL문을 사용하는 것 보다는 Index를 이용한 VB코드를 사용하는 것이 빠르다. SQL은 느리기 때문에 같은 동작을 하는 SQL문을 실행하는 것보다 인덱스를 이용한 VB 코드를 사용하는 것이 빠르다.

--->> 이 부분에 대해서는 저 자신은 잘못된 것이라고 생각합니다.
SQL문이 VB코드보다 훨씬 빠릅니다.  실례로 제가 우편번호 자동입력기능을 구현하려고 한 적이 있었습니다.  텍스트박스에서 동이름을 입력하고 엔터키를 치면 주소와 우편번호가 자동으로 입력되도록 한 것이었습니다.  물론 동일한 이름이 존재할 때는 선택할 수있는 창이 뜨구요.  근데 여기서 비베코드를 사용할때는 상당한 시간 지연이 있었습니다. 우편번호자료는 거의 8000개 정도가 되니까요.  그래서 SQL문을 사용했는데 아주 빠른 속도를 보였습니다.  SQL은 데이터베이스 전용언어이기때문에 데이터베이스부분에서는 반드시 필요한 부분입니다.  참고로 아주 적은 자료량에서는 비베 코드가 오히려 빠를 수도 있습니다.


32. 비슷한 작업을 하는 컨트롤을 배열로 작성하면 코드의 양을 줄일 수 있을 뿐만 아니라, 처리속도도 향상된다.


33. 간단한 작업을 처리하는 함수는 함수보다는 해당 코드를 작업을 원하는 프로시져에 직접 코딩하는 것이 빠르지만, 좀 복잡해지거나, 길어지는 코드는 함수로 작성하면 디버깅도 쉬울 뿐만 아니라, 코드의 양을 줄여 속도도 향상시킬 수 있다.


34. 다국어를 지원하고자 한다면 리소스파일을 이용하면 별다른 작업 없이도 다국어를 지원할 수 있는 어플리케이션을 만들 수 있다.


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키를 누르면 된다.


45. 변수형식 선언을 쉽게하려면, Def를 이용하면 된다.

DefInt i - i로 시작하는 것은 모두 Integer형식.
DefStr s, c - s나 c로 시작하는 것은 모두 String형 변수.
DefInt i-k - i에서 k로 시작하는 것은 모두 Integer형 변수.


DefBool (Boolean)
DefByte (Byte)
DefLng (Long)
DefCur (Currency)
DefSng (Single)
DefDbl (Double)
DefDec (Decimal)
DefDate (Date)
DefStr (String)
DefObj (Object)
DefVar (Variant)

이상이 베이직에서 사용하는 변수지정문이다.

번호 제목 글쓴이 날짜 조회 수
공지 자료실 안내 공지입니다. 게임존 2017.06.06 551
792 포토샵 유용한 디자인 브러쉬#3 [1] file 하북이 2019.03.27 35
791 포토샵 유용한 디자인 브러쉬#2 [1] file 하북이 2019.03.27 30
790 포토샵 유용한 디자인 브러쉬 [1] file 하북이 2019.03.27 45
789 포토샵 대체 프로그램 [김프] file 하북이 2019.03.27 26
» 비주얼 베이직 속도 향상 팁 골롱 2019.02.03 29
787 VB글자보안소스 file 아틀라스 2019.01.09 26
786 접속기소스 [1] file 아틀라스 2019.01.09 196
785 C언어 기본 강의 file 태나보다 2018.12.19 57
784 PPT 디자인 템플렛 file 태나보다 2018.11.22 38
783 디자인폰트 file 태나보다 2018.11.22 26
782 사주보는 프로그램 file 랑이비 2018.10.08 60
781 책(txt)보는 프로그램 file 랑이비 2018.10.08 23
780 하드의 현재상태를 볼수 있다. file 랑이비 2018.10.08 23
779 윈도우7 파일 탐색기보다 빠른 탐색기 file 리브레규 2018.10.02 22
778 카페 블로그에서 마우스 우클릭 허용 프로그램 file 리브레규 2018.10.02 28
777 정규식 테스터 및 소스코드 생성기 file 리브레규 2018.10.01 23
776 메탈다크 스타일입니다. file 닉케이 2018.09.11 25
775 Free-Ink-Brushes 브러시입니다. [1] file 닉케이 2018.09.11 21
774 텍스트 일괄 인코딩 file 리브레규 2018.09.10 18
773 BOM Remover file 리브레규 2018.09.05 10
772 포토샵디자인소스 file 케이군 2018.07.24 79
771 VB6 dll 인젝터 소스 file 한강산 2018.07.19 42
770 포토스케이프 file 재이 2018.07.17 11
769 마이크증폭기(?) 재이 2018.07.17 26
768 사쿠라 에디터 file 재이 2018.07.15 42
767 사진캡쳐기 file 재이 2018.07.15 7
766 C언어 공부 PPT 파일 file 아리가또고자 2018.07.03 49
765 수채화 브러쉬 file 미르쨩 2018.06.18 15
764 비쥬얼 스튜디오 file 백금 2018.06.13 31
763 Microsoft Toolkit 2.6.1 Final file 부르마블지존 2018.05.21 76
762 뮤바비 포토 에디션 5.1.0 file ninitan 2018.04.14 24
761 포토샾 기술319가지 file ninitan 2018.04.14 69
760 openCanvas_5.5.08 file ninitan 2018.04.05 16
759 에디트 플러스 3.7.610 file 제임스딘 2018.03.23 21
758 구라제거기 (은행 보안프로그램 클리너) file 트로피카 2018.02.16 35
757 메이플 알파벳 모음 file Set 2018.01.25 82
756 불이 타오르는 브러쉬 file 다리 2018.01.07 30
755 잉크가 번지는듯한 브러쉬 file 다리 2018.01.07 33
754 길드워2 브러쉬 file smartsims 2018.01.02 33
753 다양한 아이콘 파일 file YeRoN 2018.01.02 29
752 클라우드 및 네트워크 아이콘소스 file YeRoN 2018.01.02 17
751 2018 달력 소스 PSD file YeRoN 2018.01.02 35
750 3dp chip file 루비아이 2017.12.25 16
749 윈도우7 아이콘 파일 file Hades 2017.12.24 22
748 꽃잎 날리는 브러쉬 file Hades 2017.12.24 27
747 하트 브러쉬 file 설군2 2017.12.18 20
746 포토샵 조경소스 입니다. file 헤이브로 2017.12.15 306
745 포토샵 고리타분 패턴 file 미르Mir 2017.12.14 17
744 포토샵 편지지,청첩장 PSD file 미르Mir 2017.12.14 31
743 포토샵 캘린더 UI file 미르Mir 2017.12.14 18