Greetings everyone,
Hopefully this is the correct forum to post under. Please forgive me if it's not.
My limited time I've had to explore Lazarus and make a few test programs has been enjoyable.
While I've personally been using Lazarus on Linux, I have a VB6 app I'd like to migrate over for my customers on Windows. Some of the screens on this app have 100+ controls on them (yes, not good practice but customer-dictated). The VB6 runtime paints these windows completely and quickly while the executable compiled on Lazarus / Windows paints a bit slowly in comparison. Here are three frames from a video capture of the Lazarus / Windows being restored from being minimized (providing a link because the image is somewhat large):
Animated GIF showing painting progressionAs you can see, the painting takes a while, compared to VB6 and Java running on the same machine with 100+ similar controls. VB6 and Java apps with windows that contain the same amount of controls appear with no noticeable delay. The only thing that paints slower is a .Net app with the same amount of controls -- it's painfully slow when painting -- much slower than Free Pascal / LCL.
The executable I compiled was set with debug options off. I tried explicitly disabling and enabling double-buffering for the form, but no difference was seen. There is no code behind the Free Pascal window shown above, just the controls.
I'm running all of these test apps on a Windows 7 virtual machine (VirtualBox) and have also verified that everything behaves the same on Windows 7 running on 'bare metal'. I have a decent AMD video card, my system has an eight-core processor topping out at 4 GHz and 16 GB of RAM, with the VM given 4 GB of RAM, so no resource starvation.
Is there anything I can do to speed up Free Pascal / LCL's drawing on Windows? On Linux / X11, the same form with hundreds of controls shows almost immediately with no slow painting.
Thank you!
