This is especially the case when your app needs to talk to local SQL Azure, Table, Blob, and Queue resources - you can't test the performance of these:
- when you are running the storage on the DevFabric
- when you are running on the real storage, but with your app on a dev machine outside of the data center
When you are running on Azure, then how do you get your results out.
Well, to start with I've just used some simple tests using System.Diagnostics.StopWatch:
At the start of the method to be tested
List<KeyValuePair<string, long>> times = new List<KeyValuePair<string, long>>();
times.Add(new KeyValuePair<string, long>("Original", 0L));
System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch();
timer.Start();
Half way through:
times.Add(new KeyValuePair<string,long>("namedPoint", timer.ElapsedMilliseconds));
And at the end:
times.Add(new KeyValuePair<string, long>("timeToEnd", timer.ElapsedMilliseconds));
timer.Stop();
foreach (var t in times)
{
System.Diagnostics.Trace.TraceError(string.Format("{0}:{1}", t.Value, t.Key));
}
This then uploads the results to Azure Diagnostics - currently Trace is routed to Table storage.
Obviously this is only a temporary solution - only suited for simple methods, and you have to remove this code for Production.
No comments:
Post a Comment