Subject extraordinary performance issue
Author Brian Dunstan
Hi,

I have come across an extraordinary performance issue. I first noticed the
effect while running TQuickReports. If the cursor is allow to remain over
the form while the report is being generated then execution time is
increased approximately 10 times.

I created a little project with just a single form with a button IBODatabase
and an IBOQuery (and no report components). Clicking the button runs this
loop:

StartTime := Now;
for i := 0 to 50 do
begin
IboQuery1.Open;
while not IBOQuery1.EOF do begin
IBOQuery1.Next;
end;
IboQuery1.Close;
end;
EndTime := Now;
Label1.Caption := 'Execution time = '
+ IntToStr(trunc((EndTime - StartTime) * mSecsPerDay));

If the cursor is allowed to remain over the form execution takes about 5200
ms but if the cursor is moved away from the form after clicking the button
then execution takes only about 570 ms.

I have found that higher performance graphics card makes only a small
improvement.

It seems like a high price to pay for the dubious pleasure of watching a
cursor flicker on the screen :-)

No doubt there is much more going on 'under the hood' than meets the eye,
but is there a way of avoiding this issue?

Thanks in advance.

Brian