2010-07-28 44 views
1

我想了解一些來自MSBuild的性能彙總輸出。結果如下所示:解釋MSBuild性能彙總輸出

Target Performance Summary: 
     0 ms PrepareForRun        74 calls 
     0 ms Compile         74 calls 
     ... 
     ... 
     ... 
     ... 
    15173 ms ResolveProjectReferences     74 calls 
    29607 ms Build          75 calls 

Task Performance Summary: 
     2 ms CreateCSharpManifestResourceName   6 calls 
     2 ms ResolveKeySource       1 calls 
    ... 
    ... 
    ... 
    ... 
    3623 ms Copy          511 calls 
    7468 ms ResolveAssemblyReference     74 calls 
    11234 ms Exec          12 calls 
    48600 ms MSBuild         210 calls 

Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

Time Elapsed 00:00:29.60 

爲什麼MSBuild的總時間超過總的經過時間?實際上,秒錶實際運行時間大約爲29秒。我在網上看到的這些摘要的任何例子都表明總任務和目標時間是相同的。

+0

ResolveAssemblyReferences(RAR)和ResolveCOMReferences(RCR)通常佔用大部分時間。 – 2011-07-18 01:08:19

+1

@RitchMelton其實,他們沒有。我已經添加了追蹤到這些目標(通過直接修改微軟的目標),他們顯示RAR需要很少的時間整個時間報告似乎打破了我... – ya23 2013-07-02 10:05:50

+0

他們曾經。顯然如此。如果它奇蹟般地改變,我會感到驚訝。 – 2013-07-02 10:12:59

回答

5

MSBuild和CallTarget任務調用其他目標(以及其他任務)。在這些任務中花費的時間也是針對MSBuild和CAllTarget任務計算的。一個錯誤,真的。

因此,讀取這些數據時,請始終忽略這兩項任務。總結其他任務應該比總構建時間少一點。