Улучшенные возможности отладки и профилирования приложений в Visual Studio 2015: оценка времени выполнения кода с помощью Debugger PerfTips

В новейшей версии IDE от Microsoft появилось множество новых возможностей для отладки и профилирования приложений, которые делают процесс отладки приложений ещё более приятным и удобным. В нескольких статьях я постараюсь коротко описать каждое нововведение. Начну с описания возможности измерения времени выполнения кода во время отладки. Как мы обычно измеряем время выполнения метода в управляемом коде? Примерно так:

 public class ProductsRepository : IProductsRepository
{
    private readonly Stopwatch stopwatch;
 
    public ProductsRepository()
    {
        this.stopwatch = new Stopwatch();
    }
 
    #region IProductsRepository Members
 
    public IList<Product> GetAllProducts()
    {
        try
        {
            this.stopwatch.Start();
            return ProductsDataStore.Products;
        }
        finally
        {
            this.stopwatch.Stop();
            Trace.WriteLine(string.Format(
                "ProductsRepository.GetAllProducts execution time: {0} ms.",
                this.stopwatch.ElapsedMilliseconds));
            this.stopwatch.Reset();
        }   
    }
 
    public void Insert(Product product)
    {
        ProductsDataStore.Insert(product);
    }
 
    public void Update(Product product)
    {
        ProductsDataStore.Update(product);
    }
 
    public void Delete(int productId)
    {
        ProductsDataStore.Delete(productId);
    }
 
    #endregion
}
 

Результат будет таким, как показано ниже:

В Visual Studio 2015 появилась новая особенность, которая называется "PerfTips". Своего рода подсказки показывающие производительность, то есть время выполнения кода во время отладки:

Что нужно сделать, чтобы увидеть время выполнения кода? Почти ничего, достаточно пройтись по строке кода во время отладки (Step Over (F10)) и подсказка будет выводиться автоматически. Не придётся больше писать рутинный код. Конечно, никто не говорит отказываться от Stopwatch, так как данная особенность работает в отладчике, а если нужно получить трассировку выполнения разных участков кода без отлаки и отладчика, то тут без Stopwatch не обойтись. Больше сведений о PerfTips можно получить отсюда.