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();
timer.Start();
try
{
Array result;
…
}
finally
{
timer.Stop();
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.