CodeLens Processing pipeline performance improvements

CodeLens Processing pipeline performance improvements

Rate This
  • Comments 4

Introduction

CodeLens is a heads-up display in your Visual Studio Editor where you can find information about your code in-context. See this MSDN article for an introduction to CodeLens - Get history and other info about your code.

In a previous blog post, I had described the CodeLens Team Indicators – Processing Pipeline. I recommend, you read that article before going further since I will be referring to the concepts introduced there.

In this blog post, I will describe some of the performance optimizations we have done for various jobs in the CodeLens processing pipeline as part of Team Foundation Server 2013 Update 3.

Performance Improvements

CodeLens jobs process each changeset to identify the information to be shown in CodeLens Team indicators. Each file in the changeset is processed to identify what has changed from the previous version. In Team Foundation Server 2013 Update 3, we have optimized the changeset processing specifically for branching and merging operations. Since these operations generally have a large number of files, these optimizations will significantly reduce the time spent in CodeLens processing.

Another optimization has been done in how temporary CodeLens data is managed. Previously the temporary CodeLens data for each file in a changeset was written to the database & Team Foundation Server File service one-by-one. Now we have implemented a batched writing of the temporary CodeLens data. This minimizes the database and file service operations and overall reduces processing time for CodeLens.

Indicative Perf Improvements based on our test data is shown below.

The first graph shows the reduction in time for the Keepup job when handling different types of changesets. On an average we are seeing >70% improvement in run time for these jobs.

image

The second graph shows the reduction in time for Aggregator job for these changesets. Here again, on an average we are seeing >70% performance improvement.

image

Summary

In this blog post, I talked about the performance optimizations that we have done in the CodeLens Team Indicators processing pipeline. As always, looking forward to your feedback and questions on this topic and CodeLens in general.

Leave a Comment
  • Please add 5 and 7 and type the answer here:
  • Post
  • Bring it to Premium please.

  • This is a feature in a tool that creates windows code.  Everyone already pays for windows, do not gouge us via the tooling.

    Bring it to at least Pro.  (Frankly I think there should only be Pro and Express, but that is a bigger battle)

  • Why do you waste time for something what maybe 0.1% of Visual Studio users would ever see.

    Sorry, I forgot about all those who are getting their copy from The Pirate Bay, because Ultimate Edition in too expesive for normal developer ;-)

  • Agree with the other comments. At 13K a pop Ultimate is no-go for the vast majority of developers.

    I am also convinced that your bean-counters have screwed up the math here- if Ultimate were cheaper (2K range), you'd easily get magnitudes more purchases of it and you'd likely make more money than you're making now.

Page 1 of 1 (4 items)