Sometimes you don’t get much credit except in the debug logs

I recently re-engineered my primary responsibility at work and when asked for a marketing spin on the work I said that ExcelRTD could now update 3 million cells per second in Excel via IRTDServer. This was dismissed as being over confident and I must admit the biggest problem is that although I can get the info to Excel in the time, Excel will then sit for a long time, say 5–15 seconds digesting it. So the only real way I can show this is by looking at the Debug output, where I time the entire RefreshData() operation. i.e.

public Array RefreshData(ref int topicCount)
   Win32Extra.HiPerfTimer timer = new Win32Extra.HiPerfTimer();

      Array result;
      Debug.WriteLine(“RefreshData @” +DateTime.Now.ToLongTimeString()
         +“, Count=”+topicCount.ToString()
         +“, in |”+timer.Duration +“| ms”);
      return result;


So that of course means that my values show the whole time I can influence. Unfortunately they also time while the process is switched out, so heres my results from opening a huge sheet. The good are in Bold and the bad are Italicised.

Check: 1 sec was 991.611224331584ms
RefreshData @11:37:18, Count=7, in |11.0257029873909| ms
RefreshData @11:37:26, Count=5861, in |77.4053685594119| ms
RefreshData @11:37:53, Count=1453, in |1.87537801592102| ms
RefreshData @11:37:55, Count=1649, in |3.066311500484| ms
RefreshData @11:37:57, Count=218, in |0.112025411050846| ms
RefreshData @12:02:49, Count=44672, in |21378.2092416774| ms
RefreshData @12:02:59, Count=0, in |442.494506983429| ms
RefreshData @12:03:01, Count=84656, in |440.760208350503| ms
RefreshData @12:03:09, Count=0, in |0.0282158765988415| ms

Damn, the peak rate has dropped by a factor of four. Now its only 3/4 million per second. If only I could find out why? Oh well that’s the joy of working in multi-tasking operating systems.