문제

우리의 서버 시간이 너무 오래 걸리의 하나를 구축하는 우리의 C++프로젝트입니다.사용 Visual Studio2008.하는 방법은 없을 얻 devenv.com 로그인 촬영 시간을 구축 솔루션의 각 프로젝트에는,그래서 내가 알고있는 곳에 초점을 나의 노력을해야합니까?

향상된 하드웨어 옵션이 아닌 경우에.

나는 설정을 시도했 출력 상세 정보(아래 옵션/프로젝트 및 솔루션 구축/실행/MSBuild 프로젝트를 구축 출력 상세도).이 보이지 않는 어떤 효과에 IDE 입니다.

실행하는 경우 MSBuild 명령행에서(그리고,Visual Studio2008,그것이 필요 MSBuild v3.5)표시의 총 시간 경과에서 종료,하지만 IDE 입니다.

내가 정말 원하는 시간을 촬영한 보고서 각 프로젝트를 위한 솔루션에서,그래서 내가 알아낼 수 있는 빌드 프로세스었다.

또한,때문에 우리는 실제로 사용하 넝 빌드 프로세스를 구동하는(우리가 사용하는 jetbrains 의 teamcity 는),이 있을 얻을 수 있는 방법 넝을 말해 걸리는 시간은 각 단계는?

도움이 되었습니까?

해결책

메뉴 도구옵션프로젝트 및 솔루션VC++프로젝트 설정빌드 타이밍 작업해야 합니다.

다른 팁

도구→옵션→프로젝트 및 솔루션→구축 및 실행→MSBuild 프로젝트를 구축 출력 상세 정보-설정하여"일반적인"또는"자세히"빌드 시에 표시됩니다.

Visual Studio2012 년까 2017

  • 에 대한 MSBuild 프로젝트(예:니다.Net-프로젝트):
    클릭 Tools -> Options 선택한 다음 선택 Projects and Solutions -> Build and Run.변경 MSBuild project build output verbosity 하기 Normal.그래서 그것을 표시됩니다 시간이 경과된 모든 솔루션에서 프로젝트 빌드.하지만 unfortunatily 더 경과 시간 합계를 통해 모든 프로젝트입니다.당신은 또한 구축 시작 Timestamp

  • C/C++프로젝트:

클릭 Tools -> Options 선택한 다음 선택 Projects and Solutions -> VC++ Project Settings.

변경 Build Timing 하기 Yes.

Visual Studio2012 사용할 수 있습니다 건축 모니터링 장.

에 붙어있는 경우 VS2005 사용할 수 있습니다 대 빌드-타이머 플러그인.의 끝에 그것을 건축하여 총 촬영 시간과(선택적)각각의 요약 프로젝트는 기간입니다.

면책 조항;썼습니다.그리고 그렇다,나를 만들 필요가 설치 프로그램...하루!

Tools->Options->프로젝트 및 솔루션 빌드->실행>

설정"MSBuild 프로젝트를 구축 출력 상세 정보"에서"최소한""일반"

이 질문에 사용하는 것 DevEnv 에서 명령 라인에,또한 제안을 사용하여 MSBuild (수 있습니다.sln 파일을 수정하지 않고).

msbuild /fl /flp:Verbosity=diagnostic Your.sln

msbuild /? 당신을 보여줍니다 다른 유용한 옵션에 대해 filelogger.

하려면을 시각화의 구축을 사용할 수 있습 IncrediBuild.IncrediBuild 지금에서 사용할 수 있는 독립형 모드(배포하지 않지만 사용하기 위해 만에 8 개의 중핵 로컬 컴퓨터에서)의 일환으로 무료로 Visual Studio2015Update1

면책 조항:작업에 대한 IncrediBuild

나는 끝났기 때문에 여기에 내가 원하는 날짜와 시간에 포함되는 건축 산출.해야 다른 사람들이 뭔가를 검색 유사로 추가 echo %date% %time% Pre-구축 및/또는 포스트 구축 아래에 있는 이벤트는 프로젝트 컴파일빌 이벤트.

할 첫 번째 빌드시는 프로젝트가 나타나는 첫 번째 빌드에서 출력(Ctrl + 출력 창에서).오른쪽 클릭하여 프로젝트→ 프로젝트 속성컴파일빌 이벤트Pre-구축.고 echo ###########%date% %time%#############.

그래서 때마다 당신이 볼 수를 구축한 결과(또는 동안 구축)지 Ctrl + 출력 창에서.와 어딘가에 그 지역에서 날짜 및 시간 당신의 얼굴을 쳐다!

아,그리고 당신은 끝낼 수 있습니다 추가 이러한 정보를 여러 프로젝트로 구축하기 위해 변경할 수 있습니다:)


더 나은 솔루션입니다!###

도구옵션프로젝트 및 솔루션를 구축 및 실행MSBuild 프로젝트를 구축 출력 상세 정보 =정상(또는 이상 최소).이 시간에 시작/정상 출력 창입니다. Ctrl + 출력 창에서 해야 한다.

고 싶은 경우에 우리가 얼마나 많은 시간을 참조하십시오 각 프로젝트를 가한 다음 프로젝트 및 솔루션VC++프로젝트 설정빌드 타이밍=yes.적용 가능한 모든 프로젝트;"VC++"은 잘못된 것입니다.

를 호출하려면 외부 프로그램를 추적할 수 있는 총 구축 시 사용할 수 있습니다,다음에 대한 솔루션 VS2010(나).아래 코드를 사용 CTime 에 의한 케이시 Muratori.물론 사용할 수도 있습니다 그것을 인쇄하고 구축 시간입니다.

열 매크로 탐색기를 붙여 넣기 전에 다음 End Module:

Dim buildStart As Date
Private Sub RunCtime(ByVal StartRatherThanEnd As Boolean)
    Dim Arg As String
    Dim psi As New System.Diagnostics.ProcessStartInfo("ctime.exe")
    If StartRatherThanEnd Then
        psi.Arguments = "-begin"
    Else
        psi.Arguments = "-end"
    End If
    psi.Arguments += " c:\my\path\build.ctm"
    psi.RedirectStandardOutput = False
    psi.WindowStyle = ProcessWindowStyle.Hidden
    psi.UseShellExecute = False
    psi.CreateNoWindow = True
    Dim process As System.Diagnostics.Process
    process = System.Diagnostics.Process.Start(psi)
    Dim myOutput As System.IO.StreamReader = process.StandardOutput
    process.WaitForExit(2000)
    If process.HasExited Then
        Dim output As String = myOutput.ReadToEnd
        WriteToBuildWindow("CTime output: " + output)
    End If
End Sub

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
    WriteToBuildWindow("Build started!")
    buildStart = Date.Now
    RunCtime(True)
End Sub

Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
    Dim buildTime = Date.Now - buildStart
    WriteToBuildWindow(String.Format("Total build time: {0} seconds", buildTime.ToString))
    RunCtime(False)
End Sub

Private Sub WriteToBuildWindow(ByVal message As String)
    Dim win As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
    Dim ow As OutputWindow = CType(win.Object, OutputWindow)
    If (Not message.EndsWith(vbCrLf)) Then
        message = message + vbCrLf
    End If
    ow.OutputWindowPanes.Item("Build").OutputString(message)
End Sub

응답에서 가져온 .

옵션>프로젝트 및 솔루션>VC++프로젝트 설정 빌드->타이밍

enter image description here

을 만들었 확장 측정을 구축 시간과 존재하는 이벤트의 순서 그래프로: Visual Studio 건축 타이머.

enter image description here

에서 사용할 수 있는 visual studio 시장 위치 및 작동을 위한 VS2015 및 VS2017.

내가 찾는 시각적 표현이 매우 도움이 된다.그 외에도에서 보여주는 프로젝트를 더 오래 걸릴,그것은 또한 종속성을 그들 사이의 즉프로젝트는 다른 사람을 위해 기다리를 완료하기 전에 그들은 그 시작입니다.이 방법을 발견 할 수 있는 병목 현상에 구축하고 무엇을 볼 종속성을 필요가에서 휴식을 높이기 위해 병렬화됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top