Why GenCheckinNotesUpdateWorkitem task is expensive !!!
Performance data for GenCheckinNotesUpdateWortItem task (all times in ms)
1. For MSTV project (~ 17 MB)
a. Failed 1st build -
Time in Task – 110848
QueryLabel – 990
AnalyzeChangeset – 105870
QueryHistory – 105800
UpdateWorkItem – 3737
Get_WorkItem - 3737
b. Successful 1st build -
Time in Task – 121108
QueryLabel – 1053
AnalyzeChangeset – 117615
QueryHistory – 117458.51
UpdateWorkItem – 2184
Get_WorkItem - 2184
c. Successful 2nd build (17 edits, 4 deletes, 3 adds) -
Time in Task – 14250
QueryLabel – 2005
AnalyzeChangeset – 3177
QueryHistory – 3127.65
UpdateWorkItem – 7513
Get_WorkItem - 7512
Learning
· AnalyzeChangesets() function is the most expensive function call. Analyzing further, most of the cost is in QueryHistory(). Moreover QueryHistory is getting called once per file making cumulative cost high.
o Why is QueryHistory() call expensive? Because it uses “yield” construct to give better response time in UI. Please refer the documentation for more details.
· If the number of files is less, the performance of task is limited by cost of QueryLabel(). Again this is dependent of the number of labels that exist on AT
Machine Details
- Client/BM on the same machine with configuration @ 2.79 GHz, 512 MB RAM
- AT configuration @ 3 GHz, 1 GB RAM