프로그래밍/VB.NET

[VB.NET] 속도 향상 팁 - 불필요한Object변수(Variant) 미사용

ss-pro 2023. 6. 16. 22:41
반응형

VB.NET을 사용해서 프로그램 작업을 할때 루프문에 간혹 실수로 데이터 형을 선언하지 않는 경우가 있습니다. 이런 경우 컴파일러에서 에러로 처리 하지 않고 자동으로 변환되어서 처리가 됩니다.  이럴경우 상당한 속도차이가 있으니 관련 부분이 있는 경우는 주의 하시기 바랍니다. 

아래 소스코드는 변수 a를 데이터형을 선언하지 않았는데 이러면 object형으로 처리됩니다. b는 int형으로 해서 For문을 1000회 동작시켜서 테스트 해보았습니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Module Module1
 
    Sub Main()
        Dim a
        Dim b As Integer
        Dim loopCnt As Integer
 
        loopCnt = 1000
        Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff"))
        For a = 1 To loopCnt
        Next a
 
        Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff"))
        For b = 1 To loopCnt
        Next b
        Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff"))
        Console.ReadLine()
    End Sub
 
End Module
 
cs

실행결과  
실행속도차이가 object형은 33m/s가량 int형은 1m/s가량이 소요된것을 확인 할 수 있습니다.