2011-05-06 3 views
2

성능이 중요한 응용 프로그램에서는 의 눈에 띄는 이점이 있습니까? 시나리오 2 (체인 호출 생성자) 대 시나리오 1 (완전히 별도의 생성자) 대요?다른 생성자를 호출하는 생성자 : 성능 문제가 있습니까?

시나리오 1

Class TwoInts 

    Private a, b As Integer 

    Public Sub New(ByVal a As Integer, ByVal b As Integer) 
     Me.a = a 
     Me.b = b 
    End Sub 

    Public Sub New(ByVal a As Integer) 
     Me.a = a 
     Me.b = 0 
    End Sub 

    Public Sub New() 
     Me.a = 0 
     Me.b = 0 
    End Sub 

End Class 

시나리오 2

Class TwoInts 

    Private a, b As Integer 

    Public Sub New(ByVal a As Integer, ByVal b As Integer) 
     Me.a = a 
     Me.b = b 
    End Sub 

    Public Sub New(ByVal a As Integer) 
     Me.New(a, 0) 
    End Sub 

    Public Sub New() 
     Me.New(0) 
    End Sub 

End Class 

답변

4

아니요, 눈에 띄는 차이는 없습니다.

자신 만의 벤치 마크를 실행하여 확인할 수 있습니다.

0

속도는 매우 다른이어야한다. Thjere 깊은 일에 베어 생성자 만이 개 더 많은 통화는 ...하지만 :

당신은이 생성자를 호출 할 생성자에 대해 어떻게 생각하는지 언어 C#을 요청해야합니다 : P 아주 잘 안 것이 를, 그래서 "초기화 메소드"를 만드는 것과 같은 다른 접근 방법을 고수하고 각 생성자에서 호출하고 더 읽기 쉬운 코드를 작성해야한다고 생각합니다. 거기서는 ": this (0)"표기법을 읽을 필요가 없습니다 (예를 들어 읽을 때 절차 적으로). 그리고 무언가를하는 시점에 도달하기 위해 전화가 한 번 덜 걸립니다.

0

눈에 띄는 부분에 따라 다릅니다. 시나리오 1에서는 추가 호출을 소개하지만 추가 시간은 밀리 초 단위로 측정됩니다. 시나리오 2는 더 빠를 것입니다.

관련 문제